(01)Create ConfigMap and Secret first
Linux
1kubectl apply -f ConfigMap.yml2kubectl apply -f Secrets.yml3kubectl apply -f Deployment.yml4kubectl apply -f Services.yml5kubectl get configmap,secret,podsInject environment variables from ConfigMap and Secret into a Deployment
ConfigMap.yml
1apiVersion: v12kind: ConfigMap3metadata:4 name: node-demo-config5data:6 NORMAL_ENV_VALUE: "hello-from-configmap"Secrets.yml
1apiVersion: v12kind: Secret3metadata:4 name: mysecret5type: Opaque6stringData:7 SECRET_ENV_VALUE: "super-secret-value"Deployment.yml
Deployment referencing ConfigMap and Secret via env valueFrom
1apiVersion: apps/v12kind: Deployment3metadata:4 name: api-deploy-demo-secrets-config5 labels:6 app: api-deploy-demo-secrets-config7spec:8 replicas: 19 selector:10 matchLabels:11 app: api-deploy-demo-secrets-config12 template:13 metadata:14 labels:15 app: api-deploy-demo-secrets-config16 spec:17 containers:18 - name: api-demo-cms19 image: api-demo-cms:local20 imagePullPolicy: IfNotPresent21 ports:22 - containerPort: 300023 env:24 - name: SECRET_ENV_VALUE25 valueFrom:26 secretKeyRef:27 name: mysecret28 key: SECRET_ENV_VALUE29 - name: NORMAL_ENV_VALUE30 valueFrom:31 configMapKeyRef:32 name: node-demo-config33 key: NORMAL_ENV_VALUE34 resources:35 limits:36 memory: "512Mi"37 cpu: "500m"38 requests:39 memory: "256Mi"40 cpu: "250m"Services.yml
1apiVersion: v12kind: Service3metadata:4 name: api-demo-service5spec:6 type: NodePort7 selector:8 app: api-deploy-demo-secrets-config9 ports:10 - port: 300011 targetPort: 300012 nodePort: 32001Step 01
1kubectl apply -f ConfigMap.yml2kubectl apply -f Secrets.yml3kubectl apply -f Deployment.yml4kubectl apply -f Services.yml5kubectl get configmap,secret,pods1kubectl exec -it deploy/api-deploy-demo-secrets-config -- env | grep ENV_VALUE