3.10.2. シークレットを環境変数としてワークスペースコンテナーにマウントする
以下のセクションでは、OpenShift シークレットを環境変数として、ユーザーのプロジェクトから CodeReady Workspaces の単一ワークスペースまたは複数ワークスペースコンテナーにマウントする方法を説明します。
前提条件
- CodeReady Workspaces の実行中のインスタンスがある。CodeReady Workspaces のインスタンスをインストールするには、「CodeReady Workspaces の インストール 」を参照してください。
手順
CodeReady Workspaces ワークスペースが作成される Kubernetes プロジェクトで、新規の OpenShift シークレットを生成します。
-
生成されるシークレットのラベルは、CodeReady Workspaces の
che.workspace.provision.secret.labels
プロパティーに設定されるラベルのセットと一致する必要があります。デフォルトでは、これは 2 つのラベルのセットになります。 -
app.kubernetes.io/part-of: che.eclipse.org
app.kubernetes.io/component: workspace-secret
:注記以下の例では、Red Hat CodeReady Workspaces のバージョン 2.1 と 2.2 での
target-container
アノテーションの使用法の違いについて説明します。以下に例を示します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow アノテーションは、指定のシークレットが環境変数としてマウントされていることを示す必要があり、オプションでこのマウントが適用されるコンテナー名を指定します。target-container アノテーションが定義されていない場合、シークレットは CodeReady Workspaces ワークスペースのすべてのユーザーコンテナーにマウントされますが、これは CodeReady Workspaces バージョン 2.1 についてのみ 適用されます。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow これにより、
FOO_ENV
という名前の環境変数と値myvalue
が、maven
という名前のコンテナーにプロビジョニングされます。CodeReady Workspaces バージョン 2.2 以降、
target-container
アノテーションは非推奨となり、ブール値が含まれるautomount-workspace-secret
アノテーションが導入されました。これは、devfile で上書きされる機能を使用して、デフォルトのシークレットのマウント動作を定義することを目的としています。true
の値により、すべてのワークスペースコンテナーへの自動マウントが有効になります。これとは対照的に、false
の値は、automountWorkspaceSecrets:true
プロパティーを使用して devfile コンポーネントで明示的に要求されるまでマウントプロセスを無効にします。Copy to Clipboard Copied! Toggle word wrap Toggle overflow これにより、
FOO_ENV
という名前の環境変数、および値myvalue
がすべてのワークスペースコンテナーにプロビジョニングされます。シークレットに複数のデータ項目がある場合、環境変数の名前は以下のようにそれぞれのデータキーについて指定される必要があります。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow これにより、
FOO_ENV
、OTHER_ENV
という名前の、myvalue
およびothervalue
の値を持つ 2 つの環境変数がワークスペースコンテナーにプロビジョニングされます。注記OpenShift シークレットのアノテーション名の最大長さは 63 文字です。ここで、9 文字は、
/
で終わるプレフィックス用に予約されます。これは、シークレットに使用できるキーの最大長さの制限として機能します。
-
生成されるシークレットのラベルは、CodeReady Workspaces の