web-dev-qa-db-fra.com

Kubectl: Obtenez une valeur spécifique d'un secret en clair

Je veux obtenir la valeur d'un champ spécifique d'un secret dans un script shell.

Du kubectl get secret Documentation, il semble que le moyen standard d'obtenir un secret de retour sur le tout, dans un format spécifié, avec les valeurs Base64 codées.

Donc, pour obtenir le champ bar du champ foo secret, sortie en tant que chaîne non connectée, je le fais:

kubectl get secret foo -o json | jq -r ".data.bar" | base64 --decode

C'est-à-dire

  • obtenez le tout foo secret comme JSON
  • tuyau à jq pour lire le champ bar du JSON
  • décodez la valeur en utilisant base64

Y a-t-il un moyen de le faire uniquement en utilisant kubectl?

Ou une solution élégante dans la coquille compatible POSIX qui ne repose pas sur des dépendances telles que jq?

8
davnicwil

Cela devrait fonctionner depuis Kubettes 1.11 (voir - PR 60755 ):

kubectl get secret foo -o go-template='{{ .data.bar | base64decode }}'

0
SEBiGEM
kubectl get secret foo -o jsonpath={.data.bar} | base64 --decode

https://kubernet.io/docs/reeference/kubectl/jsonpath/

0
Ernst