第3章 Dev Spaces の設定


このセクションでは、Red Hat OpenShift Dev Spaces の設定方法とオプションについて説明します。

3.1. CheCluster カスタムリソースについて

OpenShift Dev Spaces のデフォルトデプロイメントは、Red Hat OpenShift Dev Spaces Operator で定義される CheCluster カスタムリソースパラメーターで設定されます。

CheCluster カスタムリソースは Kubernetes オブジェクトです。CheCluster カスタムリソース YAML ファイルを編集して設定できます。このファイルには、各コンポーネントを設定するためのセクションが含まれています: devWorkspacecheServerpluginRegistrydevfileRegistrydatabasedashboard および imagePuller

Red Hat OpenShift Dev Spaces Operator は、CheCluster カスタムリソースを OpenShift Dev Spaces インストールの各コンポーネントで使用できる Config Map に変換します。

OpenShift プラットフォームは、設定を各コンポーネントに適用し、必要な Pod を作成します。OpenShift がコンポーネントの設定で変更を検知すると、Pod を適宜再起動します。

例3.1 OpenShift Dev Spaces サーバーコンポーネントの主なプロパティーの設定

  1. cheServer コンポーネントセクションで適切な変更を加えた CheCluster カスタムリソース YAML ファイルを適用します。
  2. Operator は、che ConfigMap を生成します。
  3. OpenShift は ConfigMap の変更を検出し、OpenShift Dev Spaces Pod の再起動をトリガーします。

3.1.1. dsc を使用したインストール時に CheCluster カスタムリソースの設定

適切な設定で OpenShift Dev Space をデプロイするには、OpenShift Dev Space のインストール時に CheCluster カスタムリソース YAML ファイルを編集します。それ以外の場合は、OpenShift Dev Spaces デプロイメントは Operator で設定されたデフォルト設定パラメーターを使用します。

前提条件

手順

  • 設定する CheCluster カスタムリソースのサブセットを含む che-operator-cr-patch.yaml YAML ファイルを作成します。

    spec:
      <component>:
          <property_to_configure>: <value>
  • OpenShift Dev Spaces をデプロイし、che-operator-cr-patch.yaml ファイルで説明されている変更を適用します。

    $ dsc server:deploy \
    --che-operator-cr-patch-yaml=che-operator-cr-patch.yaml \
    --platform <chosen_platform>

検証

  1. 設定されたプロパティーの値を確認します。

    $ oc get configmap che -o jsonpath='{.data.<configured_property>}' \
    -n openshift-devspaces

3.1.2. CLI を使用して CheCluster カスタムリソースの設定

OpenShift Dev Spaces の実行中のインスタンスを設定するには、CheCluster カスタムリソース YAML ファイルを編集します。

前提条件

  • OpenShift 上の OpenShift Dev Spaces のインスタンス。
  • 宛先 OpenShift クラスターへの管理権限を持つアクティブな oc セッション。CLI の使用方法 を参照してください。

手順

  1. クラスター上の CheCluster カスタムリソースを編集します。

    $ oc edit checluster/devspaces -n openshift-devspaces
  2. ファイルを保存して閉じ、変更を適用します。

検証

  1. 設定されたプロパティーの値を確認します。

    $ oc get configmap che -o jsonpath='{.data.<configured_property>}' \
    -n openshift-devspaces

3.1.3. CheCluster カスタムリソースフィールドの参照

このセクションでは、CheCluster カスタムリソースのカスタマイズに使用できるすべてのフィールドについて説明します。

例3.2 最小の CheCluster カスタムリソースの例。

apiVersion: org.eclipse.che/v2
kind: CheCluster
metadata:
  name: devspaces
spec:
  devEnvironments:
    defaultNamespace:
      template: '<username>-che'
    storage:
      pvcStrategy: 'common'
  components:
    database:
      externalDb: false
    metrics:
      enable: true
表3.1 開発環境の設定オプション。
プロパティー説明

containerBuildConfiguration

コンテナーのビルド設定。

defaultComponents

DevWorkspaces に適用されるデフォルトコンポーネント。デフォルトコンポーネントは、Devfile にコンポーネントが含まれていない場合に使用します。

defaultEditor

一緒に作成するワークスペースのデフォルトエディター。プラグイン ID または URI を指定できます。プラグイン ID には publisher/plugin/version 形式が必要です。URI は http:// または https:// で始まる必要があります。

defaultNamespace

ユーザーのデフォルトの名前空間。

defaultPlugins

DevWorkspaces に適用されるデフォルトのプラグイン。

disableContainerBuildCapabilities

コンテナービルド機能を無効にします。

nodeSelector

ノードセレクターは、ワークスペース Pod を実行できるノードを制限します。

secondsOfInactivityBeforeIdling

ワークスペースのアイドルタイムアウト (秒単位)。このタイムアウトは、アクティビティーがない場合にワークスペースがアイドル状態になるまでの期間です。非アクティブによるワークスペースのアイドリングを無効にするには、この値を -1 に設定します。

secondsOfRunBeforeIdling

ワークスペースのタイムアウトを秒単位で実行します。このタイムアウトは、ワークスペースが実行される最大期間です。ワークスペースの実行タイムアウトを無効にするには、この値を -1 に設定します。

serviceAccount

ワークスペースの開始時に DevWorkspace オペレーターが使用する ServiceAccount。

storage

ワークスペースの永続ストレージ。

tolerations

ワークスペース Pod の Pod 許容範囲によって、ワークスペース Pod を実行できる場所が制限されます。

trustedCerts

信頼できる証明書の設定。

表3.2 開発環境の defaultNamespace オプション。
プロパティー説明

autoProvision

ユーザー名前空間の自動作成を許可するかどうかを示します。false に設定すると、クラスター管理者がユーザー namespace を事前に作成する必要があります。

template

ユーザー namespace を事前に作成しない場合には、このフィールドは最初のワークスペースの起動時に作成される Kubernetes namespace を定義します。che-workspace-<username> など、<username><userid> のプレースホルダーを使用できます。

表3.3 開発環境の ストレージ オプション。
プロパティー説明

perUserStrategyPvcConfig

per-user PVC ストラテジーを使用する場合の PVC 設定。

perWorkspaceStrategyPvcConfig

per-workspace PVC ストラテジーを使用する場合の PVC 設定。

pvcStrategy

Che サーバーの永続ボリューム要求ストラテジー。サポートされているストラテジー: per-user (1 つのボリュームに全ワークスペースの PVC が入る) と 'per-workspace' (各ワークスペースに個別の PVC が与えられる) です。詳細は、https://github.com/eclipse/che/issues/21185 を参照してください。

表3.4 OpenShift Dev Spaces コンポーネントの設定。
プロパティー説明

cheServer

Che サーバーに関連する一般的な設定。

dashboard

Che インストールで使用されるダッシュボードに関連する設定。

database

Che インストールで使用されるデータベースに関連する設定。

devWorkspace

DevWorkspace Operator の設定。

devfileRegistry

Che インストールで使用される devfile レジストリーに関連する設定。

imagePuller

Kubernetes Image Puller の設定。

metrics

Che サーバーメトリクスの設定。

pluginRegistry

Che インストールで使用されるプラグインレジストリーに関連する設定。

表3.5 DevWorkspace Operator コンポーネントの設定。
プロパティー説明

runningLimit

ユーザーごとの実行中のワークスペースの最大数。

表3.6 OpenShift Dev Spaces サーバーコンポーネントに関連する一般的な設定。
プロパティー説明

clusterRoles

Che ServiceAccount に割り当てられた ClusterRoles。デフォルトのロールは、<devspaces-namespace>-cheworkspaces-namespaces-clusterrole - <devspaces-namespace>-cheworkspaces-clusterrole - <devspaces-namespace>-cheworkspaces-devworkspace-clusterrole で、ここでの <che-namespace> は CheCluster CRD が作成される名前空間です。各ロールには、app.kubernetes.io/part-of=che.eclipse.org ラベルが必要です。Che Operator は、付与するためにはこれらの ClusterRoles のすべてのパーミッションをすでに持っていなければなりません。

debug

Che サーバーのデバッグモードを有効にします。

deployment

デプロイメントオーバーライドオプション。

extraProperties

CheCluster カスタムリソース (CR) の他のフィールドからすでに生成されている値に加えて、Che サーバーによって使用される生成された che ConfigMap に適用される追加の環境変数のマップ。extraProperties フィールドに、他の CR フィールドから che で通常生成されるプロパティーが含まれる場合、extraProperties で定義された値が代わりに使用されます。

logLevel

Che サーバーのログレベル: INFO または DEBUG.。

proxy

Kubernetes クラスターのプロキシーサーバー設定。OpenShift クラスターに追加の設定は必要ありません。これらの設定を OpenShift クラスターに指定することで、OpenShift プロキシー設定をオーバーライドします。

表3.7 OpenShift Dev Spaces インストールで使用されるプラグインレジストリーコンポーネントに関連する設定。
プロパティー説明

deployment

デプロイメントオーバーライドオプション。

disableInternalRegistry

内部プラグインレジストリーを無効にします。

externalPluginRegistries

外部プラグインレジストリー。

openVSXURL

VSX レジストリー URL を開きます。省略した場合は、埋め込みインスタンスが使用されます。

表3.8 OpenShift Dev Spaces インストールで使用される Devfile レジストリーコンポーネントに関連する設定。
プロパティー説明

deployment

デプロイメントオーバーライドオプション。

disableInternalRegistry

内部 devfile レジストリーを無効にします。

externalDevfileRegistries

サンプルのすぐに使用できる devfile を提供する外部 devfile レジストリー。

表3.9 OpenShift Dev Spaces インストールで使用されるデータベースコンポーネントに関連する設定。
プロパティー説明

credentialsSecretName

Che サーバーがデータベースへの接続に使用する PostgreSQL user および password が含まれるシークレット。シークレットには、app.kubernetes.io/part-of=che.eclipse.org ラベルが必要です。

deployment

デプロイメントオーバーライドオプション。

externalDb

Operator に対して専用のデータベースをデプロイするよう指示します。デフォルトでは、専用の PostgreSQL データベースは Che インストールの一部としてデプロイされます。externalDbtrue に設定されている場合、Operator によって専用データベースはデプロイされず、使用する外部データベースに関する接続の詳細を提供する必要があります。

postgresDb

Che サーバーがデータベースへの接続に使用する PostgreSQL データベース名。

postgresHostName

Che サーバーが接続する PostgreSQL データベースのホスト名。外部データベースを使用する場合、この値のみを上書きします。externalDb フィールドを参照してください。

postgresPort

Che サーバーが接続する PostgreSQL データベースのポート。外部データベースを使用する場合、この値のみを上書きします。externalDb フィールドを参照してください。

pvc

PostgreSQL データベースの PVC 設定。

表3.10 OpenShift Dev Spaces インストールで使用される Dashboard コンポーネントに関連する設定。
プロパティー説明

deployment

デプロイメントオーバーライドオプション。

headerMessage

ダッシュボードのヘッダーメッセージ。

表3.11 Kubernetes Image Puller コンポーネントの設定。
プロパティー説明

enable

コミュニティーでサポートされている Kubernetes Image Puller Operator をインストールして設定します。仕様を指定せずに値を true に設定すると、Operator によって管理されるデフォルトの Kubernetes Image Puller オブジェクトが作成されます。値を false に設定すると、仕様が提供されているかどうかに関係なく、Kubernetes Image Puller オブジェクトが削除され、Operator がアンインストールされます。spec.images フィールドを空のままにしておくと、推奨されるワークスペース関連のイメージのセットが自動的に検出され、インストール後に事前にプルされます。この Operator とその動作はコミュニティーによってサポートされていますが、そのペイロードは商用サポートされているイメージをプルするために商用サポートされている場合があることに注意してください。

spec

CheCluster で Image Puller を設定するための Kubernetes Image Puller 仕様。

表3.12 OpenShift Dev Spaces サーバーメトリクスコンポーネントの設定。
プロパティー説明

enable

Che サーバーエンドポイントの metrics を有効にします。

表3.13 ネットワーク、OpenShift Dev Spaces 認証、および TLS 設定。
プロパティー説明

annotations

Ingress (OpenShift プラットフォームのルート) に設定されるアノテーションを定義します。kubernetes プラットフォームのデフォルト: kubernetes.io/ingress.class: \nginx\ nginx.ingress.kubernetes.io/proxy-read-timeout: \3600\, nginx.ingress.kubernetes.io/proxy-connect-timeout: \3600\, nginx.ingress.kubernetes.io/ssl-redirect: \true\

auth

認証設定

domain

OpenShift クラスターの場合、Operator はドメインを使用してルートのホスト名を生成します。生成されたホスト名は、che-<devspaces-namespace>.<domain> のパターンに従います。<devspaces-namespace> は、CheCluster CRD が作成される名前空間です。ラベルと組み合わせて、デフォルト以外の Ingress コントローラーによって提供されるルートを作成します。Kubernetes クラスターの場合、グローバル Ingress ドメインが含まれます。デフォルト値はありません。指定する必要があります。

hostname

インストールされた Che サーバーの公開ホスト名。

labels

Ingress (OpenShift プラットフォームのルート) に設定されるラベルを定義します。

tlsSecretName

Ingress TLS ターミネーションのセットアップに使用されるシークレットの名前。フィールドが空の文字列の場合、デフォルトのクラスター証明書が使用されます。シークレットには、app.kubernetes.io/part-of=che.eclipse.org ラベルが必要です。

表3.14 OpenShift Dev Spaces イメージを格納する代替レジストリーの設定。
プロパティー説明

hostname

イメージのプルに使用する別のコンテナーレジストリーの任意のホスト名または URL。この値は、Che デプロイメントに関連するすべてのデフォルトコンテナーイメージで定義されるコンテナーレジストリーのホスト名を上書きします。これは、Che を制限された環境にインストールする場合に特に便利です。

organization

イメージのプルに使用する別のレジストリーのオプションのリポジトリー名。この値は、Che デプロイメントに関連するすべてのデフォルトコンテナーイメージで定義されるコンテナーレジストリーの組織を上書きします。これは、制限された環境で OpenShift Dev Spaces をインストールする場合にとくに役立ちます。

表3.15 CheCluster カスタムリソースの status が OpenShift Dev Spaces インストールの観察される状態を定義します。
プロパティー説明

chePhase

Che デプロイメントの現在のフェーズを指定します。

cheURL

Che サーバーの公開 URL。

cheVersion

現在インストールされている Che バージョン。

devfileRegistryURL

内部 devfile レジストリーの公開 URL。

gatewayPhase

ゲートウェイデプロイメントの現在のフェーズを指定します。

message

Che デプロイメントが現在のフェーズにある理由の詳細を示す、人間が判読できるメッセージ。

pluginRegistryURL

内部プラグインレジストリーの公開 URL。

postgresVersion

使用中のイメージの PostgreSQL バージョン。

reason

Che デプロイメントが現在のフェーズにある理由の詳細を示す簡単な CamelCase メッセージ。

workspaceBaseDomain

解決されたワークスペースベースドメイン。これは、仕様で明示的に定義された同じ名前のプロパティーのコピーか、仕様で定義されておらず、OpenShift で実行している場合は、ルートの自動的に解決されたベースドメインです。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.