我想执行相当于
kubectl get all -l app=myapp -n mynamespace
或者
kubectl label all -l version=1.2.0,app=myapp track=stable --overwrite
使用客户端
我查看了动态包,但它似乎需要GroupVersionResource
,例如,服务对象和部署对象是不同的。此外,当我通过schema.GroupVersionResource{Group: "apps", Version: "v1"}
它时,它什么也没找到,当我通过schema.GroupVersionResource{Version: "v1"}
它时,它只找到命名空间对象并且也不寻找标签,尽管我提供了标签选项:
resource := schema.GroupVersionResource{Version: "v1"}
listOptions := metav1.ListOptions{LabelSelector: fmt.Sprintf("app=%s", AppName), FieldSelector: ""}
res, listErr := dynamicClient.Resource(resource).Namespace("myapps").List(listOptions)
我还查看了运行时包,但没有发现任何有用的东西。我看了一下如何kubectl
实现这个,有点还没弄明白,抽象层次太多了。