3.3. サーバーコンポーネントの設定

3.3.1. シークレットまたは ConfigMap をファイルまたは環境変数としての Red Hat OpenShift Dev Spaces コンテナーへのマウント

シークレットは、以下のような機密データを格納する OpenShift オブジェクトです。

  • ユーザー名
  • パスワード
  • 認証トークン

(暗号化された形式)。

ユーザーは、機密データまたは OpenShift Dev Spaces で管理されるコンテナーの設定が含まれる ConfigMap を以下のようにマウントできます。

  • ファイル
  • 環境変数

マウントプロセスでは、標準の OpenShift マウントメカニズムを使用しますが、追加のアノテーションとラベル付けが必要です。

3.3.1.1. シークレットまたは ConfigMap を OpenShift Dev Spaces コンテナーにファイルとしてマウントする

前提条件

  • Red Hat OpenShift Dev Spaces の実行中のインスタンス

手順

  1. OpenShift Dev Spaces がデプロイされている OpenShift プロジェクトに新しい OpenShift シークレットまたは ConfigMap を作成します。作成される予定のオブジェクトのラベルは、ラベルのセットと一致する必要があります。

    • app.kubernetes.io/part-of: che.eclipse.org
    • app.kubernetes.io/component: <DEPLOYMENT_NAME>-<OBJECT_KIND>
    • <DEPLOYMENT_NAME> には、以下のデプロイメントのいずれかを使用します。

      • postgres
      • keycloak
      • devfile-registry
      • plugin-registry
      • devspaces

        および

    • <jasper_KIND> は以下のいずれかになります。

      • secret

        または

      • configmap

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

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

または

apiVersion: v1
kind: ConfigMap
metadata:
  name: custom-settings
  labels:
    app.kubernetes.io/part-of: che.eclipse.org
    app.kubernetes.io/component: devspaces-configmap
...

アノテーションは、指定されるオブジェクトがファイルとしてマウントされていることを示す必要があります。

  1. アノテーション値を設定します。

    • che.eclipse.org/mount-as: file - オブジェクトをファイルとしてマウントするように指定します。
    • che.eclipse.org/mount-path: <TARGET_PATH> - 必要なマウントパスを指定します。

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

apiVersion: v1
kind: Secret
metadata:
  name: custom-data
  annotations:
    che.eclipse.org/mount-as: file
    che.eclipse.org/mount-path: /data
  labels:
...

または

apiVersion: v1
kind: ConfigMap
metadata:
  name: custom-data
  annotations:
    che.eclipse.org/mount-as: file
    che.eclipse.org/mount-path: /data
  labels:
...

OpenShift オブジェクトには複数の項目が含まれる可能性があり、その名前はコンテナーにマウントされる必要なファイル名と一致する必要があります。

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

apiVersion: v1
kind: Secret
metadata:
  name: custom-data
  labels:
    app.kubernetes.io/part-of: che.eclipse.org
    app.kubernetes.io/component: devspaces-secret
  annotations:
    che.eclipse.org/mount-as: file
    che.eclipse.org/mount-path: /data
data:
  ca.crt: <base64 encoded data content here>

または

apiVersion: v1
kind: ConfigMap
metadata:
  name: custom-data
  labels:
    app.kubernetes.io/part-of: che.eclipse.org
    app.kubernetes.io/component: devspaces-configmap
  annotations:
    che.eclipse.org/mount-as: file
    che.eclipse.org/mount-path: /data
data:
  ca.crt: <data content here>

これにより、ca.crt という名前のファイルが OpenShift Dev Spaces コンテナーの /data パスにマウントされます。

重要

OpenShift Dev Spaces コンテナーに変更を加えるには、オブジェクトを完全に再作成します。

3.3.1.2. シークレットまたは ConfigMap を環境変数として OpenShift Dev Spaces コンテナーにマウントする

前提条件

  • Red Hat OpenShift Dev Spaces の実行中のインスタンス

手順

  1. OpenShift Dev Spaces がデプロイされている OpenShift プロジェクトに新しい OpenShift シークレットまたは ConfigMap を作成します。作成される予定のオブジェクトのラベルは、ラベルのセットと一致する必要があります。

    • app.kubernetes.io/part-of: che.eclipse.org
    • app.kubernetes.io/component: <DEPLOYMENT_NAME>-<OBJECT_KIND>
    • <DEPLOYMENT_NAME> には、以下のデプロイメントのいずれかを使用します。

      • postgres
      • keycloak
      • devfile-registry
      • plugin-registry
      • devspaces

        および

    • <jasper_KIND> は以下のいずれかになります。

      • secret

        または

      • configmap

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

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

または

apiVersion: v1
kind: ConfigMap
metadata:
  name: custom-settings
  labels:
    app.kubernetes.io/part-of: che.eclipse.org
    app.kubernetes.io/component: devspaces-configmap
...

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

  1. アノテーション値を設定します。

    • che.eclipse.org/mount-as: env -: オブジェクトを環境変数としてマウントするように指定します。
    • che.eclipse.org/env-name: <FOOO_ENV>: オブジェクトキー値のマウントに必要な環境変数名を指定します。

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

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

または

apiVersion: v1
kind: ConfigMap
metadata:
  name: custom-settings
  annotations:
    che.eclipse.org/env-name: FOO_ENV
    che.eclipse.org/mount-as: env
  labels:
   ...
data:
  mykey: myvalue

これにより、2 つの環境変数が

  • FOO_ENV
  • myvalue

OpenShift Dev Spaces コンテナーにプロビジョニングされている。

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

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

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: __<base64 encoded data content here>__
  otherkey: __<base64 encoded data content here>__

または

apiVersion: v1
kind: ConfigMap
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: __<data content here>__
  otherkey: __<data content here>__

これにより、2 つの環境変数が

  • FOO_ENV
  • OTHER_ENV

OpenShift Dev Spaces コンテナーにプロビジョニングされている。

注記

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

重要

OpenShift Dev Spaces コンテナーに変更を加えるには、オブジェクトを完全に再作成します。

3.3.2. Dev Spaces サーバーの高度な設定オプション

以下のセクションでは、OpenShift Dev Spaces サーバーコンポーネントの詳細なデプロイメントおよび設定方法を説明します。

3.3.2.1. OpenShift Dev Spaces サーバーの詳細設定について

以下のセクションでは、OpenShift Dev Spaces サーバーコンポーネントの詳細設定方法について説明します。

詳細設定は以下を実行するために必要です。

  • 標準の CheCluster カスタムリソースフィールドから Operator によって自動的に生成されない環境変数を追加します。
  • 標準の CheCluster カスタムリソースフィールドから Operator によって自動的に生成されるプロパティーを上書きします。

CheCluster Custom Resource server 設定の一部である customCheProperties フィールドには、OpenShift Dev Spaces サーバーコンポーネントに適用する追加の環境変数のマップが含まれます。

例3.10 ワークスペースのデフォルトのメモリー制限の上書き

注記

OpenShift Dev Spaces Operator の以前のバージョンには、このロールを果たすために custom という名前の ConfigMap がありました。OpenShift Dev Spaces オペレーターが custom という名前の configMap を見つけると、それに含まれるデータを customCheProperties フィールドに追加し、OpenShift Dev Spaces を再デプロイして、カスタムconfigMap を削除します。