6.2. ConfigMap のマウント
機密でない設定データをワークスペースにマウントするには、Kubernetes ConfigMaps を使用します。
Kubernetes ConfigMaps を使用すると、アプリケーションの設定値などの機密性の低いデータをマウントできます。
Kubernetes ConfigMaps を組織の OpenShift Dev Spaces インスタンスの OpenShift クラスター内の Dev Workspace
コンテナーにマウントします。
前提条件
-
宛先 OpenShift クラスターへの管理権限を持つアクティブな
oc
セッション。CLI の使用方法 を参照。 -
ユーザープロジェクトで、新規の ConfigMap を作成するか、すべての
Dev Workspace
コンテナーにマウントする既存の ConfigMap を決定している。
手順
ConfigMap のマウントに必要なラベルを ConfigMap に追加します。
$ oc label configmap <ConfigMap_name> \ controller.devfile.io/mount-to-devworkspace=true \ controller.devfile.io/watch-configmap=true
オプション: アノテーションを使用して、ConfigMap のマウント方法を設定します。
表6.2 オプションのアノテーション アノテーション 説明 controller.devfile.io/mount-path:
マウントパスを指定します。
デフォルトは
/etc/config/<ConfigMap_name>
です。controller.devfile.io/mount-as:
リソースのマウント方法を指定します:
file
、subpath
、またはenv
。デフォルトは
file
です。mount-as:file
は、キーと値をマウントパス内のファイルとしてマウントします。mount-as:subpath
は、サブパスボリュームマウントを使用して、マウントパス内のキーと値をマウントします。mount-as:env
は、すべてのDev Workspace
コンテナーに環境変数としてキーと値をマウントします。
例6.2 ConfigMap を環境変数としてマウントする
kind: ConfigMap apiVersion: v1 metadata: name: my-settings labels: controller.devfile.io/mount-to-devworkspace: 'true' controller.devfile.io/watch-configmap: 'true' annotations: controller.devfile.io/mount-as: env data: <env_var_1>: <value_1> <env_var_2>: <value_2>
ワークスペースを開始すると、<env_var_1>
および <env_var_2>
環境変数が Dev Workspace
コンテナーで使用可能になります。
6.2.1. Git 設定のマウント
以下の手順に従って、Git config ファイルをワークスペースにマウントします。
前提条件
- クラスターにログインしている。
手順
新規の OpenShift ConfigMap を準備します。
kind: ConfigMap apiVersion: v1 metadata: name: workspace-userdata-gitconfig-configmap namespace: <user_namespace> 1 labels: controller.devfile.io/mount-to-devworkspace: 'true' controller.devfile.io/watch-configmap: 'true' annotations: controller.devfile.io/mount-as: subpath controller.devfile.io/mount-path: /etc/ data: gitconfig: "[user] \n name = <git_user_name> \n email = <git_user_email>" 2
ConfigMap を適用します。
$ oc apply -f - <<EOF <ConfigMap_prepared_in_step_1> EOF
検証
- Git プロバイダーがホストする リモート Git リポジトリーの URL を使用して、新しいワークスペースを開始します。
-
ワークスペースが起動したら、
tools
コンテナーで新しいターミナルを開き、git config --get-regexp user.*
を実行します。Git ユーザー名とメールが出力に表示されるはずです。