Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Kubernetes configMap - only one file

Tags:

I have a configMap created from file:

kubectl create configmap ssportal-apache-conf --from-file=ssportal.conf=ssportal.conf 

and then I need to mount this file into the deployment:

apiVersion: extensions/v1beta1 kind: Deployment metadata:   name: ssportal spec:   replicas: 2   template:     metadata:       labels:         app: ssportal     spec:       containers:         - name: ssportal           image: eu.gcr.io/my-project/ssportal:0.0.0           ports:           - containerPort: 80           volumeMounts:             - name: apache2-config-volume               mountPath: /etc/apache2/       volumes:         - name: apache2-config-volume           configMap:             name: ssportal-apache-conf             items:               - key: ssportal.conf                 path: sites-enabled/ssportal.conf 

But this effectively removes the existing /etc/apache2/ directory from the container and replaces it with one an only file /etc/apache2/sites-enabled/ssportal.conf.

Is it possible to overlay only one file over the existing config directory?

like image 987
Misko Avatar asked Jun 02 '17 09:06

Misko


Video Answer


1 Answers

Okay, it's a bit tricky. The final working YAML spec is

apiVersion: extensions/v1beta1 kind: Deployment metadata:   name: ssportal spec:   replicas: 2   template:     metadata:       labels:         app: ssportal     spec:       containers:         - name: ssportal           image: eu.gcr.io/my-project/ssportal:0.0.0           command: ["sleep","120d"]           ports:           - containerPort: 80           volumeMounts:             - name: test               mountPath: /etc/apache2/conf-enabled/test.conf               subPath: test.conf       volumes:         - name: test           configMap:             name: sstest 

and configMap creation steps:

echo "# comment" > test.conf kubectl create configmap sstest --from-file=test.conf=test.conf  
like image 78
Misko Avatar answered Sep 18 '22 20:09

Misko