通过 .spec.selector.matchLabels 键列出使用 apimachinery 的部署

List deployments using apimachinery by the .spec.selector.matchLabels key

我想根据在 .spec.selector.matchLabels 字段中找到的键值对列出我的部署。

使用普通 labels 这样做很容易,但我找不到一种方法来匹配/获取满足以下部分中存在特定 key=value 条件的部署

spec:
  [...]
  selector:
    matchLabels:
      app: myapp
      process: web
      release: myrelease

这似乎无法使用 ListOptions

来完成

不支持:

您必须在客户端进行过滤:

    depl, err := clientset.AppsV1().Deployments("some_namespace").List(context.Background(), metav1.ListOptions{})
    if err != nil {
        panic(err.Error())
    }
    for _, item := range depl.Items {
        if item.Spec.Selector.MatchLabels["app"] == "myapp" {
            fmt.Println("found it")
        }
    }