ConfigMaps
ConfigMaps are a type of resource that is used to store the configurations required by applications. It can store configuration data in key-value pairs or configuration files as files.
ConfigMaps allow you to decouple environment-specific configurations from container images, so that different environments can have their own unique configurations.
Creating a ConfigMap
In the following example, a ConfigMap named configmap-test is created. The ConfigMap configuration data is defined in the data field.
apiVersion: v1 kind: ConfigMap metadata: name: configmap-test data: # Configuration data property_1: Hello property_2: World
Referencing a ConfigMap as an Environment Variable
ConfigMaps are usually referenced as environment variables or as configuration files in volumes.
In the following example, property_1 of configmap-test is used as the value of the environment variable EXAMPLE_PROPERTY_1. After the container is started, the value of property_1 is referenced as the value of EXAMPLE_PROPERTY_1, which is Hello.
apiVersion: v1 kind: Pod metadata: name: nginx spec: containers: - image: nginx:alpine name: container-0 resources: limits: cpu: 100m memory: 200Mi requests: cpu: 100m memory: 200Mi env: - name: EXAMPLE_PROPERTY_1 valueFrom: configMapKeyRef: # Reference a ConfigMap. name: configmap-test key: property_1 imagePullSecrets: - name: default-secret
Referencing a ConfigMap in a Volume
Referencing a ConfigMap in a volume is when you save the data as configuration files in the volume. Each piece of data is saved as a file. The key is the file name, and the key value is the file content.
In the following example, a volume named vol-configmap is created, the ConfigMap named configmap-test is referenced in the volume, and the volume is mounted to the /tmp directory of the container. After the pod is created, two files property_1 and property_2 are generated in the /tmp directory of the container, and the values are Hello and World.
apiVersion: v1 kind: Pod metadata: name: nginx spec: containers: - image: nginx:alpine name: container-0 resources: limits: cpu: 100m memory: 200Mi requests: cpu: 100m memory: 200Mi volumeMounts: - name: vol-configmap # Mount the volume named vol-configmap. mountPath: "/tmp" imagePullSecrets: - name: default-secret volumes: - name: vol-configmap configMap: # Reference a ConfigMap. name: configmap-test
Feedback
Was this page helpful?
Provide feedbackThank you very much for your feedback. We will continue working to improve the documentation.