With ConfigMap and Secret you can "populate" a volume with files and "mount" that volume to a container, so that the application can access those files.
echo "one=1"> file1.properties
echo "two=2"> file2.properties
kubectl create configmap myconfig --from-file file1.properties --from-file file2.properties
kubectl describe configmaps myconfig
Now I can mount the ConfigMap into a Pod, as described here
cat mypod.yml
kubectl create -f mypod.yml
kubectl exec -ti configmap-pod bash
cat /etc/config/myfile1.properties
one=1
Now I change the image to vernetto/mynginx, which contains already a /etc/config/file0.properties
The existing folder /etc/config/ is completely replaced by the volumeMount, so file0.properties disappears!
Only /etc/config/file1.properties is there.
They claim that one can selectively mount only one file from the volume, and leave the original files in the base image:
https://stackoverflow.com/questions/33415913/whats-the-best-way-to-share-mount-one-file-into-a-pod/43404857#43404857 using subPath, but it is definitely not working for me.
echo "one=1"> file1.properties
echo "two=2"> file2.properties
kubectl create configmap myconfig --from-file file1.properties --from-file file2.properties
kubectl describe configmaps myconfig
Name: myconfig
Namespace: default
Labels:
Annotations:
Data
====
file1.properties:
----
one=1
file2.properties:
----
two=2
Events:
Now I can mount the ConfigMap into a Pod, as described here
cat mypod.yml
apiVersion: v1
kind: Pod
metadata:
name: configmap-pod
spec:
containers:
- name: test
image: nginx
volumeMounts:
- name: config-vol
mountPath: /etc/config
volumes:
- name: config-vol
configMap:
name: myconfig
items:
- key: file1.properties
path: myfile1.properties
kubectl create -f mypod.yml
kubectl exec -ti configmap-pod bash
cat /etc/config/myfile1.properties
one=1
Now I change the image to vernetto/mynginx, which contains already a /etc/config/file0.properties
The existing folder /etc/config/ is completely replaced by the volumeMount, so file0.properties disappears!
Only /etc/config/file1.properties is there.
They claim that one can selectively mount only one file from the volume, and leave the original files in the base image:
https://stackoverflow.com/questions/33415913/whats-the-best-way-to-share-mount-one-file-into-a-pod/43404857#43404857 using subPath, but it is definitely not working for me.