ConfigMaps Not Found while Deploying an Application to Kubernetes Cluster

7/30/2020

I am trying to deploy an app to a Kubernetes cluster. My deployment uses three configMaps as volumeMounts.

However when I apply the deployment it can't seem to find the configMaps.

My deployment.yml looks like this:

apiVersion: apps/v1
kind: Deployment
metadata:
  namespace: dev-space
  name: my-app-dev
spec:
  replicas: 1
  revisionHistoryLimit: 1
  selector:
    matchLabels:
      name: my-app-dev
  strategy:
    rollingUpdate:
      maxSurge: 100%
      maxUnavailable: 30%
    type: RollingUpdate
  template:
    metadata:
      labels:
        name: my-app-dev
        version: v1
      annotations:
        sla: high
        tier: application
        role: frontend-api
        quality: dev
    spec:
      containers:
      - name: my-app
        env:
        - name: ENVIRONMENT
          value: dev
        - name: SAMPLE_FILE
          value: sample.yml
        - name: SAMPLE_FILE2
          value: sample2.yml
        image: my-app:1.0
        ports:
        - containerPort: 8000
          protocol: TCP
        livenessProbe:
          httpGet:
            path: /health
            port: 9000
          initialDelaySeconds: 11
          timeoutSeconds: 3
        readinessProbe:
          httpGet:
            path: /health
            port: 9000
          initialDelaySeconds: 11
          timeoutSeconds: 3
        volumeMounts:
          - name: sample-volume
            mountPath: /path
            readOnly: true
          - name: sample-volume1
            mountPath: /path1
            readOnly: true
          - name: sample-volume2
            mountPath: /path2
            readOnly: true
      nodeSelector:
        tier: app
      imagePullSecrets:
      - name: img-secret
      volumes:
        - name: "sample-volume"
          configMap:
            name: "sample-volume-dev-my-app"
        - name: "sample-volume1"
          configMap:
            name: "sample-volume1-dev-my-app"
        - name: "sample-volume2"
          configMap:
            name: "sample-volume2-dev-my-app"

When I apply the deployment I get the following errors:

Warning  FailedMount   4m (x6 over 5m)  kubelet, server.org.local  MountVolume.SetUp failed for volume "sample-volume" : configmaps "sample-volume-dev-my-app" not found
Warning  FailedMount   4m (x6 over 5m)  kubelet, server.org.local  MountVolume.SetUp failed for volume "sample-volume1" : configmaps "sample-volume1-dev-my-app" not found
Warning  FailedMount   4m (x6 over 5m)  kubelet, server.org.local  MountVolume.SetUp failed for volume "sample-volume2" : configmaps "sample-volume2-dev-my-app" not found

Is there something wrong with my configuration? What could be the issue?

-- bakadevops
kubernetes

1 Answer

7/30/2020

You either have not created the config maps or you have created them in a different namespace than where you are deploying the application.

kubectl get cm -A

Above command will list all config maps in all namespaces. Check if a config map with name sample-volume-dev-my-app exists and in which namespace.

-- Arghya Sadhu
Source: StackOverflow