Create kubernetes env var secrets from .env file Create kubernetes env var secrets from .env file kubernetes kubernetes

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