Me encanta usar kubectl ... -o jsonpath
pero no sé cómo imprimir una anotación que contenga un carácter especial como -
o /
o .
.
Esto no funciona:
kubectl get pods tmp -o 'jsonpath={.metadata.annotations.kubernetes.io/created-by}{"\n"}'
ni esto:
kubectl get pods tmp -o 'jsonpath={.metadata.annotations.kubernetes\.io\/created\-by}{"\n"}'
ni esto:
kubectl get pods tmp -o 'jsonpath={.metadata.annotations}{["kubernetes.io/created-by"]}{"\n"}'
ni esto:
kubectl get pods tmp-1986694738-dhpx0 -o jsonpath = "{\ $ ['metadata'] ['anotaciones'] ['kubernetes.io/created-by']}"
(el último debería funcionar de acuerdo con lo que puedo encontrar sobre jsonPath, pero no lo hace, y de todos modos es difícil hacer que el shell escape correctamente.
Necesito una forma de cotizar un
Un caso de uso para esto es la extracción de anotaciones "created-by" o "init-container". Quería hacer ambas cosas en el último mes y luché contra jsonpath.
Para su información, esto es posible con go-template. Sin embargo, aún deberíamos arreglar el jsonpath.
kubectl get pods tmp -o go-template=$'{{index .metadata.annotations "kubernetes.io/created-by"}}\n'
Problema similar: https://github.com/kubernetes/kubernetes/issues/23386
Comentario más útil
Para su información, esto es posible con go-template. Sin embargo, aún deberíamos arreglar el jsonpath.
Problema similar: https://github.com/kubernetes/kubernetes/issues/23386