Mounting ConfigMaps

To mount non-confidential configuration data into your workspaces, use Kubernetes ConfigMaps.

Using Kubernetes ConfigMaps, you can mount non-sensitive data such as configuration values for an application.

Mount Kubernetes ConfigMaps to the DevWorkspace containers in the Kubernetes cluster of your organization’s Che instance.

  • An active kubectl session with administrative permissions to the destination Kubernetes cluster. See Overview of kubectl.

  • In your user namespace, you created a new ConfigMap or determined an existing ConfigMap to mount to all DevWorkspace containers.

  1. Add the labels, which are required for mounting the ConfigMap, to the ConfigMap.

    $ kubectl label configmap <ConfigMap_name> \
  2. Optional: Use the annotations to configure how the ConfigMap is mounted.

    Table 1. Optional annotations
    Annotation Description

    Specifies the mount path.

    Defaults to /etc/config/<ConfigMap_name>.

    Specifies how the resource should be mounted: file, subpath, or env.

    Defaults to file.

    mount-as:file mounts the keys and values as files within the mount path.

    mount-as:subpath mounts the keys and values within the mount path using subpath volume mounts.

    mount-as:env mounts the keys and values as environment variables in all DevWorkspace containers.

Example 1. Mounting a ConfigMap as environment variables
kind: ConfigMap
apiVersion: v1
  name: my-settings
  labels: 'true' 'true'
  annotations: env
  <env_var_1>: <value_1>
  <env_var_2>: <value_2>

When you start a workspace, the <env_var_1> and <env_var_2> environment variables will be available in the DevWorkspace containers.