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?
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
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With