bob*_*bel 5 go kubernetes kubernetes-go-client
在kubernetes客户去API(或其他图书馆使用它),是有一个实用功能的转换k8s.io/apimachinery/pkg/apis/meta/v1/LabelSelector为字符串,以填补该领域LabelSelector的k8s.io/apimachinery/pkg/apis/meta/v1/ListOptions?
我client-go挖掘了代码,但我找不到这样的功能。
的LabelSelector.Marshall()也不LabelSelector.String()给我说(毫不奇怪,因为这不是他们的目的,但我想也无妨)。
我有类似的规范描述k8s.io/api/extensions/v1beta1/Deployment,并想使用它的一组选择器标签(即Selector字段)来查询它的 pod 使用
options := metav1.ListOptions{
LabelSelector: <stringified labels>,
}
podList, err := clientset.CoreV1().Pods(<namespace>).List(options)
Run Code Online (Sandbox Code Playgroud)
您可以使用LabelSelectorAsMap(LabelSelector)函数将标签选择器转换为map[string]string地图。
然后,使用SelectorFromSet包的函数k8s.io/apimachinery/pkg/labels转换map为选择器/字符串。
伪代码:
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)
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4250 次 |
| 最近记录: |