Kubernetes has the concept of a ConfigMap. A ConfigMap gives you an easy way to override files in a Pod what makes it an easy way to replace config files in a container.
Let’s first create a ConfigMap that uses an AppSettings.json:
Next we need to create a deployment where we load this ConfigMap and mount it on the correct path:
Let’s walk to the important parts of the Deployment.yaml step by step:
- First we need to load the ConfigMap as a volume. We used the name of our configmap ‘example-configmap’ and specified a name to point to this volume ‘appsettings-volume’:
volumes:
- name: appsettings-volume
configMap:
name: example-configmap
- Now we need to mount this volume on the correct path. Notice that we mount the appsettings.json on the ‘app’ path. This is because the root of our .NET Core app is inside the app folder. We also specified the subPath to ensure that only the specified file is overridden, and any other existing content in the mount directory is retained:
volumeMounts:
- name: appsettings-volume
mountPath: /app/appsettings.json
subPath: appsettings.json