如何使用Terratest通过多个标签选择器过滤K8s Pod?
多标签同时匹配Pod实现方案
Kubernetes标签选择器原生支持多条件逻辑与匹配,不需要修改k8s.ListPodsE的调用逻辑,只需要调整LabelSelector字段的字符串拼接规则即可:
- 需要同时匹配多个标签时,将多个
标签键=标签值的匹配规则用英文逗号,分隔,传入LabelSelector字段即可。
对应需要匹配kubeslice.io/pod-type=gateway和kubeslice.io/app=foo两个标签的场景,filter配置修改为如下写法即可:
filter := metav1.ListOptions{ LabelSelector: "kubeslice.io/pod-type=gateway,kubeslice.io/app=foo", }
该写法和kubectl命令行多标签过滤的语法完全一致:逗号分隔的所有条件为必须同时满足的与逻辑,Terratest会将该参数直接透传给Kubernetes API,不需要额外做其他适配。
内容的提问来源于stack exchange,提问作者Mridul Gain
相关产品推荐
相关产品推荐

