第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 に設定します。 |
storage | ワークスペースの永続ストレージ。 |
tolerations | ワークスペース Pod の Pod 許容範囲によって、ワークスペース Pod を実行できる場所が制限されます。 |
trustedCerts | 信頼できる証明書の設定。 |
プロパティー | 説明 |
---|---|
autoProvision | ユーザー名前空間の自動作成を許可するかどうかを示します。false に設定すると、クラスター管理者がユーザー namespace を事前に作成する必要があります。 |
template |
ユーザー namespace を事前に作成しない場合には、このフィールドは最初のワークスペースの起動時に作成される Kubernetes namespace を定義します。che-workspace-<username> など、 |
プロパティー | 説明 |
---|---|
perUserStrategyPvcConfig |
|
perWorkspaceStrategyPvcConfig |
|
pvcStrategy |
OpenShift Dev Spaces サーバーの永続ボリューム要求戦略。サポートされているストラテジー: |
プロパティー | 説明 |
---|---|
cheServer | OpenShift Dev Spaces サーバーに関連する一般的な設定。 |
dashboard | OpenShift Dev Spaces インストールで使用されるダッシュボードに関連する設定設定。 |
database | OpenShift Dev Spaces インストールで使用されるデータベースに関連する設定設定。 |
devWorkspace | DevWorkspace Operator の設定。 |
devfileRegistry | OpenShift Dev Spaces インストールで使用される Devfile レジストリーに関連する設定。 |
imagePuller | Kubernetes Image Puller の設定。 |
metrics | OpenShift Dev Spaces サーバーのメトリック設定。 |
pluginRegistry | OpenShift Dev Spaces インストールで使用されるプラグインレジストリーに関連する設定設定。 |
プロパティー | 説明 |
---|---|
runningLimit | ユーザーごとの実行中のワークスペースの最大数。 |
プロパティー | 説明 |
---|---|
clusterRoles |
OpenShift Dev Spaces ServiceAccount に割り当てられた ClusterRoles。デフォルトのロールは、 |
debug | OpenShift Dev Spaces サーバーのデバッグモードを有効にします。 |
deployment | デプロイメントオーバーライドオプション。 |
extraProperties |
|
logLevel |
OpenShift Dev Spaces サーバーのログレベル: |
proxy | Kubernetes クラスターのプロキシーサーバー設定。OpenShift クラスターに追加の設定は必要ありません。これらの設定を OpenShift クラスターに指定することで、OpenShift プロキシー設定をオーバーライドします。 |
プロパティー | 説明 |
---|---|
deployment | デプロイメントオーバーライドオプション。 |
disableInternalRegistry | 内部プラグインレジストリーを無効にします。 |
externalPluginRegistries | 外部プラグインレジストリー。 |
openVSXURL | VSX レジストリー URL を開きます。省略した場合は、埋め込みインスタンスが使用されます。 |
プロパティー | 説明 |
---|---|
deployment | デプロイメントオーバーライドオプション。 |
disableInternalRegistry | 内部 devfile レジストリーを無効にします。 |
externalDevfileRegistries | サンプルのすぐに使用できる devfile を提供する外部 devfile レジストリー。 |
プロパティー | 説明 |
---|---|
credentialsSecretName |
OpenShift Dev Spaces サーバーがデータベースへの接続に使用する PostgreSQL |
deployment | デプロイメントオーバーライドオプション。 |
externalDb |
Operator に対して専用のデータベースをデプロイするよう指示します。デフォルトでは、専用の PostgreSQL データベースが OpenShift Dev Spaces インストールの一部としてデプロイされます。 |
postgresDb | OpenShift Dev Spaces サーバーがデータベースへの接続に使用する PostgreSQL データベース名。 |
postgresHostName |
OpenShift Dev Spaces サーバーが接続する PostgreSQL データベースのホスト名。外部データベースを使用する場合、この値のみを上書きします。 |
postgresPort |
OpenShift Dev Spaces サーバーが接続する PostgreSQL データベースポート。外部データベースを使用する場合、この値のみを上書きします。 |
pvc | PostgreSQL データベースの PVC 設定。 |
プロパティー | 説明 |
---|---|
deployment | デプロイメントオーバーライドオプション。 |
headerMessage | ダッシュボードのヘッダーメッセージ。 |
プロパティー | 説明 |
---|---|
enable |
コミュニティーでサポートされている Kubernetes Image Puller Operator をインストールして設定します。仕様を指定せずに値を |
spec | CheCluster で Image Puller を設定するための Kubernetes Image Puller 仕様。 |
プロパティー | 説明 |
---|---|
enable |
OpenShift Dev Spaces サーバーエンドポイントの |
プロパティー | 説明 |
---|---|
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 | インストールされた OpenShift Dev Spaces サーバーのパブリックホスト名。 |
labels | Ingress (OpenShift プラットフォームのルート) に設定されるラベルを定義します。 |
tlsSecretName |
Ingress TLS ターミネーションのセットアップに使用されるシークレットの名前。フィールドが空の文字列の場合、デフォルトのクラスター証明書が使用されます。シークレットには、 |
プロパティー | 説明 |
---|---|
hostname | イメージのプルに使用する別のコンテナーレジストリーの任意のホスト名または URL。この値は、OpenShift Dev Spaces デプロイメントに含まれるすべてのデフォルトのコンテナーイメージで定義されたコンテナーレジストリーのホスト名をオーバーライドします。これは、制限された環境で OpenShift Dev Spaces をインストールする場合にとくに役立ちます。 |
organization | イメージのプルに使用する別のレジストリーのオプションのリポジトリー名。この値は、OpenShift Dev Spaces デプロイメントに含まれるすべてのデフォルトのコンテナーイメージで定義されたコンテナーレジストリー組織をオーバーライドします。これは、制限された環境で OpenShift Dev Spaces をインストールする場合にとくに役立ちます。 |
プロパティー | 説明 |
---|---|
chePhase | OpenShift Dev Spaces デプロイメントの現在のフェーズを指定します。 |
cheURL | OpenShift Dev Spaces サーバーのパブリック URL。 |
cheVersion | 現在インストールされている OpenShift Dev Spaces のバージョン。 |
devfileRegistryURL | 内部 devfile レジストリーの公開 URL。 |
gatewayPhase | ゲートウェイデプロイメントの現在のフェーズを指定します。 |
message | OpenShift Dev Spaces デプロイメントが現在のフェーズにある理由の詳細を示す、人間が判読できるメッセージ。 |
pluginRegistryURL | 内部プラグインレジストリーの公開 URL。 |
postgresVersion | 使用中のイメージの PostgreSQL バージョン。 |
reason | OpenShift Dev Spaces デプロイメントが現在のフェーズにある理由の詳細を示す簡単な CamelCase メッセージ。 |
workspaceBaseDomain | 解決されたワークスペースベースドメイン。これは、仕様で明示的に定義された同じ名前のプロパティーのコピーか、仕様で定義されておらず、OpenShift で実行している場合は、ルートの自動的に解決されたベースドメインです。 |