第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
、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
セッション。Getting started with the 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
セッション。Getting started with the 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
カスタムリソースの例。
apiVersion: org.eclipse.che/v2 kind: CheCluster metadata: name: devspaces namespace: openshift-devspaces spec: components: {} devEnvironments: {} networking: {}
プロパティー | 説明 | デフォルト |
---|---|---|
containerBuildConfiguration | コンテナーのビルド設定。 | |
defaultComponents | DevWorkspaces に適用されるデフォルトコンポーネント。デフォルトコンポーネントは、Devfile にコンポーネントが含まれていない場合に使用します。 | |
defaultEditor |
一緒に作成するワークスペースのデフォルトエディター。プラグイン ID または URI を指定できます。プラグイン ID には | |
defaultNamespace | ユーザーのデフォルトの namespace。 | { "autoProvision": true, "template": "<username>-che"} |
defaultPlugins | DevWorkspaces に適用されるデフォルトのプラグイン。 | |
deploymentStrategy |
DeploymentStrategy は、既存のワークスペース Pod を新しい Pod に置き換えるために使用するデプロイメントストラテジーを定義します。利用可能なデプロイメントは | |
disableContainerBuildCapabilities |
コンテナービルド機能を無効にします。 | |
gatewayContainer | GatewayContainer の設定。 | |
imagePullPolicy | imagePullPolicy は、DevWorkspace のコンテナーに使用される imagePullPolicy を定義します。 | |
maxNumberOfRunningWorkspacesPerUser | ユーザーごとの実行中のワークスペースの最大数。値 -1 を指定すると、ユーザーはワークスペースを無制限に実行できます。 | |
maxNumberOfWorkspacesPerUser | ユーザーが保持できる停止中と実行中の両方のワークスペースの総数。値 -1 を指定すると、ユーザーはワークスペースを無制限に保持できます。 | -1 |
nodeSelector | ノードセレクターは、ワークスペース Pod を実行できるノードを制限します。 | |
persistUserHome | persistUserHome は、ワークスペースでユーザーのホームディレクトリーを永続化するための設定オプションを定義します。 | |
podSchedulerName | ワークスペース Pod の Pod スケジューラー。指定しない場合、Pod スケジューラーはクラスターのデフォルトのスケジューラーに設定されます。 | |
projectCloneContainer | プロジェクトクローンコンテナーの設定。 | |
secondsOfInactivityBeforeIdling | ワークスペースのアイドルタイムアウト (秒単位)。このタイムアウトは、アクティビティーがない場合にワークスペースがアイドル状態になるまでの期間です。非アクティブによるワークスペースのアイドリングを無効にするには、この値を -1 に設定します。 | 1800 |
secondsOfRunBeforeIdling | ワークスペースのタイムアウトを秒単位で実行します。このタイムアウトは、ワークスペースが実行される最大期間です。ワークスペースの実行タイムアウトを無効にするには、この値を -1 に設定します。 | -1 |
security | ワークスペースのセキュリティー設定。 | |
serviceAccount | ワークスペースの開始時に DevWorkspace オペレーターが使用する ServiceAccount。 | |
serviceAccountTokens | 投影されたボリュームとしてワークスペース Pod にマウントされる ServiceAccount トークンのリスト。 | |
startTimeoutSeconds | StartTimeoutSeconds は、ワークスペースが自動的に失敗するまでの開始にかかる最大期間 (秒単位) を決定します。指定しない場合、デフォルト値の 300 秒 (5 分) が使用されます。 | 300 |
storage | ワークスペースの永続ストレージ。 | { "pvcStrategy": "per-user"} |
Toleration | ワークスペース Pod の Pod 許容範囲によって、ワークスペース Pod を実行できる場所が制限されます。 | |
trustedCerts | 信頼できる証明書の設定。 | |
user | ユーザー設定 |
プロパティー | 説明 | デフォルト |
---|---|---|
autoProvision | ユーザー namespace の自動作成を許可するかどうかを示します。false に設定すると、クラスター管理者がユーザー namespace を事前に作成する必要があります。 | true |
template |
ユーザー namespace を事前に作成しない場合には、このフィールドは最初のワークスペースの起動時に作成される Kubernetes namespace を定義します。che-workspace-<username> など、 | "<username>-che" |
プロパティー | 説明 | デフォルト |
---|---|---|
editor | デフォルトのプラグインを指定するエディター ID。 | |
plugins | 指定されたエディターのデフォルトのプラグイン URI。 |
プロパティー | 説明 | デフォルト |
---|---|---|
env | コンテナーに設定する環境変数のリスト。 | |
image | コンテナーイメージ。Operator によって提供されるデフォルトのコンテナーイメージを使用するには、これを省略するか、空のままにします。 | |
imagePullPolicy |
イメージプルポリシーデフォルト値は、 | |
name | コンテナー名 | |
resources | このコンテナーに必要なコンピューティングリソース。 |
プロパティー | 説明 | デフォルト |
---|---|---|
perUserStrategyPvcConfig |
| |
perWorkspaceStrategyPvcConfig |
| |
pvcStrategy |
OpenShift Dev Spaces サーバーの永続ボリューム要求ストラテジー。サポートされているストラテジーは、 | "per-user" |
プロパティー | 説明 | デフォルト |
---|---|---|
claimSize | Persistent Volume Claim のサイズ。要求サイズを更新するには、要求サイズをプロビジョニングするストレージクラスがサイズ変更をサポートしている必要があります。 | |
storageClass | Persistent Volume Claim のストレージクラス。省略されるか、空のままの場合は、デフォルトのストレージクラスが使用されます。 |
プロパティー | 説明 | デフォルト |
---|---|---|
claimSize | Persistent Volume Claim のサイズ。要求サイズを更新するには、要求サイズをプロビジョニングするストレージクラスがサイズ変更をサポートしている必要があります。 | |
storageClass | Persistent Volume Claim のストレージクラス。省略されるか、空のままの場合は、デフォルトのストレージクラスが使用されます。 |
プロパティー | 説明 | デフォルト |
---|---|---|
gitTrustedCertsConfigMapName |
ConfigMap には、OpenShift Dev Spaces コンポーネントに伝播し、Git に特定の設定を提供するための証明書が含まれています。次のページを参照してください: https://www.eclipse.org/che/docs/stable/administration-guide/deploying-che-with-support-for-git-repositories-with-self-signed-certificates/ ConfigMap には、 |
プロパティー | 説明 | デフォルト |
---|---|---|
openShiftSecurityContextConstraint | コンテナーを構築するための OpenShift セキュリティーコンテキスト制約。 | "container-build" |
プロパティー | 説明 | デフォルト |
---|---|---|
cheServer | OpenShift Dev Spaces サーバーに関連する一般的な設定。 | { "debug": false, "logLevel": "INFO"} |
dashboard | OpenShift Dev Spaces インストールで使用されるダッシュボードに関連する設定。 | |
devWorkspace | DevWorkspace Operator の設定。 | |
devfileRegistry | OpenShift Dev Spaces インストールで使用される Devfile レジストリーに関連する設定。 | |
imagePuller | Kubernetes Image Puller の設定。 | |
metrics | OpenShift Dev Spaces サーバーのメトリック設定。 | { "enable": true} |
pluginRegistry | OpenShift Dev Spaces インストールで使用されるプラグインレジストリーに関連する設定。 |
プロパティー | 説明 | デフォルト |
---|---|---|
clusterRoles |
OpenShift Dev Spaces ServiceAccount に割り当てられた追加の ClusterRoles。各ロールには、 | |
debug | OpenShift Dev Spaces サーバーのデバッグモードを有効にします。 | false |
deployment | デプロイメントオーバーライドオプション。 | |
extraProperties |
| |
logLevel |
OpenShift Dev Spaces サーバーのログレベル: | "INFO" |
proxy | Kubernetes クラスターのプロキシーサーバー設定。OpenShift クラスターに追加の設定は必要ありません。これらの設定を OpenShift クラスターに指定することで、OpenShift プロキシー設定をオーバーライドします。 |
プロパティー | 説明 | デフォルト |
---|---|---|
credentialsSecretName |
プロキシーサーバーの | |
nonProxyHosts |
プロキシーをバイパスして直接アクセスできるホストのリスト。ワイルドカードドメインを指定するには、次の形式 | |
port | プロキシーサーバーポート。 | |
url |
プロキシーサーバーの URL (プロトコル + ホスト名)。プロキシー設定が必要な場合にのみ使用してください。Operator は OpenShift クラスター全体のプロキシー設定を尊重し、カスタムリソースで |
プロパティー | 説明 | デフォルト |
---|---|---|
deployment | デプロイメントオーバーライドオプション。 | |
disableInternalRegistry | 内部プラグインレジストリーを無効にします。 | |
externalPluginRegistries | 外部プラグインレジストリー。 | |
openVSXURL | VSX レジストリー URL を開きます。省略した場合は、埋め込みインスタンスが使用されます。 |
プロパティー | 説明 | デフォルト |
---|---|---|
url | プラグインレジストリーのパブリック URL。 |
プロパティー | 説明 | デフォルト |
---|---|---|
deployment | デプロイメントオーバーライドオプション。 | |
disableInternalRegistry | 内部 devfile レジストリーを無効にします。 | |
externalDevfileRegistries | サンプルのすぐに使用できる devfile を提供する外部 devfile レジストリー。 |
プロパティー | 説明 | デフォルト |
---|---|---|
url | すぐに使用できるサンプルの devfile を提供する devfile レジストリーのパブリック UR。 |
プロパティー | 説明 | デフォルト |
---|---|---|
branding | Dashboard のブランディングリソース | |
deployment | デプロイメントオーバーライドオプション。 | |
headerMessage | ダッシュボードのヘッダーメッセージ。 | |
logLevel | ダッシュボードのログレベル。 | "ERROR" |
プロパティー | 説明 | デフォルト |
---|---|---|
表示 | ダッシュボードにメッセージを表示するように指示します。 | |
text | ユーザーダッシュボードに表示される警告メッセージ。 |
プロパティー | 説明 | デフォルト |
---|---|---|
enable |
コミュニティーでサポートされている Kubernetes Image Puller Operator をインストールして設定します。仕様を指定せずに値を | |
spec | CheCluster で Image Puller を設定するための Kubernetes Image Puller 仕様。 |
プロパティー | 説明 | デフォルト |
---|---|---|
enable |
OpenShift Dev Spaces サーバーエンドポイントの | true |
プロパティー | 説明 | デフォルト |
---|---|---|
azure | ユーザーが Azure DevOps Service (dev.azure.com) でホストされているリポジトリーを操作できるようにします。 | |
bitbucket | ユーザーが Bitbucket でホストされているリポジトリー (bitbucket.org または自己ホスト型) を操作できるようにします。 | |
github | ユーザーが GitHub (github.com または GitHub Enterprise) でホストされているリポジトリーを操作できるようにします。 | |
gitlab | ユーザーが GitLab (gitlab.com または自己ホスト型) でホストされているリポジトリーを操作できるようにします。 |
プロパティー | 説明 | デフォルト |
---|---|---|
disableSubdomainIsolation |
サブドメイン分離を無効にします。 | |
endpoint |
GitHub サーバーのエンドポイント URL。 | |
secretName | Kubernetes シークレット。Base64 でエンコードされた GitHub OAuth クライアント ID と GitHub OAuth クライアントシークレットが含まれます。詳細については、次のページを参照してください: https://www.eclipse.org/che/docs/stable/administration-guide/cconfiguring-oauth-2-for-github/ |
プロパティー | 説明 | デフォルト |
---|---|---|
endpoint |
GitLab サーバーのエンドポイント URL。 | |
secretName | Kubernetes シークレット。Base64 でエンコードされた GitHub アプリケーション ID と GitLab アプリケーションクライアントシークレットが含まれます。次のページを参照してください: https://www.eclipse.org/che/docs/stable/administration-guide/cconfiguring-oauth-2-for-gitlab/。 |
プロパティー | 説明 | デフォルト |
---|---|---|
endpoint |
Bitbucket サーバーのエンドポイント URL。 | |
secretName | Kubernetes シークレット。Base64 でエンコードされた Bitbucket OAuth 1.0 または OAuth 2.0 データが含まれます。詳細は、https://www.eclipse.org/che/docs/stable/administration-guide/configuring-oauth-1-for-a-bitbucket-server/ および https://www.eclipse.org/che/docs/stable/administration-guide/configuring-oauth-2-for-the-bitbucket-cloud/ を参照してください。 |
プロパティー | 説明 | デフォルト |
---|---|---|
secretName | Kubernetes シークレット。Base64 でエンコードされた Azure DevOps Service アプリケーション ID とクライアントシークレットが含まれます。次のページを参照してください: https://www.eclipse.org/che/docs/stable/administration-guide/cconfiguring-oauth-2-for-microsoft-azure-devops-services |
プロパティー | 説明 | デフォルト |
---|---|---|
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 | 認証設定 | { "gateway": { "configLabels": { "app": "che", "component": "che-gateway-config" } }} |
domain | OpenShift クラスターの場合、Operator はドメインを使用してルートのホスト名を生成します。生成されたホスト名は、che-<devspaces-namespace>.<domain> のパターンに従います。<devspaces-namespace> は、CheCluster CRD が作成される namespace です。ラベルと組み合わせて、デフォルト以外の Ingress Controller によって提供されるルートを作成します。Kubernetes クラスターの場合、グローバル Ingress ドメインが含まれます。デフォルト値はありません。指定する必要があります。 | |
hostname | インストールされた OpenShift Dev Spaces サーバーのパブリックホスト名。 | |
ingressClassName |
IngressClassName は、IngressClass クラスターリソースの名前です。クラス名が | |
labels | Ingress (OpenShift プラットフォームのルート) に設定されるラベルを定義します。 | |
tlsSecretName |
Ingress TLS ターミネーションのセットアップに使用されるシークレットの名前。フィールドが空の文字列の場合、デフォルトのクラスター証明書が使用されます。シークレットには、 |
プロパティー | 説明 | デフォルト |
---|---|---|
advancedAuthorization |
高度な承認設定。Che へのアクセスを許可するユーザーとグループを決定します。ユーザーは、 | |
gateway | ゲートウェイ設定。 | { "configLabels": { "app": "che", "component": "che-gateway-config" }} |
identityProviderURL | アイデンティティープロバイダーサーバーの公開 URL。 | |
identityToken |
アップストリームに渡される ID トークン。サポートされるトークンには、 | |
oAuthAccessTokenInactivityTimeoutSeconds |
OpenShift 側で ID フェデレーションをセットアップするために使用される OpenShift | |
oAuthAccessTokenMaxAgeSeconds |
OpenShift 側で ID フェデレーションをセットアップするために使用される OpenShift | |
oAuthClientName |
OpenShift 側でアイデンティティーフェデレーションを設定するために使用される OpenShift | |
oAuthScope | アクセストークンのスコープ。このフィールドは、Kubernetes 専用に作成された OpenShift Dev Spaces インストールに固有であり、OpenShift では無視されます。 | |
oAuthSecret |
OpenShift 側でアイデンティティーフェデレーションを設定するために使用される OpenShift |
プロパティー | 説明 | デフォルト |
---|---|---|
configLabels | ゲートウェイ設定ラベル。 | { "app": "che", "component": "che-gateway-config"} |
deployment |
デプロイメントオーバーライドオプション。ゲートウェイのデプロイメントは複数のコンテナーで設定されているため、設定では次の名前で区別する必要があります。 | |
kubeRbacProxy | OpenShift Dev Spaces ゲートウェイ Pod 内の kube-rbac-proxy の設定。 | |
oAuthProxy | OpenShift Dev Spaces ゲートウェイ Pod 内の oauth-proxy の設定。 | |
traefik | OpenShift Dev Spaces ゲートウェイ Pod 内の Traefik の設定。 |
プロパティー | 説明 | デフォルト |
---|---|---|
hostname | イメージのプルに使用する別のコンテナーレジストリーの任意のホスト名または URL。この値は、OpenShift Dev Spaces デプロイメントに含まれるすべてのデフォルトのコンテナーイメージで定義されたコンテナーレジストリーのホスト名をオーバーライドします。これは、制限された環境で OpenShift Dev Spaces をインストールする場合にとくに役立ちます。 | |
組織 | イメージのプルに使用する別のレジストリーのオプションのリポジトリー名。この値は、OpenShift Dev Spaces デプロイメントに含まれるすべてのデフォルトのコンテナーイメージで定義されたコンテナーレジストリー組織をオーバーライドします。これは、制限された環境で OpenShift Dev Spaces をインストールする場合にとくに役立ちます。 |
プロパティー | 説明 | デフォルト |
---|---|---|
コンテナー | Pod に属するコンテナーのリスト。 | |
securityContext | Pod を実行する必要があるセキュリティーオプション。 |
プロパティー | 説明 | デフォルト |
---|---|---|
env | コンテナーに設定する環境変数のリスト。 | |
image | コンテナーイメージ。Operator によって提供されるデフォルトのコンテナーイメージを使用するには、これを省略するか、空のままにします。 | |
imagePullPolicy |
イメージプルポリシーデフォルト値は、 | |
name | コンテナー名 | |
resources | このコンテナーに必要なコンピューティングリソース。 |
プロパティー | 説明 | デフォルト |
---|---|---|
limits | 許可されるコンピューティングリソースの最大量について説明します。 | |
request | 必要なコンピューティングリソースの最小量について説明します。 |
プロパティー | 説明 | デフォルト |
---|---|---|
cpu |
CPU、コア単位。(500m = 0.5 コア) 値が指定されていない場合は、コンポーネントに応じてデフォルト値が設定されます。値が | |
memory |
メモリー (バイト単位)。(500Gi = 500GiB = 500 * 1024 * 1024 * 1024) 値が指定されていない場合は、コンポーネントに応じてデフォルト値が設定されます。値が |
プロパティー | 説明 | デフォルト |
---|---|---|
cpu |
CPU、コア単位。(500m = 0.5 コア) 値が指定されていない場合は、コンポーネントに応じてデフォルト値が設定されます。値が | |
memory |
メモリー (バイト単位)。(500Gi = 500GiB = 500 * 1024 * 1024 * 1024) 値が指定されていない場合は、コンポーネントに応じてデフォルト値が設定されます。値が |
プロパティー | 説明 | デフォルト |
---|---|---|
fsGroup |
Pod の全コンテナーに適用される特別な補助グループです。デフォルト値は | |
runAsUser |
コンテナープロセスのエントリーポイントを実行するための UID。デフォルト値は |
プロパティー | 説明 | デフォルト |
---|---|---|
chePhase | OpenShift Dev Spaces デプロイメントの現在のフェーズを指定します。 | |
cheURL | OpenShift Dev Spaces サーバーのパブリック URL。 | |
cheVersion | 現在インストールされている OpenShift Dev Spaces のバージョン。 | |
devfileRegistryURL | 内部 devfile レジストリーの公開 URL。 | |
gatewayPhase | ゲートウェイデプロイメントの現在のフェーズを指定します。 | |
message | OpenShift Dev Spaces デプロイメントが現在のフェーズにある理由の詳細を示す、人間が判読できるメッセージ。 | |
pluginRegistryURL | 内部プラグインレジストリーの公開 URL。 | |
reason | OpenShift Dev Spaces デプロイメントが現在のフェーズにある理由の詳細を示す簡単な CamelCase メッセージ。 | |
workspaceBaseDomain | 解決されたワークスペースベースドメイン。これは、仕様で明示的に定義された同じ名前のプロパティーのコピーか、仕様で定義されておらず、OpenShift で実行している場合は、ルートの自動的に解決されたベースドメインです。 |