Use two different configmaps for the same pods as volume mounts

3/9/2018

I am trying to write a deployment for a k8s pod. I am having the following in the deploy.yaml file

apiVersion: apps/v1beta1 # for versions before 1.8.0 use apps/v1beta1
kind: Deployment
metadata:
 name: __DEPLOY_NAME__-__ENV__
 namespace: __RG_NAME__
spec:
 replicas: 1
 template:
metadata:
  labels:
    app: __DEPLOY_NAME__-__ENV__
  containers:
  - name: __DEPLOY_NAME__-__ENV__
    image: __CONTAINER_REGISTRY__/__IMAGE_NAME__
    env:
    - name: NODE_ENV
      value: __ENV__
    imagePullPolicy: Always
    volumeMounts:
    - name: config-volume
      mountPath: /etc/config
    ports:
    - containerPort: __PORT__
    volumes:
    - name: config-volume
      configMap:
        name: config
      configMap:
        name: oauth

I trying to use two different config maps named 'config' and 'oauth' as volume mounts in the same pod. When I tried the above code I got the following error.

error validating data: found invalid field volumes for v1.Container; if you choose to ignore these errors, turn validation off with --validate=false

I am not sure if what I want to achieve is feasible and if not then how should I give the volume mounts.

-- jack
deployment
kubernetes

1 Answer

3/9/2018

First: fix indentation on your volumes block, it should be two spaces less (not a child of containers: but sibling of it.

Second: you should create two distinct volumes with distinct names and then have a volume mount for each one of them

Third: if you need to merge files from them you might want to try mounting particular files with subPath

-- Radek 'Goblin' Pieczonka
Source: StackOverflow