J'adore utiliser kubectl ... -o jsonpath
mais je n'arrive pas à comprendre comment imprimer une annotation contenant un caractère spécial comme -
ou /
ou .
.
Cela ne fonctionne pas:
kubectl get pods tmp -o 'jsonpath={.metadata.annotations.kubernetes.io/created-by}{"\n"}'
ni ceci:
kubectl get pods tmp -o 'jsonpath={.metadata.annotations.kubernetes\.io\/created\-by}{"\n"}'
ni ceci:
kubectl get pods tmp -o 'jsonpath={.metadata.annotations}{["kubernetes.io/created-by"]}{"\n"}'
ni ceci:
kubectl get pods tmp-1986694738-dhpx0 -o jsonpath = "{\ $ ['metadata'] ['annotations'] ['kubernetes.io/created-by']}"
(le dernier devrait fonctionner selon ce que je peux trouver sur jsonPath, mais ne le fait pas, et de toute façon il est difficile de faire en sorte que le shell s'échappe correctement.
Besoin d'un moyen de citer un
Un cas d'utilisation pour cela est l'extraction des annotations «créées par» ou «init-container». J'ai voulu faire les deux le mois dernier et j'ai combattu jsonpath.
Pour info, c'est possible avec go-template. Nous devrions quand même corriger le jsonpath.
kubectl get pods tmp -o go-template=$'{{index .metadata.annotations "kubernetes.io/created-by"}}\n'
Problème similaire: https://github.com/kubernetes/kubernetes/issues/23386
Commentaire le plus utile
Pour info, c'est possible avec go-template. Nous devrions quand même corriger le jsonpath.
Problème similaire: https://github.com/kubernetes/kubernetes/issues/23386