4.16.2. シークレットを環境変数として Red Hat CodeReady Workspaces コンテナーにマウントする

前提条件

  • Red Hat CodeReady Workspaces の実行中のインスタンス。Red Hat CodeReady Workspaces のインスタンスをインストールするには、「CodeReady Workspaces の インストール 」を参照してください。

手順

  1. CodeReady Workspaces ワークスペースがデプロイされる OpenShift プロジェクトで新規の OpenShift シークレットを作成します。作成される予定のシークレットのラベルは、ラベルのセットと一致する必要があります。

    • app.kubernetes.io/part-of: che.eclipse.org
    • app.kubernetes.io/component: <DEPLOYMENT_NAME>-secret

<DEPLOYMENT_NAME>は、postgreskeycloakdevfile-registryplugin-registry、またはcodereadyのいずれかのデプロイメントです。

例4.6 以下に例を示します。

apiVersion: v1
kind: Secret
metadata:
  name: custom-settings
  labels:
    app.kubernetes.io/part-of: che.eclipse.org
    app.kubernetes.io/component: codeready-secret
...

アノテーションは、指定されるシークレットが環境変数としてマウントされていることを示す必要があります。アノテーション値を設定します。

  • che.eclipse.org/mount-as: env - シークレットを環境変数としてマウントするように指定します。
  • che.eclipse.org/env-name: <FOOO_ENV> - シークレットキー値のマウントに必要な環境変数名を指定します。
apiVersion: v1
kind: Secret
metadata:
  name: custom-settings
  annotations:
    che.eclipse.org/env-name: FOO_ENV
    che.eclipse.org/mount-as: env
  labels:
   ...
data:
  mykey: myvalue

これにより、FOO_ENV という名前の環境変数と値 myvalue が CodeReady Workspaces コンテナーにプロビジョニングされます。

シークレットに複数のデータ項目がある場合、環境変数の名前は以下のようにそれぞれのデータキーについて指定される必要があります。

apiVersion: v1
kind: Secret
metadata:
  name: custom-settings
  annotations:
    che.eclipse.org/mount-as: env
    che.eclipse.org/mykey_env-name: FOO_ENV
    che.eclipse.org/otherkey_env-name: OTHER_ENV
  labels:
   ...
data:
  mykey: myvalue
  otherkey: othervalue

これにより、FOO_ENVOTHER_ENV という名前の、myvalue および othervalue の値を持つ 2 つの環境変数が CodeReady Workspaces コンテナーにプロビジョニングされます。

注記

OpenShift シークレットのアノテーション名の最大長さは 63 文字です。ここで、9 文字は、/ で終わるプレフィックス用に予約されます。これは、シークレットに使用できるキーの最大長さの制限として機能します。