Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save raj1rana/d3dd7d4e4efb74145e2dd39d3a4ccd96 to your computer and use it in GitHub Desktop.
Save raj1rana/d3dd7d4e4efb74145e2dd39d3a4ccd96 to your computer and use it in GitHub Desktop.
Kubernetes create and attach secret as env in deployment

Encode the secret texts into base64

    echo  -n 'secret' | base64 

create a secret file

    apiVersion: v1
    kind: Secret
    metadata:
      name: wordpress_secret
    data:
      WORDPRESS_DB_HOST: # base64 encoded host string and likewise in other fields as well
      WORDPRESS_DB_USER:
      WORDPRESS_DB_PASSWORD:
      WORDPRESS_DB_NAME:

    type: Opaque

now it is time to enter them in to deployment file

apiVersion: apps/v1
kind: Deployment
metadata:
  name: Wordpress-deployment
spec:
  selector:
    matchLabels:
      type: webapp
  replicas: 2
  template:
    metadata:
      labels:
        type: webapp
    spec:
      containers:
      - name: wordpress
        image: wordpress
        ports:
          - containerPort: 80
        env:
          - name: WORDPRESS_DB_HOST # name of your secet that container will store as env variable
            valueFrom:
              secretKeyRef:
                name: wordpress_secret # name of your secret object that you created in k8, this will relate your secret file to delployment file
                key: WORDPRESS_DB_HOST # key of your secret that you created inside secret object file 
          - name: WORDPRESS_DB_USER
            valueFrom:
              secretKeyRef:
                name: wordpress_secret
                key: WORDPRESS_DB_USER
          - name: WORDPRESS_DB_PASSWORD
            valueFrom:
              secretKeyRef:
                name: wordpress_secret
                key: WORDPRESS_DB_PASSWORD
          - name: WORDPRESS_DB_NAME
            valueFrom:
              secretKeyRef:
                name: wordpress_secret
                key: WORDPRESS_DB_NAME

and then

kubectl create -f <first secret then deployments>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment