How to mount the properties file in Kubernetes configmap using manifest yaml

3/29/2020

I use minikube on windows 10 and try to test Kubernetes ConfigMap with both literal type and outer file type. First I make below manifest yaml file to make ConfigMap.

apiVersion: v1
kind: ConfigMap  
metadata:
  name: simple-config
data:  
  mysql_root_password: password
  mysql_password: password
  mysql_database: test

---
apiVersion: v1
kind: Pod
metadata:
  name: blog-db  
  labels:
    app: blog-mysql  
spec:
  containers:
  - name: blog-mysql
    image: mysql:latest
    env:  
      - name: MYSQL_ROOT_PASSWORD
        valueFrom: 
          configMapKeyRef:
            name: simple-config
              key: mysql_root_password
      - name: MYSQL_PASSWORD
        valueFrom: 
          configMapKeyRef:
            name: simple-config 
            key: mysql_password
      - name: MYSQL_DATABASE
        valueFrom: 
          configMapKeyRef:
            name: simple-config
            key: mysql_database
    ports:
      - containerPort: 3306

The above configmap yaml file throws no errors. It works successfully. This time I try to test kubernetes configmap with file.

\== configmap.properties

mysql_root_password=password
mysql_password=password
mysql_database=test

But I am stuck with this part. Most of configmap examples use kubectl command with --from-file option like below,

kubectl create configmap simple-config --from-file=configmap.properties

But I have no idea how to mount the properties file using manifest yaml file grammer. Any advice?

-- Joseph Hwang
configmap
kubernetes

1 Answer

3/29/2020

You can not directly mount a properties file in a pod without first creating a ConfigMap from the properties file.You can create configMap from env file as below

kubectl create configmap simple-config \
       --from-env-file=configmap.properties
-- Arghya Sadhu
Source: StackOverflow