Kubernetes: Não é possível selecionar a chave de anotação usando jsonpath

Criado em 2 set. 2016  ·  2Comentários  ·  Fonte: kubernetes/kubernetes

Adoro usar kubectl ... -o jsonpath mas não consigo descobrir como imprimir uma anotação que contenha um caractere especial como - ou / ou . .

Isso não funciona:
kubectl get pods tmp -o 'jsonpath={.metadata.annotations.kubernetes.io/created-by}{"\n"}'
nem este:
kubectl get pods tmp -o 'jsonpath={.metadata.annotations.kubernetes\.io\/created\-by}{"\n"}'
nem este:
kubectl get pods tmp -o 'jsonpath={.metadata.annotations}{["kubernetes.io/created-by"]}{"\n"}'
nem este:
kubectl get pods tmp-1986694738-dhpx0 -o ​​jsonpath = "{\ $ ['metadata'] ['anotações'] ['kubernetes.io/created-by']}"
(o último deve funcionar de acordo com o que eu posso encontrar sobre jsonPath, mas não funciona, e de qualquer forma é difícil fazer o shell escapar corretamente.

Precisa de uma maneira de citar um

arekubectl kinbug prioritbacklog

Comentários muito úteis

Para sua informação, isso é possível com o go-template. Ainda devemos corrigir o jsonpath.

kubectl get pods tmp -o go-template=$'{{index .metadata.annotations "kubernetes.io/created-by"}}\n'

Problema semelhante: https://github.com/kubernetes/kubernetes/issues/23386

Todos 2 comentários

Um caso de uso para isso é extrair as anotações "criado por" ou "init-container". Eu queria fazer as duas coisas no mês passado e lutei contra o jsonpath.

Para sua informação, isso é possível com o go-template. Ainda devemos corrigir o jsonpath.

kubectl get pods tmp -o go-template=$'{{index .metadata.annotations "kubernetes.io/created-by"}}\n'

Problema semelhante: https://github.com/kubernetes/kubernetes/issues/23386

Esta página foi útil?
0 / 5 - 0 avaliações