首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >kubernetes client-go:将labelselector转换为标签字符串

kubernetes client-go:将labelselector转换为标签字符串
EN

Stack Overflow用户
提问于 2019-05-21 12:38:11
回答 1查看 4.9K关注 0票数 6

在kubernetes client-go API (或使用它的其他库)中,是否有一个实用程序函数可以将k8s.io/apimachinery/pkg/apis/meta/v1/LabelSelector转换为字符串以填充k8s.io/apimachinery/pkg/apis/meta/v1/ListOptions中的字段LabelSelector

我翻遍了client-go的代码,但我找不到这样的函数。

LabelSelector.Marshall()LabelSelector.String()都给了我这点(不出所料,因为这不是他们的目的,但我还是试过了)。

背景

我有像k8s.io/api/extensions/v1beta1/Deployment这样的规范描述,并希望使用它的选择器标签集(即Selector字段)来查询它的pods

代码语言:javascript
运行
复制
options := metav1.ListOptions{
    LabelSelector: <stringified labels>,
}

podList, err := clientset.CoreV1().Pods(<namespace>).List(options)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-21 14:18:03

您可以使用LabelSelectorAsMap(LabelSelector)函数将标签选择器转换为map[string]string映射。

然后,使用k8s.io/apimachinery/pkg/labels包的SelectorFromSet函数将map转换为选择器/字符串。

伪代码:

代码语言:javascript
运行
复制
import (
    "k8s.io/apimachinery/pkg/labels"
    metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
)

func ListPod(labelSelector metav1.LabelSelector) {

    labelMap := metav1.LabelSelectorAsMap(labelSelector)

    options := metav1.ListOptions{
        LabelSelector: labels.SelectorFromSet(labelMap).String(),
    }

    podList, err := clientset.CoreV1().Pods("<namespace>").List(options)

}
票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56231176

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档