kubectl: get specific value from a secret in plaintext

This should work since Kubernetes 1.11 (see PR 60755):

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


In cases when key contains dots:

apiVersion: v1
metadata:
  name: foo
data:
  bar.baz: RnVja2VkIFVwIEJleW9uZCBBbGwgUmVjb2duaXRpb24=

the syntax would be:

kubectl get secret foo -o jsonpath="{.data['bar\.baz']}" | base64 -d


Try this

kubectl get secret foo --template={{.data.bar}} | base64 --decode

No need of jq.


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

https://kubernetes.io/docs/reference/kubectl/jsonpath/