Secrets&ConfigMaps
Config Maps
Create
kubectl create configmap appconfig --from-literal=key1=value1 --from-literal=key2=value2
Deploy Pods
apiVersion: v1
kind: Pod
metadata:
name: configmap-pod
spec:
containers:
- name: app-container
image: busybox:1.28
command: ['sh', '-c', "echo $(MY_VAR) && sleep 3600"]
env:
- name: MY_VAR
valueFrom:
configMapKeyRef:
name: appconfig
key: key1
apiVersion: v1
kind: Pod
metadata:
name: configmap-volume-pod
spec:
containers:
- name: app-container
image: busybox
command: ['sh', '-c', "echo $(MY_VAR) && sleep 3600"]
volumeMounts:
- name: configmapvolume
mountPath: /etc/config
volumes:
- name: configmapvolume
configMap:
name: appconfig
Get
kubectl get configmaps --all-namespaces
kubectl get configmaps -n kube-system/kube-flannel-cfg
kubectl get configmaps/kube-flannel-cfg -n kube-system
kubectl describe configmaps/kube-flannel-cfg -n kube-system
kubectl get configmap appconfig -o yaml
Secrets
Create
apiVersion: v1
kind: Secret
metadata:
name: appsecret
stringData:
cert: value
key: value
Deploy Pods
apiVersion: v1
kind: Pod
metadata:
name: secret-pod
spec:
containers:
- name: app-container
image: busybox
command: ['sh', '-c', "echo Hello, Kubernetes! && sleep 3600"]
env:
- name: MY_CERT
valueFrom:
secretKeyRef:
name: appsecret
key: cert
apiVersion: v1
kind: Pod
metadata:
name: secret-volume-pod
spec:
containers:
- name: app-container
image: busybox
command: ['sh', '-c', "echo $(MY_VAR) && sleep 3600"]
volumeMounts:
- name: secretvolume
mountPath: /etc/certs
volumes:
- name: secretvolume
secret:
secretName: appsecret