Decoding Kubernetes Ingress auth Secrets
Update: In the comments, the following one-liner is suggested by Matt T if you have
jq
installed (a handy utility if there ever was one!):
kubectl get secret my-secret -o json | jq '.data | map_values(@base64d)'
I figured it would be handy to have a quick reference for this, since I'll probably forget certain secrets many, many times in the future (I'm like that, I guess):
I have a Kubernetes Secret
used for Traefik ingress basic HTTP authentication (using annotation ingress.kubernetes.io/auth-secret
), and as an admin with kubectl
access, I want to see (or potentially modify) its structure.
Let's say the Secret is in namespace testing
, and is named test-credentials
. To get the value of the basic auth credentials I do:
kubectl get secret test-credentials -n testing -o yaml
This spits out the Kubernetes object definition, including a field like:
data:
auth: [redacted base64-encoded string]
So then I copy out that string and decode it: