Use Secret in Pods
Using secrets
We can use secrets as environmental variable as well as mounts inside a Pod
Injecting as environmental variable
$ vi pod-secret.yaml
apiVersion: v1
kind: Pod
metadata:
labels:
run: debugger
name: debugger
spec:
containers:
- image: ansilh/debug-tools
name: debugger
env:
- name: USER
valueFrom:
secretKeyRef:
name: my-secret
key: user
- name: PASSWORD
valueFrom:
secretKeyRef:
name: my-secret
key: password
$ kubectl create -f pod-secret.yaml
$ kubectl get pods
NAME READY STATUS RESTARTS AGE
debugger 1/1 Running 0 17s
Logon to container and verify the environmental variables
$ kubectl exec -it debugger -- /bin/sh
Verify environment variables inside Pod
/ # echo $USER
root
/ # echo $PASSWORD
mypassword
/ #
Delete the Pod
$ kubectl delete pod debugger
Mounting as files using volumes
$ vi pod-secret.yaml
apiVersion: v1
kind: Pod
metadata:
labels:
run: debugger
name: debugger
spec:
volumes:
- name: secret
secret:
secretName: my-secret
containers:
- image: ansilh/debug-tools
name: debugger
volumeMounts:
- name: secret
mountPath: /data
$ kubectl create -f pod-secret.yaml
$ kubectl exec -it debugger -- /bin/sh
/ # cd /data
/data #
/data # cat user
root
/data # cat password
mypassword
/data #