jax*_*orm 10 jsonpath kubernetes kubectl
我想将注释的特定值放入 kubectl 自定义列字段中。我可以像这样获取资源上的所有当前注释:
kubectl get pvc -o custom-columns=NAME:.metadata.name,"ANNOTATIONS":.metadata.annotations -n monitoring
Run Code Online (Sandbox Code Playgroud)
这将返回一个地图:
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]
Run Code Online (Sandbox Code Playgroud)
kubectl -o custom-columns据我所知,考虑使用 JSONpath,我想我可以这样做:
kubectl get pvc -o custom-columns=NAME:.metadata.name,"ANNOTATIONS":".metadata.annotations['pv.kubernetes.io/bind-completed']" -n monitoring
Run Code Online (Sandbox Code Playgroud)
但似乎不是。有没有办法做到这一点?
jax*_*orm 30
好的,我想通了。这比我想象的要容易。
Annotations 在返回时是一个标准的 JSON 元素。问题是kubectlJSONPath 解析器在元素中存在点问题,所以你只需要转义它们。下面是一个例子:
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 yes
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4325 次 |
| 最近记录: |