如何使用 Kubeclient 按标签删除资源?

How to delete resources by label with Kubeclient?

我正在尝试使用标签一次删除多个 ConfigMap。使用 kubectl,我会按如下方式进行:

kubectl delete cm -l application=my-app

Kubeclient 提供 delete_config_map 方法,但它需要一个名称。

# `k` is an instance of Kubeclient::Client
k.delete_config_map('my-config-map')

有没有办法实现与此处的 CLI 相同的行为?

kubectl 对标记资源和命名资源进行操作的方式实际上分两个阶段进行:get -o name $resourceType -l ... 然后是对 ${those_resource_names}[= 的实际请求操作16=]

您可以 运行 kubectl --v=10(或您选择的 v)实际查看它

由于该行为是 kubectl 而不是 kubernetes API 本身的一个特性,这意味着任何试图复制该便利特性的人都需要复制两阶段方法