Create kubernetes env var secrets from .env file
Step 1: Create a k8s secret with your .env
file:
# kubectl create secret generic <secret-name> --from-env-file=<path-to-env-file> $ kubectl create secret generic my-env-list --from-env-file=.env secret/my-env-list created
Step 2: Varify secret:
$ kubectl get secret my-env-list -o yamlapiVersion: v1data: VAR1: dmFsdWUx VAR2: c29tZXRoaW5nX2Vsc2U=kind: Secretmetadata: name: my-env-list namespace: defaulttype: Opaque
Step 3: Add env
to your pod's container:
apiVersion: v1kind: Podmetadata: name: demo-podspec: containers: - name: demo-container image: k8s.gcr.io/busybox command: [ "/bin/sh", "-c", "env" ] envFrom: - secretRef: name: my-env-list # <---- here restartPolicy: Never
Step 4: Run the pod and check if the env
exist or not:
$ kubectl apply -f pod.yaml pod/demo-pod created$ kubectl logs -f demo-pod KUBERNETES_PORT=tcp://10.96.0.1:443KUBERNETES_SERVICE_PORT=443HOSTNAME=demo-podSHLVL=1HOME=/rootKUBERNETES_PORT_443_TCP_ADDR=10.96.0.1VAR1=value1 # <------------------------------------------------------here VAR2=something_else # <-----------------------------------------------herePATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/binKUBERNETES_PORT_443_TCP_PORT=443KUBERNETES_PORT_443_TCP_PROTO=tcpKUBERNETES_PORT_443_TCP=tcp://10.96.0.1:443KUBERNETES_SERVICE_PORT_HTTPS=443PWD=/KUBERNETES_SERVICE_HOST=10.96.0.1