我希望将注释的特定值放入kubectl自定义列字段中。我可以获得资源上的所有当前注释,如下所示:
kubectl get pvc -o custom-columns=NAME:.metadata.name,"ANNOTATIONS":.metadata.annotations -n monitoring这将返回一个映射:
NAME ANNOTATIONS
prometheus-k8s-db-prometheus-k8s-0 map[pv.kubernetes.io/bind-completed:yes pv.kubernetes.io/bound-by-controller:yes volume.beta.kubernetes.io/storage-provisioner:kubernetes.io/aws-ebs]
prometheus-k8s-db-prometheus-k8s-1 map[pv.kubernetes.io/bind-completed:yes pv.kubernetes.io/bound-by-controller:yes volume.beta.kubernetes.io/storage-provisioner:kubernetes.io/aws-ebs]据我所知,考虑到kubectl -o custom-columns使用JSONpath,我认为我可以这样做:
kubectl get pvc -o custom-columns=NAME:.metadata.name,"ANNOTATIONS":".metadata.annotations['pv.kubernetes.io/bind-completed']" -n monitoring但事实似乎并非如此。有没有办法做到这一点?
发布于 2019-08-09 02:45:01
好吧,我想通了。这比我想象的要简单。
注释在返回时是一个标准的JSON元素。问题是kubectl的JSONPath解析器在元素中的点有问题,所以你只需要对它们进行转义。
kubectl get pvc -o custom-columns=NAME:.metadata.name,"ANNOTATIONS":".metadata.annotations.pv\.kubernetes\.io/bind-completed" -n monitoring
NAME ANNOTATIONS
prometheus-k8s-db-prometheus-k8s-0 yes
prometheus-k8s-db-prometheus-k8s-1 yeshttps://stackoverflow.com/questions/57418535
复制相似问题