第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 ファイルを編集して設定できます。このファイルには、各コンポーネントを設定するためのセクションが含まれています: devWorkspace
、cheServer
、pluginRegistry
、devfileRegistry
、database
、dashboard
および imagePuller
。
Red Hat OpenShift Dev Spaces Operator は、CheCluster
カスタムリソースを OpenShift Dev Spaces インストールの各コンポーネントで使用できる Config Map に変換します。
OpenShift プラットフォームは、設定を各コンポーネントに適用し、必要な Pod を作成します。OpenShift がコンポーネントの設定で変更を検知すると、Pod を適宜再起動します。
例3.1 OpenShift Dev Spaces サーバーコンポーネントの主なプロパティーの設定
-
cheServer
コンポーネントセクションで適切な変更を加えたCheCluster
カスタムリソース YAML ファイルを適用します。 -
Operator は、
che
ConfigMap
を生成します。 -
OpenShift は
ConfigMap
の変更を検出し、OpenShift Dev Spaces Pod の再起動をトリガーします。
3.1.1. dsc を使用したインストール時に CheCluster
カスタムリソースの設定
適切な設定で OpenShift Dev Space をデプロイするには、OpenShift Dev Space のインストール時に CheCluster
カスタムリソース YAML ファイルを編集します。それ以外の場合は、OpenShift Dev Spaces デプロイメントは Operator で設定されたデフォルト設定パラメーターを使用します。
前提条件
-
OpenShift クラスターへの管理権限を持つアクティブな
oc
セッション。CLI の使用方法 を参照してください。 -
dsc
。「dsc 管理ツールのインストール」 を参照してください。
手順
設定する
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>
検証
設定されたプロパティーの値を確認します。
$ 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 の使用方法 を参照してください。
手順
クラスター上の CheCluster カスタムリソースを編集します。
$ oc edit checluster/devspaces -n openshift-devspaces
- ファイルを保存して閉じ、変更を適用します。
検証
設定されたプロパティーの値を確認します。
$ oc get configmap che -o jsonpath='{.data.<configured_property>}' \ -n openshift-devspaces
3.1.3. CheCluster
カスタムリソースフィールドの参照
このセクションでは、CheCluster
カスタムリソースのカスタマイズに使用できるすべてのフィールドについて説明します。
-
例3.2「最小の
CheCluster
カスタムリソースの例。」 - 表3.1「開発環境の設定オプション。」
- 表3.4「OpenShift Dev Spaces コンポーネントの設定。」
- 表3.5「DevWorkspace Operator コンポーネントの設定。」
- 表3.6「OpenShift Dev Spaces サーバーコンポーネントに関連する一般的な設定。」
- 表3.7「OpenShift Dev Spaces インストールで使用されるプラグインレジストリーコンポーネントに関連する設定。」
- 表3.8「OpenShift Dev Spaces インストールで使用される Devfile レジストリーコンポーネントに関連する設定。」
- 表3.9「OpenShift Dev Spaces インストールで使用されるデータベースコンポーネントに関連する設定。」
- 表3.10「OpenShift Dev Spaces インストールで使用される Dashboard コンポーネントに関連する設定。」
- 表3.11「Kubernetes Image Puller コンポーネントの設定。」
- 表3.12「OpenShift Dev Spaces サーバーメトリクスコンポーネントの設定。」
- 表3.13「ネットワーク、OpenShift Dev Spaces 認証、および TLS 設定。」
- 表3.14「OpenShift Dev Spaces イメージを格納する代替レジストリーの設定。」
-
表3.15「
CheCluster
カスタムリソースのstatus
が OpenShift Dev Spaces インストールの観察される状態を定義します。」
例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
プロパティー | 説明 |
---|---|
containerBuildConfiguration | コンテナーのビルド設定。 |
defaultComponents | DevWorkspaces に適用されるデフォルトコンポーネント。デフォルトコンポーネントは、Devfile にコンポーネントが含まれていない場合に使用します。 |
defaultEditor |
一緒に作成するワークスペースのデフォルトエディター。プラグイン ID または URI を指定できます。プラグイン ID には |
defaultNamespace | ユーザーのデフォルトの名前空間。 |
defaultPlugins | DevWorkspaces に適用されるデフォルトのプラグイン。 |
disableContainerBuildCapabilities | コンテナービルド機能を無効にします。 |
nodeSelector | ノードセレクターは、ワークスペース Pod を実行できるノードを制限します。 |
secondsOfInactivityBeforeIdling | ワークスペースのアイドルタイムアウト (秒単位)。このタイムアウトは、アクティビティーがない場合にワークスペースがアイドル状態になるまでの期間です。非アクティブによるワークスペースのアイドリングを無効にするには、この値を -1 に設定します。 |
secondsOfRunBeforeIdling | ワークスペースのタイムアウトを秒単位で実行します。このタイムアウトは、ワークスペースが実行される最大期間です。ワークスペースの実行タイムアウトを無効にするには、この値を -1 に設定します。 |
serviceAccount | ワークスペースの開始時に DevWorkspace オペレーターが使用する ServiceAccount。 |
storage | ワークスペースの永続ストレージ。 |
tolerations | ワークスペース Pod の Pod 許容範囲によって、ワークスペース Pod を実行できる場所が制限されます。 |
trustedCerts | 信頼できる証明書の設定。 |
プロパティー | 説明 |
---|---|
autoProvision | ユーザー名前空間の自動作成を許可するかどうかを示します。false に設定すると、クラスター管理者がユーザー namespace を事前に作成する必要があります。 |
template |
ユーザー namespace を事前に作成しない場合には、このフィールドは最初のワークスペースの起動時に作成される Kubernetes namespace を定義します。che-workspace-<username> など、 |
プロパティー | 説明 |
---|---|
perUserStrategyPvcConfig |
|
perWorkspaceStrategyPvcConfig |
|
pvcStrategy |
Che サーバーの永続ボリューム要求ストラテジー。サポートされているストラテジー: |
プロパティー | 説明 |
---|---|
cheServer | Che サーバーに関連する一般的な設定。 |
dashboard | Che インストールで使用されるダッシュボードに関連する設定。 |
database | Che インストールで使用されるデータベースに関連する設定。 |
devWorkspace | DevWorkspace Operator の設定。 |
devfileRegistry | Che インストールで使用される devfile レジストリーに関連する設定。 |
imagePuller | Kubernetes Image Puller の設定。 |
metrics | Che サーバーメトリクスの設定。 |
pluginRegistry | Che インストールで使用されるプラグインレジストリーに関連する設定。 |
プロパティー | 説明 |
---|---|
runningLimit | ユーザーごとの実行中のワークスペースの最大数。 |
プロパティー | 説明 |
---|---|
clusterRoles |
Che ServiceAccount に割り当てられた ClusterRoles。デフォルトのロールは、 |
debug | Che サーバーのデバッグモードを有効にします。 |
deployment | デプロイメントオーバーライドオプション。 |
extraProperties |
|
logLevel |
Che サーバーのログレベル: |
proxy | Kubernetes クラスターのプロキシーサーバー設定。OpenShift クラスターに追加の設定は必要ありません。これらの設定を OpenShift クラスターに指定することで、OpenShift プロキシー設定をオーバーライドします。 |
プロパティー | 説明 |
---|---|
deployment | デプロイメントオーバーライドオプション。 |
disableInternalRegistry | 内部プラグインレジストリーを無効にします。 |
externalPluginRegistries | 外部プラグインレジストリー。 |
openVSXURL | VSX レジストリー URL を開きます。省略した場合は、埋め込みインスタンスが使用されます。 |
プロパティー | 説明 |
---|---|
deployment | デプロイメントオーバーライドオプション。 |
disableInternalRegistry | 内部 devfile レジストリーを無効にします。 |
externalDevfileRegistries | サンプルのすぐに使用できる devfile を提供する外部 devfile レジストリー。 |
プロパティー | 説明 |
---|---|
credentialsSecretName |
Che サーバーがデータベースへの接続に使用する PostgreSQL |
deployment | デプロイメントオーバーライドオプション。 |
externalDb |
Operator に対して専用のデータベースをデプロイするよう指示します。デフォルトでは、専用の PostgreSQL データベースは Che インストールの一部としてデプロイされます。 |
postgresDb | Che サーバーがデータベースへの接続に使用する PostgreSQL データベース名。 |
postgresHostName |
Che サーバーが接続する PostgreSQL データベースのホスト名。外部データベースを使用する場合、この値のみを上書きします。 |
postgresPort |
Che サーバーが接続する PostgreSQL データベースのポート。外部データベースを使用する場合、この値のみを上書きします。 |
pvc | PostgreSQL データベースの PVC 設定。 |
プロパティー | 説明 |
---|---|
deployment | デプロイメントオーバーライドオプション。 |
headerMessage | ダッシュボードのヘッダーメッセージ。 |
プロパティー | 説明 |
---|---|
enable |
コミュニティーでサポートされている Kubernetes Image Puller Operator をインストールして設定します。仕様を指定せずに値を |
spec | CheCluster で Image Puller を設定するための Kubernetes Image Puller 仕様。 |
プロパティー | 説明 |
---|---|
enable |
Che サーバーエンドポイントの |
プロパティー | 説明 |
---|---|
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 ターミネーションのセットアップに使用されるシークレットの名前。フィールドが空の文字列の場合、デフォルトのクラスター証明書が使用されます。シークレットには、 |
プロパティー | 説明 |
---|---|
hostname | イメージのプルに使用する別のコンテナーレジストリーの任意のホスト名または URL。この値は、Che デプロイメントに関連するすべてのデフォルトコンテナーイメージで定義されるコンテナーレジストリーのホスト名を上書きします。これは、Che を制限された環境にインストールする場合に特に便利です。 |
organization | イメージのプルに使用する別のレジストリーのオプションのリポジトリー名。この値は、Che デプロイメントに関連するすべてのデフォルトコンテナーイメージで定義されるコンテナーレジストリーの組織を上書きします。これは、制限された環境で 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 で実行している場合は、ルートの自動的に解決されたベースドメインです。 |