インストールガイド
Red Hat CodeReady Workspaces 2.8 のインストール
概要
多様性を受け入れるオープンソースの強化
Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。まずは、マスター (master)、スレーブ (slave)、ブラックリスト (blacklist)、ホワイトリスト (whitelist) の 4 つの用語の置き換えから始めます。この取り組みは膨大な作業を要するため、今後の複数のリリースで段階的に用語の置き換えを実施して参ります。詳細は、Red Hat CTO である Chris Wright のメッセージ をご覧ください。
第1章 サポートされるプラットフォーム
このセクションでは、OpenShift Container Platform 4.6、3.11、および OpenShift Dedicated での CodeReady Workspaces 2.8 の可用性およびサポートされるインストール方法について説明します。
表1.1 OpenShift Container Platform および OpenShift Dedicated での CodeReady Workspaces 2.8 でサポートされるデプロイメント環境
プラットフォーム | アーキテクチャー | デプロイメント方法 |
OpenShift Container Platform 3.11 | AMD64 および Intel 64 (x86_64) |
|
OpenShift Container Platform 4.6 | AMD64 および Intel 64 (x86_64) |
OperatorHub, |
OpenShift Container Platform 4.6 | IBM Z (s390x) |
OperatorHub, |
OpenShift Container Platform 4.6 | IBM Power Systems (ppc64le) |
OperatorHub, |
OpenShift Container Platform 4.7 | AMD64 および Intel 64 (x86_64) |
OperatorHub, |
OpenShift Container Platform 4.7 | IBM Z (s390x) |
OperatorHub, |
OpenShift Container Platform 4.7 | IBM Power Systems (ppc64le) |
OperatorHub, |
OpenShift Dedicated 4.7 | AMD64 および Intel 64 (x86_64) | アドオン |
IBM Z(s390x)および IBM Power Systems(ppc64le)での OpenShift Container Platform への CodeReady Workspaces のデプロイのサポートは、現時点でテクノロジープレビュー機能としてのみ利用できます。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は実稼働環境でこれらを使用することを推奨していません。これらの機能は、近々発表予定の製品機能をリリースに先駆けてご提供することにより、お客様は機能性をテストし、開発プロセス中にフィードバックをお寄せいただくことができます。テクノロジープレビュー機能のサポートレベルの詳細は、「テクノロジープレビュー機能のサポート範囲」を参照してください。
第2章 CodeReady Workspaces インストールの設定
以下のセクションでは、Operator を使用して Red Hat CodeReady Workspaces をインストールする設定オプションについて説明します。
2.1. CheCluster
カスタムリソースについて
CodeReady Workspaces のデフォルトデプロイメントは、Red Hat CodeReady Workspaces Operator によって準仮想化された CheCluster
カスタムリソースのアプリケーションで構成されています。
CheCluster
カスタムリソース- CodeReady Workspaces インストール全体の設定を記述する YAML ドキュメント。
-
各コンポーネントを設定するセクション(
auth
、database
、server
、storage
)が含まれます。
- Red Hat CodeReady Workspaces Operator の役割
-
CheCluster
カスタムリソースを、CodeReady Workspaces インストールの各コンポーネントで使用できる設定 (ConfigMap) に変換します。
-
- OpenShift プラットフォームの役割
- 各コンポーネントの設定 (ConfigMap) を適用するには、以下を実行します。
- 必要な Pod を作成するには、以下を実行します。
- OpenShift がコンポーネントの設定で変更を検知すると、Pod を適宜再起動します。
例2.1 CodeReady Workspaces サーバーコンポーネントの主なプロパティーの設定
-
ユーザーは、
server
に関連する一部の設定が含まれるCheCluster
カスタムリソースを適用します。 -
Operator は
che
という必要な ConfigMap を生成します。 - OpenShift は ConfigMap の変更を検知し、CodeReady Workspaces Pod の再起動をトリガーします。
関連情報
- Operator について
- カスタムリソースについて
-
CheCluster
カスタムリソースを変更する方法は、選択したインストール手順を参照してください。
2.2. CheCluster
カスタムリソースフィールドの参照
このセクションでは、CheCluster
カスタムリソースのカスタマイズに使用できるすべてのフィールドについて説明します。
-
例2.2「最小の
CheCluster
カスタムリソースの例。」 -
表2.1「CodeReady Workspaces サーバーコンポーネントに関連する
CheCluster
カスタムリソースのserver
設定。」 -
表2.2「CodeReady Workspaces で使用されるデータベースに関連する
CheCluster
カスタムリソースdatabase
設定。」 -
表2.3「CodeReady Workspaces で使用される認証に関連するカスタムリソース
auth
設定。」 -
表2.4「CodeReady Workspaces で使用される永続ストレージに関連する
CheCluster
カスタムリソースstorage
設定。」 -
表2.5「OpenShift の CodeReady Workspaces インストールに固有の
CheCluster
カスタムリソースk8s
設定。」 -
表2.6「CodeReady Workspaces によって使用される CodeReady Workspaces メトリクス収集に関連する
CheCluster
カスタムリソースmetrics
設定。」 -
表2.7「
CheCluster
カスタムリソースstatus
は、CodeReady Workspaces インストールの観察される状態を定義します。」
例2.2 最小の CheCluster
カスタムリソースの例。
apiVersion: org.eclipse.che/v1 kind: CheCluster metadata: name: codeready-workspaces spec: auth: externalIdentityProvider: false database: externalDb: false server: selfSignedCert: false gitSelfSignedCert: false tlsSupport: true storage: pvcStrategy: 'common' pvcClaimSize: '1Gi'
表2.1 CodeReady Workspaces サーバーコンポーネントに関連する CheCluster
カスタムリソースの server
設定。
プロパティー | 詳細 |
---|---|
airGapContainerRegistryHostname | イメージのプルに使用する別のコンテナーレジストリーに対する、オプションのホスト名または URL。この値は、Che デプロイメントに関連するすべてのデフォルトコンテナーイメージで定義されるコンテナーレジストリーのホスト名を上書きします。これは、制限された環境で Che をインストールする場合にとくに便利です。 |
airGapContainerRegistryOrganization | イメージのプルに使用する別のコンテナーレジストリーのオプションのリポジトリー名。この値は、Che デプロイメントに関連するすべてのデフォルトコンテナーイメージで定義されるコンテナーレジストリーの組織を上書きします。これは、制限された環境で CodeReady Workspaces をインストールする場合にとくに便利です。 |
allowUserDefinedWorkspaceNamespaces |
ユーザーが OpenShift プロジェクトまたはデフォルトとは異なる OpenShift プロジェクトを指定できるように定義します。OpenShift OAuth を設定せずに |
cheClusterRoles | Che ServiceAccount に割り当てられる ClusterRole のコンマ区切りの一覧。Che Operator には、これらの ClusterRole のすべてのパーミッションがすでにあり、これらを付与できる必要があることに注意してください。 |
cheDebug |
Che サーバーのデバッグモードを有効にします。デフォルトは |
cheFlavor |
インストールのバリエーションを指定します。このオプションは、アップストリームの Che インストールの場合は |
cheHost |
インストールされた Che サーバーのパブリックホスト名。値を省略すると、値は Operator によって自動的に設定されます。 |
cheHostTLSSecret |
インストールされた Che サーバーのカスタムホスト名の Ingress またはルートのセキュリティーを保護するための証明書が含まれるシークレットの名前。 |
cheImage | Che デプロイメントで使用されるコンテナーイメージを上書きします。これには、コンテナーイメージタグは含まれません。Operator によって提供されるデフォルトのコンテナーイメージを使用するには、これを省略するか、または空のままにします。 |
cheImagePullPolicy |
Che デプロイメントで使用されるイメージプルポリシーを上書きします。デフォルト値は、 |
cheImageTag | Che デプロイメントで使用されるコンテナーイメージのタグを上書きします。Operator によって提供されるデフォルトのイメージタグを使用するには、これを省略するか、または空のままにします。 |
cheLogLevel |
Che サーバーのログレベル: |
cheServerIngress | Che サーバー Ingress のカスタム設定。 |
cheServerRoute | Che サーバールートのカスタム設定。 |
cheWorkspaceClusterRole | Che ワークスペースのユーザーにバインドされるカスタムロール。デフォルトのロールは、省略されているか、または空白のままの場合に使用されます。 |
customCheProperties |
|
devfileRegistryCpuLimit | devfile レジストリーのデプロイメントで使用される CPU 制限を上書きします。コア(500m = .5 コア)。デフォルトは 500m に設定されます。 |
devfileRegistryCpuRequest | devfile レジストリーのデプロイメントで使用される CPU 要求を上書きします。コア(500m = .5 コア)。デフォルトは 100m に設定されます。 |
devfileRegistryImage | devfile レジストリーのデプロイメントで使用されるコンテナーイメージを上書きします。これには、イメージタグが含まれます。Operator によって提供されるデフォルトのコンテナーイメージを使用するには、これを省略するか、または空のままにします。 |
devfileRegistryIngress | devfile レジストリー Ingress のカスタム設定。 |
devfileRegistryMemoryLimit | devfile レジストリーのデプロイメントで使用されるメモリー制限を上書きします。デフォルトは 256Mi に設定されます。 |
devfileRegistryMemoryRequest | devfile レジストリーのデプロイメントで使用されるメモリー要求を上書きします。デフォルトは 16Mi に設定されます。 |
devfileRegistryPullPolicy |
devfile レジストリーのデプロイメントで使用されるイメージプルポリシーを上書きします。デフォルト値は、 |
devfileRegistryRoute | devfile レジストリールートのカスタム設定。 |
devfileRegistryUrl |
サンプルのすぐに使用できる devfile を提供する devfile レジストリーの公開 URL。外部 devfile レジストリーを使用する必要がある場合は、この ONLY を設定します。 |
externalDevfileRegistry |
専用の devfile レジストリーサーバーをデプロイするかどうかについて Operator に指示します。デフォルトでは、専用の devfile レジストリーサーバーが起動します。 |
externalPluginRegistry |
専用のプラグインレジストリーサーバーをデプロイするかどうかについて Operator に指示します。デフォルトでは、専用のプラグインレジストリーサーバーが起動します。 |
gitSelfSignedCert |
|
nonProxyHosts |
プロキシーをバイパスして、直接到達されるホストの一覧。ワイルドカードのドメインを指定するには、以下の |
pluginRegistryCpuLimit | プラグインレジストリーのデプロイメントで使用される CPU 制限を上書きします。コア(500m = .5 コア)。デフォルトは 500m に設定されます。 |
pluginRegistryCpuRequest | プラグインレジストリーのデプロイメントで使用される CPU 要求を上書きします。コア(500m = .5 コア)。デフォルトは 100m に設定されます。 |
pluginRegistryImage | プラグインレジストリーのデプロイメントで使用されるコンテナーイメージを上書きします。これには、イメージタグが含まれます。Operator によって提供されるデフォルトのコンテナーイメージを使用するには、これを省略するか、または空のままにします。 |
pluginRegistryIngress | プラグインレジストリー Ingress のカスタム設定。 |
pluginRegistryMemoryLimit | プラグインレジストリーのデプロイメントで使用されるメモリー制限を上書きします。デフォルトは 256Mi に設定されます。 |
pluginRegistryMemoryRequest | プラグインレジストリーのデプロイメントで使用されるメモリー要求を上書きします。デフォルトは 16Mi に設定されます。 |
pluginRegistryPullPolicy |
プラグインレジストリーのデプロイメントで使用されるイメージプルポリシーを上書きします。デフォルト値は、 |
pluginRegistryRoute | プラグインレジストリールートのカスタム設定。 |
pluginRegistryUrl |
サンプルのすぐに使できる devfile を提供するプラグインレジストリーの公開 URL。外部 devfile レジストリーを使用する必要がある場合は、この ONLY を設定します。 |
proxyPassword |
プロキシーサーバーのパスワード。プロキシー設定が必要である場合にのみ使用します。 |
proxyPort |
プロキシーサーバーのポート。プロキシーの設定が必要な場合にのみ使用します。 |
proxySecret |
プロキシーサーバーの |
proxyURL |
プロキシーサーバーの URL (プロトコル+ホスト名)。これにより、Che サーバーおよびワークスペースコンテナーの |
proxyUser |
プロキシーサーバーのユーザー名。プロキシーの設定が必要な場合にのみ使用します。 |
selfSignedCert | 非推奨。このフラグの値は無視されます。Che Operator は、ルーター証明書が自己署名されているかどうかを自動的に検知し、これを Che サーバーなどの他のコンポーネントに伝播します。 |
serverCpuLimit | Che サーバーのデプロイメントで使用される CPU 制限を上書きします (コア単位)。(500m = .5 コア)。デフォルトは 1 に設定されます。 |
serverCpuRequest | Che サーバーのデプロイメントで使用される CPU 要求を上書きします (コア単位)。(500m = .5 コア)。デフォルトは 100m に設定されます。 |
serverExposureStrategy |
サーバーおよびワークスペースの公開タイプを設定します。設定可能な値は、 |
serverMemoryLimit | Che サーバーのデプロイメントで使用されるメモリー制限を上書きします。デフォルトは 1Gi に設定されます。 |
serverMemoryRequest | Che サーバーのデプロイメントで使用されるメモリー要求を上書きします。デフォルトは 512Mi に設定されます。 |
serverTrustStoreConfigMapName | Che サーバーの Java トラストストアに追加するパブリック証明書のある ConfigMap の名前。これは、HTTPS エンドポイントが自己署の証明書で署名されている OpenShift OAuth プロバイダーを追加する際に必要になります。Che サーバーは、要求できるように CA 証明書を認識できる必要があります。これはデフォルトで無効にされます。 |
singleHostGatewayConfigMapLabels | ゲートウェイ設定を表す ConfigMap に存在する必要があるラベル。 |
singleHostGatewayConfigSidecarImage | ゲートウェイに設定を提供するゲートウェイサイドカーに使用されるイメージ。Operator によって提供されるデフォルトのコンテナーイメージを使用するには、これを省略するか、または空のままにします。 |
singleHostGatewayImage | 単一ホストモードでゲートウェイに使用されるイメージ。Operator によって提供されるデフォルトのコンテナーイメージを使用するには、これを省略するか、または空のままにします。 |
tlsSupport | 非推奨。Operator に対して Che を TLS モードでデプロイするように指示します。これはデフォルトで有効になっています。TLS を無効にすると、Che コンポーネントが正しく機能しないことがあります。 |
useInternalClusterSVCNames |
内部クラスターの SVC 名を使用してコンポーネント間の通信を行い、トラフィックを加速し、プロキシーの問題を回避します。デフォルト値は |
workspaceNamespaceDefault |
ユーザーが上書きしない場合に、ユーザーのワークスペースが作成されるデフォルトの OpenShift プロジェクトを定義します。 |
表2.2 CodeReady Workspaces で使用されるデータベースに関連する CheCluster
カスタムリソース database
設定。
プロパティー | 詳細 |
---|---|
chePostgresContainerResources | PostgreSQL コンテナーのカスタム設定 |
chePostgresDb |
Che サーバーが DB への接続に使用する PostgreSQL データベース名。デフォルトは |
chePostgresHostName |
Che サーバーが接続する PostgreSQL データベースのホスト名。デフォルトは |
chePostgresPassword | Che サーバーが DB への接続に使用する PostgreSQL パスワード。これは、省略されるか、または空のままの場合は、自動的に生成される値に設定されます。 |
chePostgresPort |
Che サーバーが接続する PostgreSQL データベースのポート。デフォルトは 5432 に設定されます。外部データベースを使用する場合、この値のみを上書きします。 |
chePostgresSecret |
Che サーバーが DB への接続に使用する PosgreSQL の `user` および |
chePostgresUser |
Che サーバーが DB への接続に使用する PostgreSQL ユーザー。デフォルトは |
externalDb |
専用のデータベースをデプロイするかどうかについて Operator に指示します。デフォルトでは、専用の PostgreSQL データベースは Che インストールの一部としてデプロイされます。 |
postgresImage | PosgreSQL データベースのデプロイメントで使用されるコンテナーイメージを上書きします。これには、イメージタグが含まれます。Operator によって提供されるデフォルトのコンテナーイメージを使用するには、これを省略するか、または空のままにします。 |
postgresImagePullPolicy |
PosgreSQL データベースのデプロイメントで使用されるイメージプルポリシーを上書きします。デフォルト値は、 |
表2.3 CodeReady Workspaces で使用される認証に関連するカスタムリソース auth
設定。
プロパティー | 詳細 |
---|---|
externalIdentityProvider |
専用のアイデンティティープロバイダー (Keycloak または RH-SSO インスタンス) をデプロイするかどうかについて Operator に指示します。デフォルトで、専用のアイデンティティープロバイダーサーバーは Che インストールの一部としてデプロイされます。 |
identityProviderAdminUserName |
アイデンティティープロバイダーの管理者ユーザーの名前を上書きします。デフォルトは |
identityProviderClientId |
Che に使用されるアイデンティティープロバイダー、Keycloak、または RH-SSO の |
identityProviderContainerResources | アイデンティティープロバイダーコンテナーのカスタム設定。 |
identityProviderImage | アイデンティティープロバイダー、Keycloak、または RH-SSO デプロイメントで使用するコンテナーイメージを上書きします。これには、イメージタグが含まれます。Operator によって提供されるデフォルトのコンテナーイメージを使用するには、これを省略するか、または空のままにします。 |
identityProviderImagePullPolicy |
アイデンティティープロバイダー、Keycloak、または RH-SSO デプロイメントで使用するイメージプルポリシーを上書きします。デフォルト値は、 |
identityProviderIngress | Ingress のカスタム設定。 |
identityProviderPassword |
Keycloak 管理者ユーザーのパスワードを上書きします。外部アイデンティティープロバイダーが使用されている場合にこれを上書きします。 |
identityProviderPostgresPassword |
データベースに接続するために使用するアイデンティティープロバイダー、Keycloak、または RH-SSO のパスワード外部アイデンティティープロバイダーが使用されている場合にこれを上書きします。 |
identityProviderPostgresSecret |
データベースに接続するために使用するアイデンティティープロバイダー、Keycloak、または RH-SSO の |
identityProviderRealm |
Che に使用されるアイデンティティープロバイダー、Keycloak、または RH-SSO のレルムの名前。外部アイデンティティープロバイダーが使用されている場合にこれを上書きします。 |
identityProviderRoute | ルートのカスタム設定。 |
identityProviderSecret |
アイデンティティープロバイダーの |
identityProviderURL |
アイデンティティープロバイダーサーバー (Keycloak/RH-SSO サーバー) の公開 URL。外部アイデンティティープロバイダーを使用する必要がある場合は、これのみを設定します。 |
oAuthClientName |
OpenShift 側でアイデンティティーフェデレーションを設定するために使用される OpenShift |
oAuthSecret |
OpenShift 側でアイデンティティーフェデレーションを設定するために使用される OpenShift |
openShiftoAuth |
アイデンティティープロバイダー (Keycloak/RHSSO) と OpenShift OAuth の統合を有効にします。デフォルトでは OpenShift の値は空になります。これにより、ユーザーは OpenShift ログインで OpenShift ユーザーとして直接ログインでき、独自のワークスペースを個人の OpenShift namespace の下に作成できます。警告: |
updateAdminPassword |
デフォルトの |
表2.4 CodeReady Workspaces で使用される永続ストレージに関連する CheCluster
カスタムリソース storage
設定。
プロパティー | 詳細 |
---|---|
postgresPVCStorageClassName | PosgreSQL データベース専用の Persistent Volume Claim (永続ボリューム要求、PVC) のストレージクラス。省略されるか、または空のままの場合は、デフォルトのストレージクラスが使用されます。 |
preCreateSubPaths |
Che サーバーに対し、永続ボリュームでサブパスを事前に作成するために特別な Pod を起動するように指示します。デフォルトは |
pvcClaimSize |
ワークスペースの永続ボリューム要求 (PVC) のサイズ。デフォルトは |
pvcJobsImage |
永続ボリュームでサブパスを作成するために使用されるコンテナーイメージを上書きします。これには、イメージタグが含まれます。Operator によって提供されるデフォルトのコンテナーイメージを使用するには、これを省略するか、または空のままにします。 |
pvcStrategy |
Che サーバーの永続ボリューム要求ストラテジー。これには、'common' (1 つのボリュームにすべてのワークスペース PVC)、 |
workspacePVCStorageClassName | Che ワークスペース専用の Persistent Volume Claim(永続ボリューム要求、PVC)のストレージクラス。省略されるか、または空のままの場合は、デフォルトのストレージクラスが使用されます。 |
表2.5 OpenShift の CodeReady Workspaces インストールに固有の CheCluster
カスタムリソース k8s
設定。
プロパティー | 詳細 |
---|---|
ingressClass |
Ingress を管理するコントローラーを定義する Ingress クラス。デフォルトは |
ingressDomain | OpenShift クラスターのグローバル Ingress ドメイン。これは明示的に指定する必要があります。デフォルト値はありません。 |
ingressStrategy |
Ingress 作成のストラテジー。オプション: |
securityContextFsGroup |
Che Pod およびワークスペース Pod コンテナーが実行される FSGroup。デフォルト値は |
securityContextRunAsUser |
Che Pod およびワークスペース Pod コンテナーの実行に使用するユーザーの ID。デフォルト値は |
singleHostExposureType |
serverExposureStrategy が |
tlsSecretName |
TLS が有効にされている場合に ingress TLS 終端を設定するために使用されるシークレットの名前。フィールドが空の文字列である場合、デフォルトのクラスター証明書が使用されます。 |
表2.6 CodeReady Workspaces によって使用される CodeReady Workspaces メトリクス収集に関連する CheCluster
カスタムリソース metrics
設定。
プロパティー | 詳細 |
---|---|
enable |
Che サーバーエンドポイント |
表2.7 CheCluster
カスタムリソース status
は、CodeReady Workspaces インストールの観察される状態を定義します。
プロパティー | 詳細 |
---|---|
cheClusterRunning |
Che インストールのステータス。 |
cheURL | Che サーバーへの公開 URL。 |
cheVersion | 現在のインストールされている Che バージョン。 |
dbProvisioned | PosgreSQL インスタンスが正しくプロビジョニングされているかどうかを示します。 |
devfileRegistryURL | devfile レジストリーへの公開 URL。 |
gitHubOAuthProvisioned | アイデンティティープロバイダーインスタンス、Keycloak または RH-SSO が GitHub OAuth と統合するように設定されているかどうかを示します。 |
helpLink | 現在の Operator ステータスに関連するヘルプの検索に使用する URL を参照する URL。 |
keycloakProvisioned | アイデンティティープロバイダーインスタンス、Keycloak または RH-SSO がレルム、クライアント、およびユーザーと共にプロビジョニングされているかどうかを示します。 |
keycloakURL | アイデンティティープロバイダーサーバー (Keycloak/RH-SSO) の公開 URL。 |
message | Pod がこの状態にある理由の詳細を示す、人が判読できるメッセージ。 |
openShiftoAuthProvisioned | アイデンティティープロバイダーインスタンス、Keycloak または RH-SSO が OpenShift OAuth と統合するように設定されているかどうかを示します。 |
pluginRegistryURL | プラグインレジストリーへの公開 URL。 |
reason | Pod がこの状態にある理由の詳細を示す簡単な CamelCase メッセージ。 |
第3章 CodeReady Workspaces のインストール
本セクションでは、Red Hat CodeReady Workspaces をインストールする手順を説明します。インストール方法は、ターゲットプラットフォームと環境の制限によって異なります。
3.1. OperatorHub を使用した OpenShift 4 への CodeReady Workspaces のインストール
本セクションでは、OpenShift 4 Web コンソールで利用可能な CodeReady Workspaces Operator を使用して CodeReady Workspaces をインストールする方法を説明します。
Operator は、OpenShift アプリケーションをパッケージ化し、デプロイし、管理する方法です。これは、以下も提供します。
- インストールおよびアップグレードの再現性。
- すべてのシステムコンポーネントの定期的なヘルスチェック。
- OpenShift コンポーネントおよび独立ソフトウェアベンダー (ISV) コンテンツの OTA (Over-the-air) 更新。
- フィールドエンジニアの知識をカプセル化し、すべてのユーザーに展開する場所。
前提条件
- OpenShift 4 の実行中のインスタンスの管理者アカウント
3.1.1. OpenShift Web コンソールでのプロジェクトの作成
プロジェクトを使用すると、クラスターの異なるリソースを分離された単位で編成し、管理できます。まずプロジェクトを作成し、Red Hat CodeReady Workspaces Operator をホストします。
手順
- OpenShift Web コンソールを開きます。左側のパネルで Home → Projects セクションに移動します。
- Create Project をクリックします。
プロジェクトの詳細を指定します。
-
Name:
openshift-workspaces
-
Display Name:
Red Hat CodeReady Workspaces
-
Description:
Red Hat CodeReady Workspaces
-
Name:
3.1.2. Red Hat CodeReady Workspaces Operator のインストール
Red Hat CodeReady Workspaces Operator は、PostgreSQL、RH-SSO、イメージレジストリー、CodeReady Workspaces サーバーなどの CodeReady Workspaces を実行するためのすべてのリソースを提供し、これらのすべてのサービスも設定します。
前提条件
- クラスターの Web コンソールへのアクセス。
手順
- Red Hat CodeReady Workspaces Operator をインストールするには、左側のパネルで Operators → OperatorHub セクションに移動します。
-
Filter by keyword フィールドに
Red Hat CodeReady Workspaces
を入力し、Red Hat CodeReady Workspaces タイルをクリックします。 - Red Hat CodeReady Workspaces のポップアップウィンドウで、Install ボタンをクリックします。
Install Operator 画面で、以下のオプションを指定します。
- Installation mode: A specific project on the cluster
-
Installed Namespace: *既存プロジェクトを選択 →
openshift-workspaces
検証手順
- Red Hat CodeReady Workspaces Operator が正しくインストールされたことを確認するには、左側のパネルで Operators → Installed Operators セクションに移動します。
- Installed Operators 画面で、Red Hat CodeReady Workspaces 名をクリックし、Details タブに移動します。
ページの下部にある ClusterServiceVersion Details セクションで、以下のメッセージを待機します。
-
Status:
Succeeded
-
Status Reason:
install strategy completed with no errors
-
Status:
-
Events タブに移動し、
install strategy completed with no errors
メッセージが表示されるまで待機します。
3.1.3. Red Hat CodeReady Workspaces Operator のインスタンスの作成
以下の手順に従って、デフォルト設定で Red Hat CodeReady Workspaces をインストールします。設定を変更する場合は、2章CodeReady Workspaces インストールの設定 を参照してください。
手順
- Red Hat CodeReady Workspaces Operator のインスタンスを作成するには、左側のパネルで Operators → Installed Operators セクションに移動します。
- Installed Operators 画面で、Red Hat CodeReady Workspaces 名をクリックします。
- Operator Details 画面の Provided APIs セクション内の Details タブで Create Instance リンクをクリックします。
-
Create CheCluster ページには、作成する CodeReady Workspaces インスタンス全体の設定が含まれます。これは、
CheCluster
カスタムリソースです。デフォルト値を維持します。 - codeready-workspaces クラスターを作成するには、ウィンドウの左下にある Create ボタンをクリックします。
- Operator Details 画面の、Red Hat CodeReady Workspaces Cluster タブで、codeready-workspaces リンクをクリックします。
codeready-workspaces インスタンスに移動するには、Red Hat CodeReady Workspaces URL の下にあるリンクをクリックします。
注記インストールには 5 分以上かかる場合があります。Red Hat CodeReady Workspaces インストールが完了すると、URL が表示されます。
検証手順
- Red Hat CodeReady Workspaces インスタンスが正しくインストールされたことを確認するには、CodeReady Workspaces Cluster タブに移動します。CheClusters 画面には、Red Hat CodeReady Workspaces インスタンスの一覧とそのステータスが表示されます。
-
テーブルの codeready-workspaces
CheCluster
をクリックし、Details タブに移動します。 以下のフィールドの内容を参照してください。
-
Message: このフィールドにはエラーメッセージが含まれます (ある場合)。予想される内容は
None
です。 - Red Hat CodeReady Workspaces URL: デプロイメントが成功した場合に、Red Hat CodeReady Workspaces インスタンスの URL を表示します。
-
Message: このフィールドにはエラーメッセージが含まれます (ある場合)。予想される内容は
- Resources タブに移動します。画面には、CodeReady Workspaces デプロイメントに割り当てられたリソースの一覧が表示されます。
- リソースの状態の詳細を確認するには、その名前をクリックして、利用可能なタブの内容を検査します。
3.2. CLI を使用した CodeReady Workspaces の OpenShift 4 へのインストール
本セクションでは、crwctl
CLI 管理ツールを使用して、OpenShift 4 に CodeReady Workspaces をインストールする方法を説明します。
前提条件
- OpenShift クラスターと管理者アカウント。
-
oc
を利用できます。「Getting started with the OpenShift CLI」を参照してください。oc
バージョンは OpenShift クラスターのバージョンと一致する必要があります。 - OpenShift にログインしている。「Logging in to the CLI」を参照してください。
-
crwctl
が利用できる。「crwctl CLI 管理ツールのインストール」 を参照してください。
手順
server:deploy
コマンドを実行して CodeReady Workspaces インスタンスを作成します。$ crwctl server:deploy -n openshift-workspaces
検証手順
server:deploy
コマンドの出力は以下で終わります。Command server:deploy has completed successfully.
-
CodeReady Workspaces クラスターインスタンス:
\https://codeready-<openshift_deployment_name>.<domain_name>
に移動します。
3.3. CodeReady Workspaces の OpenShift Container Platform 3.11 へのインストール
3.3.1. crwctl CLI 管理ツールのインストール
本セクションでは、CodeReady Workspaces CLI 管理ツールを使用して crwctl をインストールする方法を説明します。
手順
- https://developers.redhat.com/products/codeready-workspaces/download に移動します。
- バージョン 2.8 の CodeReady Workspaces CLI 管理ツールアーカイブをダウンロードします。
-
${HOME}/crwctl
または/opt/crwctl
などのフォルダーにアーカイブを展開します。 -
展開したフォルダーから
crwctl
の実行可能ファイルを実行します。この例では${HOME}/crwctl/bin/crwctl version
です。 -
オプションで、
bin
フォルダーを$PATH
(例:PATH=${PATH}:${HOME}/crwctl/bin
)に追加し、完全パスの指定なしでcrwctl
の実行を有効にします。
検証手順
crwctl version
を実行すると、ツールの現在のバージョンが表示されます。
3.3.2. Operator を使用した CodeReady Workspaces の OpenShift 3 へのインストール
本セクションでは、crwctl
CLI 管理ツールを使用して、OpenShift 3 に CodeReady Workspaces をインストールする方法を説明します。このインストールの方法では Operator を使用し、TLS (HTTPS) を有効にします。
直前の CodeReady Workspaces インストールから更新し、同じ OpenShift Container Platform 3.11 クラスターで複数のインスタンスを有効にする方法は、インストール手順で説明されます。
Operator は、OpenShift アプリケーションをパッケージ化し、デプロイし、管理する方法です。これは、以下も提供します。
- インストールおよびアップグレードの再現性。
- すべてのシステムコンポーネントの定期的なヘルスチェック。
- OpenShift コンポーネントおよび独立ソフトウェアベンダー (ISV) コンテンツの OTA (Over-the-air) 更新。
- フィールドエンジニアの知識をカプセル化し、すべてのユーザーに展開する場所。
この方法は、OpenShift Container Platform および OpenShift Dedicated バージョン 3.11 でのみサポートされますが、OpenShift Container Platform および OpenShift Dedicated の新しいバージョンでも機能し、OperatorHub を使用したインストール方法が利用できない場合にバックアップのインストール方法として機能します。
前提条件
- OpenShift 3.11 の実行中のインスタンスでの管理者権限
-
oc
OpenShift 3.11 CLI 管理ツールのインストール。「Installing the OpenShift 3.11 CLI」を参照してください。 -
crwctl
管理ツールのインストール。「crwctl CLI 管理ツールのインストール」 を参照してください。 -
主な crwctl コマンドラインパラメーターが設定できない設定を適用するには、Operator で使用される
CheCluster
カスタムリソースのデフォルト値を上書きする設定ファイルoperator-cr-patch.yaml
を準備します。2章CodeReady Workspaces インストールの設定 を参照してください。 - <namespace> はターゲットインストールのプロジェクトを表します。
手順
OpenShift にログインします。「Basic Setup and Login」を参照してください。
$ oc login
以下のコマンドを実行して、
oc
OpenShift CLI 管理ツールのバージョンが 3.11 であることを確認します。$ oc version oc v3.11.0+0cbc58b
以下のコマンドを実行して、CodeReady Workspaces インスタンスを作成します。
openshift-workspaces プロジェクトで以下を実行します。
$ crwctl server:deploy -n openshift-workspaces -p openshift
openshift-workspaces というデフォルトプロジェクトで以下を実行します。
$ crwctl server:deploy -p openshift
検証手順
上記のコマンドの出力は以下で終わります。
Command server:deploy has completed successfully.
-
CodeReady Workspaces クラスターインスタンス:
\https://codeready-<openshift_deployment_name>.<domain_name>
に移動します。
3.4. 制限された環境での CodeReady Workspaces のインストール
デフォルトでは、Red Hat CodeReady Workspaces は、パブリックレジストリーで利用可能なコンテナーイメージを主として、各種の外部リソースを使用します。
これらの外部リソースが利用できない環境に CodeReady Workspaces をデプロイするには (例: 公開インターネットに公開されていないクラスターなど)、以下を実行します。
- OpenShift クラスターによって使用されるイメージレジストリーを特定し、これにプッシュできることを確認します。
- CodeReady Workspaces の実行に必要なすべてのイメージをこのレジストリーにプッシュします。
- レジストリーにプッシュされたイメージを使用するように CodeReady Workspaces を設定します。
- CodeReady Workspaces インストールに進みます。
制限された環境で CodeReady Workspaces をインストールする手順は、使用するインストール方法によって異なります。
制限された環境でのネットワーク接続に関する注
ネットワークが制限された環境は、クラウドプロバイダーのプライベートサブネットから、公開インターネットから切断された会社が所有する別個のネットワークに制限されます。ネットワーク設定に関係なく、CodeReady Workspaces は、CodeReady Workspaces コンポーネント (codeready-workspaces-server、アイデンティティープロバイダー、devfile、およびプラグインレジストリー) 用に作成されたルートが OpenShift クラスター内からアクセスできる場合 に機能します。
環境のネットワークトポロジーを考慮して、これを実行する最も良い方法を判断します。たとえば、会社または組織が所有するネットワークでは、ネットワーク管理者は、クラスターからのトラフィックがルートホスト名にルーティングできるようにする必要があります。たとえば、AWS で、トラフィックがノードを出て、外部に表示されるロードバランサーに到達できるようにプロキシー設定を作成します。
ネットワークが制限された環境にプロキシーが必要な場合は、「プロキシーの後ろでインストールするための CodeReady Workspaces カスタムリソースの準備」 に記載の手順に従います。
3.4.1. OperatorHub を使用した制限された環境での CodeReady Workspaces のインストール
前提条件
- 実行中の OpenShift クラスター。OpenShift クラスターをネットワークが制限された環境にインストールする方法については、OpenShift Container Platform 4.3 ドキュメントを参照してください。
- ネットワークが制限された環境でインストールされた OpenShift の非接続クラスターに対して使用されるミラーレジストリーへのアクセス。ネットワークが制限された環境でのインストール用のミラーレジストリーの作成についての関連する OpenShift Container Platform 4.3 ドキュメントを参照してください。
ネットワークが制限された環境で実行される非接続 OpenShift 4 クラスターでは、Operator が ネットワークが制限された環境についての Operator の有効化について定義された追加要件を満たす場合にのみ、Operator を OperatorHub からインストールできます。
CodeReady Workspaces Operator はこれらの要件を満たしているので、ネットワークが制限された環境での OLM に関する公式ドキュメントに記載の内容と互換性があります。
手順
OperatorHub から CodeReady Workspaces をインストールするには、以下を実行します。
-
redhat-operators
カタログイメージをビルドします。「Building an Operator catalog image」を参照してください。 - OperatorHub を、Operator のインストールにこのカタログイメージを使用するように設定します。「Configuring OperatorHub for restricted networks」を参照してください。
- 「OperatorHub を使用した OpenShift 4 への CodeReady Workspaces のインストール」 の説明に従って、通常通りに CodeReady Workspaces のインストールに進みます。
3.4.2. CLI 管理ツールを使用した制限された環境での CodeReady Workspaces のインストール
OperatorHub を使用したインストールが利用できない場合、CodeReady Workspaces CLI 管理ツールを使用して制限されたネットワークに CodeReady Workspaces をインストールします。この方法は OpenShift Container Platform 3.11 でサポートされます。
前提条件
- 実行中の OpenShift クラスター。OpenShift クラスターのインストール方法に関する詳細は、OpenShift Container Platform 3.11 のドキュメントを参照してください。
3.4.2.1. プライベートレジストリーの準備
前提条件
-
oc
ツールが利用できる。 -
skopeo
ツール(バージョン 0.1.40 以降)が利用できる。 -
podman
ツールが利用できる。 - OpenShift クラスターからアクセスできるイメージ、および V2 イメージマニフェスト (スキーマバージョン 2) フォーマットのサポート。インターネットへのアクセスが一時的に可能な場所から、これにプッシュできることを確認します。
表3.1 サンプルで使用されるプレースホルダー
| レジストリー、組織、およびダイジェストなどのソースイメージの詳細な組み合わせ (coordinate)。 |
| ターゲットコンテナーイメージレジストリーのホスト名およびポート。 |
| ターゲットのコンテナーイメージレジストリー内の組織 |
| ターゲットのコンテナーイメージレジストリーのイメージ名とダイジェスト。 |
| ターゲットのコンテナーイメージレジストリーのユーザー名。 |
| ターゲットのコンテナーイメージレジストリーのユーザーパスワード。 |
手順
内部イメージレジストリーにログインします。
$ podman login --username <user> --password <password> <target-registry>
注記内部レジストリーへのプッシュを試行する際に
x509: certificate signed by unknown authority
などのエラーが発生した場合には、以下のいずれかの回避策を試してください。-
OpenShift クラスターの証明書を
/etc/containers/certs.d/<target-registry>
に追加します。 -
/etc/containers/registries.conf
にある Podman 設定ファイルに以下の行を追加して、レジストリーを非セキュアなレジストリーとして追加する。
[registries.insecure] registries = ['<target-registry>']
-
OpenShift クラスターの証明書を
ダイジェストを変更せずにイメージをコピーします。以下の表のすべてのイメージに対して、この手順を繰り返します。
$ skopeo copy --all docker://<source-image> docker://<target-registry>/<target-organization>/<target-image>
注記表3.2 名前に含まれるプレフィックスまたはキーワードからの container-images の使用について
使用 プレフィックスまたはキーワード Essential
stacks-
,plugin-
または-openj9-
ではないWorkspaces
stacks-
,plugin-
IBM Z および IBM Power Systems
-openj9-
表3.3 プライベートレジストリーでコピーするイメージ
<source-image> <target-image> registry.redhat.io/codeready-workspaces/configbump-rhel8@sha256:db34b20374d99c2055612663a669a06f6dd0fc1fc19603761e993fd0870eddfe
configbump-rhel8@sha256:db34b20374d99c2055612663a669a06f6dd0fc1fc19603761e993fd0870eddfe
registry.redhat.io/codeready-workspaces/crw-2-rhel8-operator@sha256:a24dc83d8cdd8af715f0c4f235dcba0736bf395b7029ceaed0b8a683da5f74e0
crw-2-rhel8-operator@sha256:a24dc83d8cdd8af715f0c4f235dcba0736bf395b7029ceaed0b8a683da5f74e0
registry.redhat.io/codeready-workspaces/crw-2-rhel8-operator@sha256:a24dc83d8cdd8af715f0c4f235dcba0736bf395b7029ceaed0b8a683da5f74e0
crw-2-rhel8-operator@sha256:a24dc83d8cdd8af715f0c4f235dcba0736bf395b7029ceaed0b8a683da5f74e0
registry.redhat.io/codeready-workspaces/devfileregistry-rhel8@sha256:e3c360c031d8e68b62d1a28a4d736f41c5bfbc17c23999b9e1f1e5820858bf1d
devfileregistry-rhel8@sha256:e3c360c031d8e68b62d1a28a4d736f41c5bfbc17c23999b9e1f1e5820858bf1d
registry.redhat.io/codeready-workspaces/jwtproxy-rhel8@sha256:3f40bb8a2022545ac06a0b41cdb0239fdacfc34b37faffb21348a2041e96d0f2
jwtproxy-rhel8@sha256:3f40bb8a2022545ac06a0b41cdb0239fdacfc34b37faffb21348a2041e96d0f2
registry.redhat.io/codeready-workspaces/machineexec-rhel8@sha256:19a8daf7f9adde981dcd588b0526fa7682111097849f60a9b0e81137bdde8f6c
machineexec-rhel8@sha256:19a8daf7f9adde981dcd588b0526fa7682111097849f60a9b0e81137bdde8f6c
registry.redhat.io/codeready-workspaces/plugin-java11-openj9-rhel8@sha256:ee7c41053b4c8615886745566fc306dbf5bd1b1d367e525266477ae17a26673e
plugin-java11-openj9-rhel8@sha256:ee7c41053b4c8615886745566fc306dbf5bd1b1d367e525266477ae17a26673e
registry.redhat.io/codeready-workspaces/plugin-java11-openj9-rhel8@sha256:ee7c41053b4c8615886745566fc306dbf5bd1b1d367e525266477ae17a26673e
plugin-java11-openj9-rhel8@sha256:ee7c41053b4c8615886745566fc306dbf5bd1b1d367e525266477ae17a26673e
registry.redhat.io/codeready-workspaces/plugin-java11-openj9-rhel8@sha256:ee7c41053b4c8615886745566fc306dbf5bd1b1d367e525266477ae17a26673e
plugin-java11-openj9-rhel8@sha256:ee7c41053b4c8615886745566fc306dbf5bd1b1d367e525266477ae17a26673e
registry.redhat.io/codeready-workspaces/plugin-java11-rhel8@sha256:d93195134cef6351b1f9e3165fecc09f464dc99ab33d11b68fadd613d04d1636
plugin-java11-rhel8@sha256:d93195134cef6351b1f9e3165fecc09f464dc99ab33d11b68fadd613d04d1636
registry.redhat.io/codeready-workspaces/plugin-java8-openj9-rhel8@sha256:8d8948134405e45bdd895932afa85b6cf0fbfe4e9bb58ae9753d233ddf74672b
plugin-java8-openj9-rhel8@sha256:8d8948134405e45bdd895932afa85b6cf0fbfe4e9bb58ae9753d233ddf74672b
registry.redhat.io/codeready-workspaces/plugin-java8-openj9-rhel8@sha256:8d8948134405e45bdd895932afa85b6cf0fbfe4e9bb58ae9753d233ddf74672b
plugin-java8-openj9-rhel8@sha256:8d8948134405e45bdd895932afa85b6cf0fbfe4e9bb58ae9753d233ddf74672b
registry.redhat.io/codeready-workspaces/plugin-java8-openj9-rhel8@sha256:8d8948134405e45bdd895932afa85b6cf0fbfe4e9bb58ae9753d233ddf74672b
plugin-java8-openj9-rhel8@sha256:8d8948134405e45bdd895932afa85b6cf0fbfe4e9bb58ae9753d233ddf74672b
registry.redhat.io/codeready-workspaces/plugin-java8-rhel8@sha256:ecaa9ddef5ca8db9552f1b5e66f7aacb19d72e488d718d8135b1e1d9f66a1a7a
plugin-java8-rhel8@sha256:ecaa9ddef5ca8db9552f1b5e66f7aacb19d72e488d718d8135b1e1d9f66a1a7a
registry.redhat.io/codeready-workspaces/plugin-kubernetes-rhel8@sha256:cf1d0e24f8bae0f87cae0b1577dfd25e124437d78031d7076fabebb2dcf48d7f
plugin-kubernetes-rhel8@sha256:cf1d0e24f8bae0f87cae0b1577dfd25e124437d78031d7076fabebb2dcf48d7f
registry.redhat.io/codeready-workspaces/plugin-openshift-rhel8@sha256:13ce6d8fdeeea0cc5a220ebe8abd2811c31bb2a424736759be9a6df15c8f77fd
plugin-openshift-rhel8@sha256:13ce6d8fdeeea0cc5a220ebe8abd2811c31bb2a424736759be9a6df15c8f77fd
registry.redhat.io/codeready-workspaces/pluginbroker-artifacts-rhel8@sha256:cda306cb7e5c42faa6ab43218d39984d4955134b3ca9654968c28b05e0796c3a
pluginbroker-artifacts-rhel8@sha256:cda306cb7e5c42faa6ab43218d39984d4955134b3ca9654968c28b05e0796c3a
registry.redhat.io/codeready-workspaces/pluginbroker-metadata-rhel8@sha256:0143a80b869620af08a0d60165dc9d13357a79e7243502832326cf053c17ee38
pluginbroker-metadata-rhel8@sha256:0143a80b869620af08a0d60165dc9d13357a79e7243502832326cf053c17ee38
registry.redhat.io/codeready-workspaces/pluginregistry-rhel8@sha256:3f5163a2303de7f538eca2cc560403f38b920af1169821dfa06dbef695fb10c6
pluginregistry-rhel8@sha256:3f5163a2303de7f538eca2cc560403f38b920af1169821dfa06dbef695fb10c6
registry.redhat.io/codeready-workspaces/server-rhel8@sha256:6635e8c160c8c73c00c9b05eccab08a4ff23d344f102ef0097a3798bf108217a
server-rhel8@sha256:6635e8c160c8c73c00c9b05eccab08a4ff23d344f102ef0097a3798bf108217a
registry.redhat.io/codeready-workspaces/stacks-cpp-rhel8@sha256:06cd3600c3b6c3dca0451b10b46961fd0db4140c7dddc4f9637984022f5cfc09
stacks-cpp-rhel8@sha256:06cd3600c3b6c3dca0451b10b46961fd0db4140c7dddc4f9637984022f5cfc09
registry.redhat.io/codeready-workspaces/stacks-dotnet-rhel8@sha256:ea77974b206c7d7abcad5cd32149f6bb669d3cf867135553af4d7dddd24ba9cf
stacks-dotnet-rhel8@sha256:ea77974b206c7d7abcad5cd32149f6bb669d3cf867135553af4d7dddd24ba9cf
registry.redhat.io/codeready-workspaces/stacks-golang-rhel8@sha256:e01d32e58a55a552f0d35b9a6210b7a2cc8ed444f8ae54a24113dcc85f4d80db
stacks-golang-rhel8@sha256:e01d32e58a55a552f0d35b9a6210b7a2cc8ed444f8ae54a24113dcc85f4d80db
registry.redhat.io/codeready-workspaces/stacks-php-rhel8@sha256:95c324ed660924bf76e10b461d75aa5be2a323f26e5033239f7cbfe1ec10b26e
stacks-php-rhel8@sha256:95c324ed660924bf76e10b461d75aa5be2a323f26e5033239f7cbfe1ec10b26e
registry.redhat.io/codeready-workspaces/theia-endpoint-rhel8@sha256:60c84fca55a997a6aab4ca07b8ff7d859948c1f525adeba2ae624c84fe059a56
theia-endpoint-rhel8@sha256:60c84fca55a997a6aab4ca07b8ff7d859948c1f525adeba2ae624c84fe059a56
registry.redhat.io/codeready-workspaces/theia-rhel8@sha256:de36fdf140ba6367e6edf577d6dbaffa270e5e5ecf0890e498f5907f8287858f
theia-rhel8@sha256:de36fdf140ba6367e6edf577d6dbaffa270e5e5ecf0890e498f5907f8287858f
registry.redhat.io/codeready-workspaces/traefik-rhel8@sha256:0698a776c6ae2f08238cf011d69ac2c67f934b1e25ec38701a9e360430fd10f7
traefik-rhel8@sha256:0698a776c6ae2f08238cf011d69ac2c67f934b1e25ec38701a9e360430fd10f7
registry.redhat.io/jboss-eap-7/eap-xp2-openj9-11-openshift-rhel8@sha256:95d2ce73a0759de5befdbec115514a555752e2f20070fbfe356801da6d0a2bd6
eap-xp2-openj9-11-openshift-rhel8@sha256:95d2ce73a0759de5befdbec115514a555752e2f20070fbfe356801da6d0a2bd6
registry.redhat.io/jboss-eap-7/eap-xp2-openj9-11-openshift-rhel8@sha256:95d2ce73a0759de5befdbec115514a555752e2f20070fbfe356801da6d0a2bd6
eap-xp2-openj9-11-openshift-rhel8@sha256:95d2ce73a0759de5befdbec115514a555752e2f20070fbfe356801da6d0a2bd6
registry.redhat.io/jboss-eap-7/eap-xp2-openj9-11-openshift-rhel8@sha256:95d2ce73a0759de5befdbec115514a555752e2f20070fbfe356801da6d0a2bd6
eap-xp2-openj9-11-openshift-rhel8@sha256:95d2ce73a0759de5befdbec115514a555752e2f20070fbfe356801da6d0a2bd6
registry.redhat.io/jboss-eap-7/eap-xp2-openjdk11-openshift-rhel8@sha256:647d092383a760edc083eafb2d7bc3208d6409097281bedbd5eaccde360e7e39
eap-xp2-openjdk11-openshift-rhel8@sha256:647d092383a760edc083eafb2d7bc3208d6409097281bedbd5eaccde360e7e39
registry.redhat.io/jboss-eap-7/eap73-openjdk8-openshift-rhel7@sha256:d16cfe30eaf20a157cd5d5980a6c34f3fcbcfd2fd225e670a0138d81007dd919
eap73-openjdk8-openshift-rhel7@sha256:d16cfe30eaf20a157cd5d5980a6c34f3fcbcfd2fd225e670a0138d81007dd919
registry.redhat.io/rh-sso-7/sso74-openj9-openshift-rhel8@sha256:ed11770a85ca95fc9cbb2cade539a67ff0e127cff73a89a017415800e032bd5b
sso74-openj9-openshift-rhel8@sha256:ed11770a85ca95fc9cbb2cade539a67ff0e127cff73a89a017415800e032bd5b
registry.redhat.io/rh-sso-7/sso74-openj9-openshift-rhel8@sha256:ed11770a85ca95fc9cbb2cade539a67ff0e127cff73a89a017415800e032bd5b
sso74-openj9-openshift-rhel8@sha256:ed11770a85ca95fc9cbb2cade539a67ff0e127cff73a89a017415800e032bd5b
registry.redhat.io/rh-sso-7/sso74-openshift-rhel8@sha256:3154fd4f6ce080260de9d2b4c02930b67b57f1181f4e660f5ddfc9f6050420b1
sso74-openshift-rhel8@sha256:3154fd4f6ce080260de9d2b4c02930b67b57f1181f4e660f5ddfc9f6050420b1
registry.redhat.io/rhel8/postgresql-96@sha256:32d73d737acec3daabc3f5c8236588454c8f57f7a2656ac7a50cf3a04f520b9b
postgresql-96@sha256:32d73d737acec3daabc3f5c8236588454c8f57f7a2656ac7a50cf3a04f520b9b
registry.redhat.io/rhscl/mongodb-36-rhel7@sha256:9f799d356d7d2e442bde9d401b720600fd9059a3d8eefea6f3b2ffa721c0dc73
mongodb-36-rhel7@sha256:9f799d356d7d2e442bde9d401b720600fd9059a3d8eefea6f3b2ffa721c0dc73
registry.redhat.io/ubi8/ubi-minimal@sha256:2f6b88c037c0503da7704bccd3fc73cb76324101af39ad28f16460e7bce98324
ubi8ubi-minimal@sha256:2f6b88c037c0503da7704bccd3fc73cb76324101af39ad28f16460e7bce98324
検証手順
イメージに同じダイジェストがあることを確認します。
$ skopeo inspect docker://<source-image> $ skopeo inspect docker://<target-registry>/<target-organization>/<target-image>
関連情報
3.4.2.2. 制限された環境用の CodeReady Workspaces カスタムリソースの準備
crwctl
または OperatorHub を使用して制限された環境で CodeReady Workspaces をインストールする場合は、CheCluster
カスタムリソースに追加の情報を提供します。
3.4.2.2.1. デフォルトの CheCluster
カスタムリソースのダウンロード
手順
- デフォルトのカスタムリソース YAML ファイルをダウンロードし ます。
-
ダウンロードしたカスタムリソース
org_v1_che_cr.yaml
に名前を付けます。追加の変更および使用に備えてこれを保持します。
3.4.2.2.2. 制限された環境での CheCluster カスタムリソース
のカスタマイズ
前提条件
- CodeReady Workspaces がデプロイされる OpenShift クラスターに表示されるイメージレジストリーの利用可能な必要なすべてのイメージ。これについては、「プライベートレジストリーの準備」で説明されています。ここでは、以下の例で使用されているプレースホルダーも定義されています。
手順
CodeReady Workspaces Operator によって管理される
CheCluster
カスタムリソースで、制限された環境で CodeReady Workspaces のインスタンスのデプロイを容易にするために使用されるフィールドを追加します。# [...] spec: server: airGapContainerRegistryHostname: '<target-registry>' airGapContainerRegistryOrganization: '<target-organization>' # [...]
3.4.2.3. CodeReady Workspaces CLI 管理ツールを使用した制限された環境での CodeReady Workspaces インストールの開始
本セクションでは、CodeReady Workspaces CLI 管理ツールを使用して、制限された環境で CodeReady Workspaces インストールを開始する方法を説明します。
前提条件
- CodeReady Workspaces CLI 管理ツールがインストールされている。「crwctl CLI 管理ツールのインストール」 を参照してください。
-
oc
ツールがインストールされている。 - OpenShift インスタンスへのアクセス。
手順
OpenShift Container Platform にログインします。
$ oc login ${OPENSHIFT_API_URL} --username ${OPENSHIFT_USERNAME} \ --password ${OPENSHIFT_PASSWORD}
カスタマイズされたカスタムリソースで CodeReady Workspaces をインストールし、制限された環境に関連するフィールドを追加します。
$ crwctl server:start \ --che-operator-image=<target-registry>/<target-organization>/crw-2-rhel8-operator:2.8 \ --che-operator-cr-yaml=org_v1_che_cr.yaml
低速なシステムまたはインターネット接続の場合は、--k8spodwaittimeout=1800000
フラグオプションを crwctl server:start
コマンドに追加し、Pod のタイムアウト期間を 1800000 ms 以上に拡張します。
3.4.3. プロキシーの後ろでインストールするための CodeReady Workspaces カスタムリソースの準備
この手順では、CodeReady Workspaces をプロキシーの後ろでインストールする際に、CheCluster
カスタムリソースに必要な追加情報を提供する方法を説明します。
手順
CodeReady Workspaces Operator によって管理される
CheCluster
カスタムリソースで、制限された環境で CodeReady Workspaces のインスタンスのデプロイを容易にするために使用されるフィールドを追加します。# [...] spec: server: proxyURL: '<URL of the proxy, with the http protocol, and without the port>' proxyPort: '<Port of proxy, typically 3128>' # [...]
これらの基本設定のほかに、プロキシー設定では通常、プロキシーを使用せずに CodeReady Workspaces からアクセスされるホストの一覧に外部 OpenShift クラスター API URL のホストを追加する必要があります。
このクラスター API ホストを取得するには、OpenShift クラスターに対して以下のコマンドを実行します。
$ oc whoami --show-server | sed 's#https://##' | sed 's#:.*$##'
CheCluster
カスタムリソースの対応するフィールドはnonProxyHosts
です。ホストがこのフィールドにすでに存在する場合は、|
を区切り文字として使用し、クラスター API ホストを追加します。# [...] spec: server: nonProxyHosts: 'anotherExistingHost|<cluster api host>' # [...]
第4章 CodeReady Workspaces の設定
本章では、いくつかのーザーストーリーを例として使用し、Red Hat CodeReady Workspaces の設定方法とオプションについて説明します。
- 「CodeReady Workspaces サーバーコンポーネントの詳細な設定オプション」 では、前述の方法を適用できない場合に使用する詳細な設定方法を説明します。
次のセクションでは、特定のユーザーストーリーを説明します。
- 「プロジェクトストラテジーの設定」
- 「一度に複数のワークスペースの実行」
- 「ワークスペース nodeSelector の設定」
- 「Red Hat CodeReady Workspaces サーバーのホスト名の設定」
- 「OpenShift Route のラベルの設定」
- 「OpenShift Route のラベルおよびドメインがルーターのシャード化と連携する設定」
- 「自己署名証明書を使用した Git リポジトリーをサポートする CodeReady Workspaces のデプロイ」
- 「ストレージクラスを使用した CodeReady Workspaces のインストール」
- 「ストレージタイプの設定」
- 「信頼できない TLS 証明書の CodeReady Workspaces へのインポート」
- 「コンポーネント間の通信での外部 DNS 名と内部 DNS 名間の切り替え」
- 「Red Hat CodeReady Workspaces ログインページの RH-SSO codeready-workspaces-username-readonly テーマの設定」
- 「シークレットをファイルまたは環境変数として Red Hat CodeReady Workspaces コンテナーにマウントする」
- 「Dev Workspace エンジンの有効化」
4.1. CodeReady Workspaces サーバーコンポーネントの詳細な設定オプション
以下のセクションでは、CodeReady Workspaces サーバーコンポーネントの詳細なデプロイメントおよび設定方法を説明します。
4.1.1. Operator を使用した CodeReady Workspaces サーバーの詳細設定について
以下のセクションでは、Operator を使用したデプロイメントの CodeReady Workspaces サーバーコンポーネントの詳細な設定方法について説明します。
詳細設定は以下を実行するために必要です。
-
標準の
CheCluster
カスタムリソースフィールドから Operator によって自動的に生成されない環境変数を追加します。 -
標準の
CheCluster
カスタムリソースフィールドから Operator によって自動的に生成されるプロパティーを上書きします。
CheCluster
カスタムリソースの server
設定の一部である customCheProperties
フィールドには、CodeReady Workspaces サーバーコンポーネントに適用する追加の環境変数のマップが含まれます。
例4.1 ワークスペースのデフォルトのメモリー制限の上書き
-
CHE_WORKSPACE_DEFAULT__MEMORY__LIMIT__MB
プロパティーをcustomCheProperties
に追加します。
apiVersion: org.eclipse.che/v1 kind: CheCluster # [...] spec: server: # [...] customCheProperties: CHE_WORKSPACE_DEFAULT__MEMORY__LIMIT__MB: "2048" # [...]
以前のバージョンの CodeReady Workspaces Operator には、このロールを実行するために custom
という名前の configMap が含まれていました。CodeReady Workspaces Operator が custom
という名前の configMap
を見つけると、これに含まれるデータを customCheProperties
フィールドに追加し、CodeReady Workspaces を再デプロイし、custom
configMap
を削除します。
関連情報
-
CheCluster
カスタムリソースで利用可能なすべてのパラメーターの一覧については、2章CodeReady Workspaces インストールの設定 を参照してください。 -
customCheProperties
の設定に使用できるすべてのパラメーターの一覧については、「CodeReady Workspaces サーバーコンポーネントのシステムプロパティー参照」 を参照してください。
4.1.2. CodeReady Workspaces サーバーコンポーネントのシステムプロパティー参照
以下のドキュメントでは、CodeReady Workspaces サーバーコンポーネントのすべての使用可能な設定プロパティーについて説明します。
4.1.2.1. Che サーバー
表4.1 Che サーバー
環境変数名 | デフォルト値 | 詳細 |
---|---|---|
|
| CodeReady Workspaces が内部データオブジェクトを保存するフォルダー。 |
|
| API サービス。ブラウザーは、この URL を使用して CodeReady Workspaces サーバーへの REST 通信を開始します。 |
|
| API サービスの内部ネットワーク URL。バックエンドサービスは、この URL を使用した CodeReady Workspaces サーバーへの REST 通信を開始する必要があります。 |
|
| CodeReady Workspaces websocket の主なエンドポイント。主な websocket の対話とメッセージング用の基本的な通信エンドポイントを提供します。 |
|
| プロジェクトは、CodeReady Workspaces サーバーから各ワークスペースを実行するマシンに同期されます。これは、プロジェクトが配置されているマシンのディレクトリーです。 |
|
|
devfile 要求の OpenShift タイプのコンポーネントがプロジェクト PVC 作成を要求する場合に使用されます ('unique' および 'per workspace' PVC ストラテジーの場合に適用されます。'common' PVC ストラテジーの場合は、これは |
|
| すべてのワークスペースログが置かれるマシン内のディレクトリーを定義します。環境変数などの値として、この値をマシンに指定します。これは、エージェントの開発者がこのディレクトリーを使用してエージェントのログをバックアップできるようにするためのものです。 |
| 環境変数 HTTP_PROXY は、ワークスペースを起動するコンテナーで指定された値に設定します。 | |
| 環境変数 HTTPS_PROXY は、ワークスペースを起動するコンテナーで指定された値に設定します。 | |
| 環境変数 NO_PROXY は、ワークスペースを起動するコンテナーで指定された値に設定します。 | |
|
|
デフォルトでは、ユーザーがこの URL を使用してワークスペースにアクセスすると、ワークスペースは自動的に起動します (現時点で停止している場合)。この動作を無効にするには、このパラメーターを |
|
|
ワークスペーススレッドプールの設定。このプールは、非同期の実行が必要なワークスペース関連の操作 (例: 起動/停止) に使用されます。設定可能な値は |
|
|
プールタイプが |
|
|
プールタイプが |
|
| このプロパティーは、ワークスペースサーバーの liveness プローブに使用するスレッドの数を指定します。 |
|
| ワークスペース JVM の HTTP プロキシー設定。 |
|
| ワークスペースで実行されている JVM に追加される Java コマンドラインオプション。 |
|
| ワークスペースでエージェントを実行する JVM に追加される Maven コマンドラインオプション。 |
|
| 環境に RAM 設定のない各マシンの RAM 制限のデフォルト。0 以下の値値は、制限を無効にするものとして解釈されます。 |
|
| 環境内に明示的な RAM 設定のない各コンテナーの RAM 要求。この量はワークスペースコンテナーの作成時に割り当てられます。このプロパティーは、すべてのインフラストラクチャー実装でサポートされる訳ではありません。現時点で、これは OpenShift によってサポートされます。メモリー制限を超えるメモリー要求は無視され、制限サイズのみが使用されます。0 以下の値値は、制限を無効にするものとして解釈されます。 |
|
|
環境に CPU 設定のない各コンテナーの CPU 制限。浮動小数点のコア数 (例: |
|
| 環境内に CPU 設定のない各コンテナーの CPU 要求。CPU 制限を超える CPU 要求は無視され、制限の数値のみが使用されます。0 以下の値値は、制限を無効にするものとして解釈されます。 |
|
| CodeReady Workspaces プラグイン設定に RAM 設定のない各サイドカーの RAM 制限。0 以下の値値は、制限を無効にするものとして解釈されます。 |
|
| CodeReady Workspaces プラグイン設定に RAM 設定のない各サイドカーの RAM 要求。 |
|
|
CodeReady Workspaces プラグイン設定に CPU 設定のない各サイドカーの CPU 制限のデフォルト。浮動小数点のコア数 (例: |
|
|
CodeReady Workspaces プラグイン設定に CPU 設定のない各サイドカーの CPU 要求のデフォルト。浮動小数点のコア数 (例: |
|
|
サイドカーのイメージプルストラテジーを定義します。使用できる値は |
|
| 非アクティブなワークスペースの一時停止ジョブの実行期間。 |
|
| アクティビティーテーブルのクリーンアップ期間。アクティビティーテーブルには、サーバーが特定の時点でクラッシュするなどの予想されないエラーが生じる場合に、無効なデータまたは古いデータを含まれることがあります。デフォルトでは、クリーンアップジョブは 1 時間ごとに実行されます。 |
|
| サーバーの起動後から最初のアクティビティーのクリーンアップジョブを開始するまでの遅延。 |
|
| ws マスターが非アクティブのタイムアウトまでの期間利用できない場合の、大規模な一時停止を回避するために最初のワークスペースのアイドルチェックジョブが開始されるまでの遅延。 |
|
| 一時的なワークスペースのクリーンアップジョブの初回実行を遅らせる時間。 |
|
| 1 つの実行の終了と一時的なワークスペースクリーンアップジョブの次の実行の開始までの期間の遅延 |
|
| サーバーへの正常に順次実行される ping の数。この数を超えると、サーバーは利用可能な状態にあるものとして処理されます。注: このプロパティーはすべてのサーバー (ワークスペースのエージェント、ターミナル、exec など) に共通です。 |
|
| ワークスペースサーバーへの連続する ping の間隔 (ミリ秒単位)。 |
|
| liveness プローブを必要とするサーバー名の一覧 |
|
| ワークスペースの起動をデバッグする際に che-server で観察される単一コンテナーから収集されるログの制限サイズ。デフォルト値は 10MB=10485760 です。 |
|
| true の場合、OpenShift OAuth が有効な場合に、編集権限を持つ「stop-workspace」ロールが「che」 ServiceAccount に付与されます。この設定は、OpenShift OAuth が有効な場合にワークスペースのアイドリングに主に必要になります。 |
|
| DevWorkspaces を有効にして che をデプロイするかどうかを指定します。このプロパティーは、DevWorkspaces のサポートもインストールしている場合に CodeReady Workspaces Operator によって設定されます。このプロパティーを使用して、このファクトを CodeReady Workspaces ダッシュボードにアドバタイズします。このプロパティーの値を手動で変更することは推奨されません。 |
4.1.2.2. 認証パラメーター
表4.2 認証パラメーター
環境変数名 | デフォルト値 | 詳細 |
---|---|---|
|
| CodeReady Workspaces には単一のアイデンティティー実装があるため、これによるユーザーエクスペリエンスへの変更はありません。true の場合、API レベルでのユーザー作成を有効にします。 |
|
| 認証エラーページアドレス |
| 予約済みのユーザー名 | |
|
| GitHub OAuth クライアントの設定。GitHub OAuth を設定して、リモートリポジトリーへの認証を自動化できます。最初に、このアプリケーションを GitHub OAuth に登録する必要があります。GitHub OAuth クライアント ID。 |
|
| GitHub OAuth クライアントシークレット。 |
|
| GitHub OAuth 認証 URI。 |
|
| GitHub OAuth トークン URI。 |
|
| GitHub OAuth リダイレクト URI。複数の値をコンマで区切ります(例: URI,URI,URI)。 |
|
| OpenShift OAuth クライアントの設定。OpenShift OAuth トークンの取得に使用されます。OpenShift OAuth クライアント ID。 |
|
| OpenShift OAuth クライアントの設定。OpenShift OAuth トークンの取得に使用されます。OpenShift OAuth クライアント ID。OpenShift OAuth クライアントシークレット。 |
|
| Configurationof OpenShift OAuth クライアント。OpenShift OAuth トークンの取得に使用されます。OpenShift OAuth クライアント ID。OpenShift OAuth クライアントシークレット。OpenShift OAuth エンドポイント。 |
|
| ConfigurationofOpenShiftOAuth クライアント。OpenShift OAuth トークンの取得に使用されます。OpenShift OAuth クライアント ID。OpenShift OAuth クライアントシークレット。OpenShift OAuth エンドポイント。OpenShift OAuth 検証トークン URL。 |
|
| Bitbucket Server OAuth1 クライアントの設定。パーソナルアクセストークンの取得に使用されます。Bitbucket Server アプリケーションのコンシューマーキーが含まれるファイルの場所(ユーザー名と同等)。 |
|
| Bitbucket Server OAuth1 クライアントの設定パーソナルアクセストークンの取得に使用されます。Bitbucket Server アプリケーションのコンシューマーキーが含まれるファイルの場所(ユーザー名と同等)。Bitbucket Server アプリケーションの秘密鍵が含まれるファイルの場所 |
|
|
Bitbucket Server OAuth1 クライアントの設定パーソナルアクセストークンの取得に使用されます。Bitbucket Server アプリケーションのコンシューマーキーが含まれるファイルの場所(ユーザー名と同等)。Bitbucket Server アプリケーションの秘密鍵の Bitbucket Server URL が含まれるファイルの場所ファクトリーと正しく連携するには、同じ URL を |
4.1.2.3. 内部
表4.3 内部
環境変数名 | デフォルト値 | 詳細 |
---|---|---|
|
| CodeReady Workspaces 拡張には、時間ベースでスケジュールされる実行をスケジュールできます。これにより、繰り返されるスケジュールで起動する拡張に割り当てられるスレッドプールのサイズが設定されます。 |
|
| DB の初期化および移行設定。trueの場合には、baseline.version で設定Siたバージョンのスクリプトを無視します。 |
|
| これまでのバージョンを含むスクリプトは無視されます。ベースラインバージョンと同じバージョンのスクリプトも無視されることに注意してください。 |
| 移行スクリプトの接頭辞 | |
|
| 移行スクリプトの接尾辞。 |
|
| スクリプト名を他の部分からバージョンを区切るための区切り文字。 |
|
| 移行スクリプトを検索する場所。 |
4.1.2.4. OpenShift インフラパラメーター
表4.4 OpenShift インフラパラメーター
環境変数名 | デフォルト値 | 詳細 |
---|---|---|
| インフラが使用する OpenShift クライアントのマスター URL の設定。 | |
|
| 信頼された証明書を使用するために OpenShift クライアントを設定するブール値。 |
|
| サーバーが OpenShift インフラでグローバルに公開される方法を定義します。CodeReady Workspaces に実装されたストラテジーの一覧: default-host、multi-host、single-host |
|
| ワークスペースのプラグインとエディターを単一ホストモードで公開する方法を定義します。サポートされる公開: - 'native': OpenShift Ingress を使用してサーバーを公開します。Kubernetes でのみ機能します。'gateway': リバースプロキシーゲートウェイを使用してサーバーを公開します。 |
|
| single-host サーバーストラテジーで devfile エンドポイント、エンドユーザーのアプリケーションを公開する方法を定義します。これらは single-host ストラテジーに従い、サブパスで公開されるか、またはサブドメイン上で公開できます。'multi-host': サブドメインで公開される - 'single-host': サブパスで公開される |
|
| single-host ゲートウェイを設定する ConfigMap に設定されるラベルを定義します。 |
|
| |
|
非推奨: このプロパティーの値は変更しないでください。変更すると、既存のワークスペースでデータが失われます。これは新規インストールに設定しないでください。すべてのワークスペースが作成される OpenShift プロジェクトを定義します。これが設定されないと、すべてのワークスペースが新しい namespace に作成されます。ここで、namespace = ワークスペース ID になります。<username> および <userid> プレースホルダー (例: che-workspace-<username>) を使用できます。この場合、ユーザーごとに新規 namespace が作成されます。新規 namespace を作成するパーミッションを持つサービスアカウントを使用する必要があります。OpenShift インフラでは無視されます。代わりに | |
|
| CodeReady Workspaces サーバーがユーザーワークスペースの namespace/プロジェクトを作成できるかどうか、またはそれらはクラスター管理者によって手動で作成されるかどうかを示します。このプロパティーは OpenShift infra によっても使用されます。 |
|
| ユーザーが上書きしない場合に、ユーザーのワークスペースが作成されるデフォルトの OpenShift プロジェクトを定義します。<username>、<userid> および <workspaceid> プレースホルダー (例: che-workspace-<username>)を使用できます。この場合、新規 namespace が各ユーザー (またはワークスペース) について作成されます。OpenShift インフラによってプロジェクトの指定にも使用されます。 |
|
| che-server がワークスペース namespace にラベルを付けるかどうかを定義します。 |
|
|
CodeReady Workspaces に使用される namespace/プロジェクトの検索に使用するラベルの一覧。これらは |
|
|
CodeReady Workspaces ユーザーワークスペース用に用意された namespace/プロジェクトの検索に使用するアノテーションの一覧。 |
|
| ユーザーがデフォルトとは異なる OpenShift プロジェクト (OpenShift プロジェクト) を指定できるかどうかを定義します。OAuth が設定されていない場合に true に設定することは推奨されません。このプロパティーは OpenShift infra によっても使用されます。 |
|
|
すべてのワークスペース Pod にバインドされるように指定する必要のある Kubernetes サービスアカウント名を定義します。OpenShift インフラストラクチャーはサービスアカウントを作成しないため、これは存在するはずであることに注意してください。OpenShift インフラストラクチャーは、プロジェクトが事前に定義されているかどうかをチェックします( |
|
| ワークスペースのサービスアカウントで使用するオプションの追加クラスターロールを指定します。クラスターのロール名がすでに存在している必要があり、CodeReady Workspaces サービスアカウントはロールバインディングを作成して、これらのクラスターロールをワークスペースのサービスアカウントに関連付ける必要があることに注意してください。名前はコンマで区切られます。このプロパティーは 'che.infra.kubernetes.cluster_role_name' を非推奨にします。 |
|
| Kubernetes ワークスペースの開始時間を制限する時間枠を定義します。 |
|
| OpenShift Route が準備状態になる期間を制限するタイムアウトを分単位で定義します。 |
|
| ワークスペースの起動中に、プロパティーに定義されるリカバリー不可能なイベントが発生する場合、タイムアウトまで待機するのではなく、ワークスペースをすぐに終了します。これには 'Failed' の理由が含めることができないことに注意してください。これにより、リカバリー不可能なイベントがキャッチされる可能性があるためです。失敗したコンテナーの起動は、CodeReady Workspaces サーバーで明示的に処理されます。 |
|
| che ワークスペースに Persistent Volume Claim(永続ボリューム要求、PVC)を使用するかどうか (バックアッププロジェクト、ログなどをが必要かどうか) を定義します。またはこれを無効にします。 |
|
| ワークスペース用に PVC を選択する際に使用するストラテジーを定義します。サポートされるストラテジー: - 'common' 同じ Kubernetes namespace 内のすべてのワークスペースは同じ PVC を再利用します。PVC の名前は 'che.infra.kubernetes.pvc.name' で設定できます。既存の PVC が使用されるか、または新規 PVC が存在しない場合にはこれが作成されます。- 'unique' 各ワークスペースのボリュームに別個の PVC が使用されます。PVC の名前は '{che.infra.kubernetes.pvc.name} + '-' + {generated_8_chars}' として評価されます。既存の PVC が使用されるか、または新規 PVC が存在しない場合にはこれが作成されます。- 'per-workspace' 各ワークスペースの別個の PVC が使用されます。PVC の名前は '{che.infra.kubernetes.pvc.name} + '-' + {WORKSPACE_ID}' として評価されます。既存の PVC が使用されるか、または新規 PVC が存在しない場合にはこれが作成されます。 |
|
| ワークスペースを起動する前に、「common」ストラテジーの永続ボリュームでワークスペースのサブパスディレクトリーを作成するジョブを実行するかどうかを定義します。ワークスペースのサブパスのボリュームマウントは root 権限で作成され、ユーザーとして実行するワークスペースで変更できないため(CodeReady Workspace のワークスペースへのプロジェクトのインポートエラーが表示される)、一部の OpenShift のバージョンで必要です。デフォルトは「true」ですが、Openshift/Kubernetes のバージョンがユーザーパーミッションでサブディレクトリーを作成する場合は false に設定する必要があります。関連する問題: https://github.com/kubernetes/kubernetes/issues/41638 このプロパティーは、「common」 PVC ストラテジーが使用される場合にのみ有効であることに注意してください。 |
|
| che ワークスペースの PVC 名の設定を定義します。それぞれの PVC ストラテジーは、この値を異なる方法で指定します。che.infra.kubernetes.pvc.strategy プロパティーについてドキュメントを参照してください。 |
| ワークスペースの Persistent Volume Claim(永続ボリューム要求、PVC)のストレージクラスを定義します。空の文字列は「use default」を意味します。 | |
|
| che workspace の Persistent Volume Claim(永続ボリューム要求、PVC)のサイズを定義します。形式については以下を参照してください: https://docs.openshift.com/container-platform/4.4/storage/understanding-persistent-storage.html |
|
| OpenShift で永続ボリューム要求 (PVC)のメンテナンスジョブを実行する際に起動する Pod |
|
| Kubernetes/OpenShift クラスターのメンテナンスジョブに使用されるコンテナーのイメージプルポリシー |
|
| 永続ボリューム要求のメンテナンスジョブの Pod メモリー制限を定義します。 |
|
| Persistent Volume Claim(永続ボリューム要求、PVC)のアクセスモードを定義します。common PVC ストラテジーの変更の場合、アクセスモードの変更は、同時に実行されるワークスペースの数に影響を与えることに注意してください。実行されている che が RWX アクセスモードので PV を使用している OpenShift フレーバーの場合、同時に実行されるワークスペースの制限は (RAM、CPU などの) che 制限の設定によってのみバインドされます。アクセスモードの詳細は、https://docs.openshift.com/container-platform/4.4/storage/understanding-persistent-storage.html を参照してください。 |
|
|
CodeReady Workspaces Server がワークスペース PVC が作成後にバインドされるまで待機するかどうかを定義します。これは、すべての PVC ストラテジーによって使用されます。 |
|
| インストーラーサーバーの定義されたポート範囲。デフォルトで、インストーラーは独自のポートを使用しますが、これが別のインストーラーサーバーと競合する場合は、OpenShift インフラストラクチャーはインストーラーを再設定し、この範囲から最初に利用可能になるものをこの範囲から最初に利用可能になると削除されます。 |
|
| 使用されず、削除されます。 |
|
| サーバーを公開するために使用される Ingress のアノテーションを定義します。値は Ingress コントローラーの種類によって異なります。OpenShift インフラストラクチャーは ingress の代わりにルートを使用するため、このプロパティーを無視します。単一ホストのデプロイメントストラテジーが機能するには、URL の書き換えをサポートするコントローラーを使用する必要があります(URL が異なるサーバーをポイントでき、サーバーはアプリケーションのルートの変更をサポートする必要がないようにします)。che.infra.kubernetes.ingress.path.rewrite_transform プロパティーは、Ingress のパスが URL の書き換えをサポートするよう変換する方法を定義します。このプロパティーは、選択した Ingress コントローラーに対して実際に URL の書き換えを実行するように指示する ingress 自体のアノテーションのセットを定義します (選択された Ingress コントローラーで必要な場合)。たとえば、nginx ingress コントローラー 0.22.0 以降の場合、以下の値が推奨されます: {'ingress.kubernetes.io/rewrite-target': '/$1','ingress.kubernetes.io/ssl-redirect': 'false',\ 'ingress.kubernetes.io/proxy-connect-timeout': '3600','ingress.kubernetes.io/proxy-read-timeout': '3600'} che.infra.kubernetes.ingress.path.rewrite_transform は 0.22.0 よりも前の '%s(.*)' nginx ingress コントローラーに設定する必要があり、rewrite-target は単に '/' に設定し、path transform は '%s' に設定する必要があります ( che.infra.kubernetes.ingress.path.rewrite_transform プロパティーを参照してください)。Ingress コントローラーが Ingress パスにある正規表現を使用する方法と、URL の書き換えを実行する方法についての説明は、nginx Ingress コントローラーのドキュメントを参照してください。 |
|
| サーバーを公開する Ingress のパスを宣言する方法についての「recipe」(レシピ) を定義します。'%s' はサーバーのベース公開 URL を表し、スラッシュで終了することが保証されています。このプロパティーは String.format()メソッドへの有効な入力であり、%s への参照が 1 つだけ含まれる必要があります。Ingress のアノテーションとパスを指定する際にこれら 2 つのプロパティーの相互作用を確認するには、che.infra.kubernetes.ingress.annotations_json プロパティーの説明を参照してください。これが定義されていない場合、このプロパティーはデフォルトで '%s' (引用符なし) に設定されます。これは、パスが Ingress コントローラーで使用する場合に変換されないことを意味します。 |
|
| 明確化できるように、CodeReady Workspaces サーバーによって作成されるすべての Ingress に追加する追加のラベル。 |
|
| OpenShift インフラによって作成される Pod のセキュリティーコンテキストを定義します。Pod 内のコンテナーでは、すべてのプロセスが指定のユーザー ID で実行されることを指定します。これは OpenShift インフラによって無視されます。 |
|
| OpenShift インフラによって作成される Pod のセキュリティーコンテキストを定義します。Pod の全コンテナーに適用される特別な補助グループです。OpenShift インフラは、このグループを無視します。 |
|
|
Kubernetes / OpenShift インフラストラクチャーによって作成される Pod の強制終了の猶予期間を定義します。Kubernetes / OpenShift ワークスペースの Pod の強制終了の猶予期間はデフォルトで '0' に設定されます。これにより、Pod をほぼ即時に終了し、ワークスペースを停止するのに必要な時間を短縮できます。注: |
|
|
|
|
| ホストごとの同時非同期 Web 要求の最大数。 |
|
| Kubernetes クライアント共有 http クライアントの接続プールにおけるアイドル状態の接続の最大数 |
|
| Kubernetes クライアント共有 http クライアントの接続プールのキープアライブのタイムアウト (分単位) |
|
| OpenShift インフラストラクチャーで TLS (Transport Layer Security) を有効にして Ingress を作成します。ルートは TLS 対応になります。 |
| OpenShift インフラストラクチャーによって無視される TLS でワークスペース Ingress を作成する際に使用するシークレットの名前 | |
|
| ワークスペース Ingress に使用する必要がある TLS Secret のキーデータ。キーは Base64 アルゴリズムでエンコードする必要があります。OpenShift インフラストラクチャーでは、このプロパティーは無視されます。 |
|
| ワークスペース Ingress に使用する必要のある TLS Secret の証明書データ。証明書は、Base64 アルゴリズムでエンコードする必要があります。OpenShift インフラストラクチャーでは、このプロパティーは無視されます。 |
|
|
ランタイムの整合性チェックが実行される期間を定義します。ランタイムに一貫性のない状態がある場合、ランタイムは自動的に停止します。値は 0 をより大きな値、または |
|
| すべてのユーザーのワークスペースに伝播される追加の CA TLS 証明書を含む、CodeReady Workspaces サーバー namespace の設定マップの名前。プロパティーを OpenShift 4 インフラストラクチャーに設定し、che.infra.openshift.trusted_ca.dest_configmap_labels に config.openshift.io/inject-trusted-cabundle=true ラベルが含まれる場合、クラスター CA バンドルも伝播されます。 |
|
|
追加の CA TLS 証明書が含まれるワークスペース namespace の configmap の名前。ワークスペース namespace に che.infra.kubernetes.trusted_ca.src_configmap のコピーを保持します。この設定マップの内容は、プラグインブローカーを含むすべてのワークスペースコンテナーにマウントされます。設定マップ名が既存の設定マップと競合する場合を除き、変更しないでください。生成される設定マップ名は最終的に調整でき、OpenShift namespace で一意にすることができます。元の名前は |
|
| CA バンドルがマウントされるワークスペースコンテナーでパスを設定します。che.infra.kubernetes.trusted_ca.dest_configmap で指定される設定マップの内容がマウントされます。 |
| ユーザーワークスペースの CA 証明書の設定マップに追加するラベルのコンマ区切りの一覧。che.infra.kubernetes.trusted_ca.dest_configmap プロパティーを参照してください。 |
4.1.2.5. OpenShift インフラパラメーター
表4.5 OpenShift インフラパラメーター
環境変数名 | デフォルト値 | 詳細 |
---|---|---|
| 非推奨: このプロパティーの値は変更しないでください。変更すると、既存のワークスペースでデータが失われます。これは新規インストールに設定しないでください。すべてのワークスペースが作成される OpenShift namespace を定義します。これが設定されないと、すべてのワークスペースが新しい namespace に作成されます。ここで、プロジェクト名 = ワークスペース ID になります。<username> および <userid> プレースホルダー (例: che-workspace-<username>) を使用できます。この場合、ユーザーごとに新規プロジェクトが作成されます。新規プロジェクトを作成するパーミッションを持つ OpenShift oauth またはサービスアカウントを使用する必要があります。このプロパティーで参照されるプロジェクトが存在する場合、これはすべてのワークスペースで使用されます。これが存在しない場合、che.infra.kubernetes.namespace.default によって指定される namespace が作成され、使用されます。 | |
|
| ユーザーワークスペースの CA 証明書の設定マップに追加するラベルのコンマ区切りの一覧。che.infra.kubernetes.trusted_ca.dest_configmap プロパティーを参照してください。このデフォルト値は、OpenShift 4 でのクラスター CA バンドルの自動挿入に使用されます。 |
|
| 明確化できるように、CodeReady Workspaces サーバーによって作成されるすべての Route に追加する追加のラベル。 |
|
| ワークスペースルートの接尾辞として使用する必要のあるホスト名。たとえば、host=open.che.org の場合、ルートは routed3qrtk.open.che.org のように、有効な DNS 名である必要があります。 |
4.1.2.6. 実験的なプロパティー
表4.6 実験的なプロパティー
環境変数名 | デフォルト値 | 詳細 |
---|---|---|
|
| プラグインメタデータブローカーの Docker イメージ。このブローカーは、ワークスペース Pod の起動前に実行する必要があります。このジョブは、ワークスペースの必要なコンテナー、ボリューム、および環境変数をプロビジョニングするため、インストールされたプラグインが有効にされた状態で起動できるようにする必要があります。このイメージはデフォルトで CodeReady Workspaces Operator によって上書きされることに注意してください。ここでイメージを変更しても、CodeReady Workspaces が Operator でインストールされている場合は影響はありません。 |
|
| CodeReady Workspaces プラグインアーティファクトブローカーの Docker イメージ。このブローカーはワークスペース Pod で init コンテナーとして実行されます。そのジョブは、プラグイン識別子(レジストリーのプラグインへの参照、プラグインの meta.yaml へのリンク)の一覧を取り、ワークスペースに要求された各プラグインについて正しい .vsix と .theia extenion が /plugins ディレクトリーにダウンロードされるようにします。 |
|
| プラグインをワークスペースにプロビジョニングする際にプラグインブローカーのデフォルト動作を設定します。true に設定すると、プラグインブローカーは可能な場合にプラグインのマージを試行します(つまり、それらは同じサイドカーイメージで実行され、設定が競合することはありません)。この値は、devfile が指定していない場合に、 'mergePlugins' 属性を使用して使用されるデフォルト設定です。 |
|
| ワークスペースツール設定を解決し、プラグインの依存関係をワークスペースにコピーする CodeReady Workspaces プラグインブローカーアプリケーションの Docker イメージ |
|
| プラグインブローカーの待機中に結果の最大期間を制限するタイムアウトを分単位で定義します。 |
|
| ワークスペースツールプラグインレジストリーのエンドポイント。有効な HTTP URL でなければなりません。例: http://che-plugin-registry-eclipse-che.192.168.65.2.nip.io CodeReady Workspaces プラグインツールが不要な場合、値 'NULL' を使用する必要があります。 |
|
| ワークスペースツールプラグインレジストリーの 'internal' エンドポイントです。有効な HTTP URL でなければなりません。例: http://devfile-registry.che.svc.cluster.local:8080 CodeReady Workspaces プラグインが不要な場合、値 'NULL' を使用する必要があります。 |
|
| devfile レジストリーエンドポイント。有効な HTTP URL でなければなりません。例: http://che-devfile-registry-eclipse-che.192.168.65.2.nip.io CodeReady Workspaces プラグインが不要な場合、値 'NULL' を使用する必要があります。 |
|
| devfile レジストリー 'internal' エンドポイント。有効な HTTP URL でなければなりません。例: http://plugin-registry.che.svc.cluster.local:8080 CodeReady Workspaces プラグインツールが不要な場合、値 'NULL' を使用する必要があります。 |
|
| ダッシュボードなどのクライアントがワークスペースの作成/更新時にユーザーに提案するストレージタイプに使用できる値を定義する設定プロパティー。使用できる値: - 'persistent': 永続ストレージの I/O は低速だが永続性がある。- 'ephemeral': 一時ストレージは、高速 I/O を可能にするが、ストレージには制限があり、永続性がない。- 'async': 実験的機能: 非同期ストレージは一時ストレージと永続ストレージの組み合わせ。高速な I/O を可能にし、変更を維持し、停止時にバックアップを実行し、ワークスペースの開始時に復元します。che.infra.kubernetes.pvc.strategy='common' - che.limits.user.workspaces.run.count=1 - che.infra.kubernetes.namespace.allow_user_defined=false - che.infra.kubernetes.namespace.default に <username> が含まれる場合にのみ機能します。それ他の場合は、一覧から 'async' を削除します。 |
|
| ダッシュボードなどのクライアントがワークスペースの作成/更新時にユーザーに提案するストレージタイプのデフォルト値を定義する設定プロパティー。「async」値は実験的な値のため、デフォルトタイプとしての使用は推奨されません。 |
|
| セキュアなサーバーが認証で保護される方法を設定します。適切な値: 'default': jwtproxy はパススルーモードで設定されます。そのため、サーバーは要求を認証する必要があります。'jwtproxy': jwtproxy は要求を認証します。そのため、サーバーは認証済みのもののみを受信します。 |
|
| JWTProxy 発行者文字列。 |
|
| jwtproxy 発行者トークンの有効期間。 |
|
| 署名なしの要求をルーティングする認証ページのパス (任意)。 |
|
| jwtproxy イメージ。 |
|
| jwtproxy メモリー要求。 |
|
| jwtproxy メモリー制限。 |
|
| jwtproxy CPU 要求。 |
|
| jwtproxy CPU 制限。 |
4.1.2.7. 主な「/websocket」エンドポイントの設定
表4.7 主な「/websocket」エンドポイントの設定
環境変数名 | デフォルト値 | 詳細 |
---|---|---|
|
| JSON RPC 処理プールの最大サイズ。プールサイズが超過すると、メッセージの実行が拒否されます。 |
|
| 初期 json 処理プール。主な JSON RPC メッセージを処理するために使用されるスレッドの最小数。 |
|
| Json RPC メッセージの処理に使用するキューの設定。 |
|
| Prometheus メトリクスで公開される http サーバーエンドポイントのポート |
4.1.2.8. CORS 設定
表4.8 CORS 設定
環境変数名 | デフォルト値 | 詳細 |
---|---|---|
|
| WS Master の CORS フィルターはデフォルトで無効にされます。環境変数 'CHE_CORS_ENABLED=true' を使用して 'cors.allowed.origins' でこれを有効にし、許可される要求元を示唆します。 |
|
| 'cors.support.credentials' は、認証情報 (cookie、ヘッダー、TLS クライアント証明書) を使用して要求の処理を許可するかどうかを示します。 |
4.1.2.9. Factory のデフォルト
表4.9 Factory のデフォルト
環境変数名 | デフォルト値 | 詳細 |
---|---|---|
|
| CodeReady Workspaces 固有のワークスペース記述子が含まれないリモート git リポジトリーから作成されるファクトリーに使用されるエディター。 |
|
| CodeReady Workspaces 固有のワークスペース記述子が含まれないリモート git リポジトリーから作成されるファクトリーに使用されるプラグイン。複数のプラグインは、コンマ区切りのプラグインである必要があります。例: pluginFooPublisher/pluginFooName/pluginFooVersion,pluginBarPublisher/pluginBarName/pluginBarVersion |
|
| リポジトリーベースの Factory (GitHub など) を検索する devfile のファイル名。Factory は、プロパティーで列挙される順序でこれらのファイルの特定を試みます。 |
4.1.2.10. devfile のデフォルト
表4.10 devfile のデフォルト
環境変数名 | デフォルト値 | 詳細 |
---|---|---|
|
|
指定されていない場合に Devfile にプロビジョニングする必要があるデフォルトのエディター。エディター形式は、 |
|
|
デフォルトのエディター用にプロビジョニングする必要があるデフォルトのプラグイン。ユーザー定義の devfile で明示的に参照されていないこの一覧のすべてのプラグインはプロビジョニングされますが、これはデフォルトのエディターが使用されているか、またはユーザー定義のエディターが (異なるバージョンの場合でも) デフォルトと同じである場合に限ります。形式は、コンマ区切りの |
|
| ユーザー namespace からシークレットを選択するためにラベルのコンマ区切りの一覧を定義します。これは、ファイルまたは環境変数としてワークスペースコンテナーにマウントされます。すべての指定されるラベルに一致するシークレットのみが選択されます。 |
|
| 非同期ストレージ機能がワークスペース設定で有効にされ、環境でサポートされる場合に、プラグインが追加されます |
|
| CodeReady Workspaces 非同期ストレージの Docker イメージ |
|
| オプションでワークスペース Pod のノードセレクターを設定します。形式は、コンマ区切りの key=value ペアです (例: disktype=ssd,cpu=xlarge,foo=bar)。 |
|
|
オプションでワークスペース Pod の容認を設定します。形式は、テイントの容認の JSON 配列を表す文字列か、または |
|
| 最後に使用されたワークスペースの停止後の非同期ストレージ Pod のシャットダウンのタイムアウト。0 以下の値は、シャットダウン機能を無効にするものとして解釈されます。 |
|
| 非同期ストレージ Pod が機能を停止する期間を定義します (デフォルトでは 30 分ごと)。 |
|
| Factory の統合に使用される Bitbucket エンドポイント。bitbucket サーバー URL のコンマ区切りの一覧、または統合が予想されない場合は NULL。 |
|
| ファクトリーの統合に使用される GitLab エンドポイント。Gitlab サーバー URL のコンマ区切りの一覧、またはインテグレーションが予想されない場合は NULL。 |
4.1.2.11. Che システム
表4.11 Che システム
環境変数名 | デフォルト値 | 詳細 |
---|---|---|
|
| System Super Privileged Mode (システムのスーパー特権モード)。getByKey、getByNameSpace、stopWorkspaces、および getResources の manageSystem パーミッションの追加パーミッションをユーザーに付与します。これらは、デフォルトでは管理者には提供されず、これらのパーミッションにより、管理者はadmin 権限でそれらのワークスペースに名前を指定し、ワークスペースへの可視性を得ることができます。 |
|
| 'che.admin.name' ユーザーのシステムパーミッションを付与します。ユーザーがすでに存在する場合は、これはコンポーネントの起動時に生じます。ユーザーがすでに存在しない場合は、ユーザーがデータベースで永続化される初回のログイン時に発生します。 |
4.1.2.12. Workspace の制限
表4.12 Workspace の制限
環境変数名 | デフォルト値 | 詳細 |
---|---|---|
|
| ワークスペースは、開発を行う際のユーザー向けの基本的なランタイムです。ワークスペースの作成方法や、消費されるリソースを制限するパラメーターを設定できます。ユーザーが新規ワークスペースの作成時にワークスペースに割り当てることができる RAM の最大量。RAM スライダーは、この最大値に合わせて調整されます。 |
|
| システムがワークスペースを一時停止した後にこれを停止する際に、ユーザーがワークスペースでアイドル状態になる期間。アイドル状態は、ユーザーがワークスペースと対話しない期間です。つまり、エージェントのいずれも対話を受け取っていない期間を意味します。ブラウザーウィンドウを開いたままにするとアイドル状態になります。 |
|
| システムが一時停止するまでの、アクティビティーを問わず、ワークスペースが実行される期間 (ミリ秒単位)。一定期間後にワークスペースを自動的に停止する場合は、このプロパティーを設定します。デフォルトはゼロで、実行タイムアウトがないことを意味します。 |
4.1.2.13. ユーザーワークスペースの制限
表4.13 ユーザーワークスペースの制限
環境変数名 | デフォルト値 | 詳細 |
---|---|---|
|
| 単一ユーザーがワークスペースの実行に割り当てることができる RAM の合計量。ユーザーは、この RAM を単一のワークスペースに割り当てるか、または複数のワークスペースに分散することができます。 |
|
| ユーザーが作成できるワークスペースの最大数。追加のワークスペースを作成しようとすると、ユーザーにはエラーメッセージが表示されます。これは、実行中および停止中のワークスペースの合計数に適用されます。 |
|
| 単一ユーザーが持てる実行中のワークスペースの最大数。ユーザーがこのしきい値に達し、追加のワークスペースを開始しようとすると、エラーメッセージと共にプロンプトが表示されます。ユーザーは、実行中のワークスペースを停止してから別のワークスペースをアクティべートする必要があります。 |
4.1.2.14. 組織ワークスペースの制限
表4.14 組織ワークスペースの制限
環境変数名 | デフォルト値 | 詳細 |
---|---|---|
|
| 単一組織 (チーム) がワークスペースの実行に割り当てることができる RAM の合計量。組織の所有者はこの RAM を割り当てることができますが、チームのワークスペース全体で適切に割り当てられているように見えます。 |
|
| 組織が所有できるワークスペースの最大数。追加のワークスペースを作成しようとすると、組織にはエラーメッセージが表示されます。これは、実行中および停止中のワークスペースの合計数に適用されます。 |
|
| 単一組織が持てる実行中のワークスペースの最大数。組織がこのしきい値に達し、追加のワークスペースを開始しようとすると、エラーメッセージと共にプロンプトが表示されます。組織は、実行中のワークスペースを停止してから別のワークスペースをアクティべートする必要があります。 |
|
| メール通知の送信元のメールに使用されるアドレス |
4.1.2.15. 組織通知の設定
表4.15 組織通知の設定
環境変数名 | デフォルト値 | 詳細 |
---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4.1.2.16. マルチユーザー固有の OpenShift インフラストラクチャー設定
表4.16 マルチユーザー固有の OpenShift インフラストラクチャー設定
環境変数名 | デフォルト値 | 詳細 |
---|---|---|
|
|
Keycloak に登録されている Openshift アイデンティティープロバイダーのエイリアス。これは、現行の CodeReady Workspaces ユーザーが所有する Openshift namespace にワークスペース OpenShift リソースを作成するために使用されます。 |
4.1.2.17. Keycloak の設定
表4.17 Keycloak の設定
環境変数名 | デフォルト値 | 詳細 |
---|---|---|
|
|
|
|
| keycloak アイデンティティープロバイダーサーバーへの内部ネットワークサービス URL |
|
|
Keycloak レルムを使用してユーザーを認証するために使用されます。 |
|
| ユーザーの認証用にダッシュボード、ide、および cli で使用される che.keycloak.realm の Keycloak クライアント ID |
|
| OSO oauth トークンにアクセスするための URL |
|
| Github oauth トークンにアクセスするための URL |
|
| exp または nbf 要求を検証する際にクロックスキューについて許容される秒数。 |
|
|
OIDC オプションの |
|
|
使用する Keycloak Javascript アダプターの URL。NULL に設定すると、デフォルト値が |
|
| 以下の仕様で詳細に検出エンドポイントを指定する別の OIDC プロバイダーのベース URL。 https://openid.net/specs/openid-connect-discovery-1_0.html#ProviderConfig |
|
|
固定されたリダイレクト URL のみをサポートする別の OIDC プロバイダーを使用する場合は true に設定します。このプロパティーは、 |
|
| 定義されていない場合、JWT トークンの解析時にユーザー名の要求がユーザーの表示名として使用されます。フォールバック値は「preferred_username」です。 |
|
| 「embedded」モードまたは「delegated」モードで使用できる OAuth 認証サービスの設定。「embedded」に設定すると、サービスは、(Single User モードの場合のように) CodeReady Workspaces の OAuthAuthenticator のラッパーとして機能します。「delegated」に設定すると、サービスは Keycloak IdentityProvider メカニズムを使用します。このプロパティーが正しく設定されていない場合は、ランタイム例外がスローされます。 |
|
| CodeReady Workspaces データベースからユーザーを削除する際の Keycloak サーバーからのユーザーの削除を有効にするための設定。デフォルトで、これは無効にされます。CodeReady Workspaces データベースでユーザーを削除する際に Keycloak からの関連ユーザーの削除が実行される特別なケースでは有効にされある場合があります。適切に機能するには、管理ユーザー名 ${che.keycloak.admin_username} とパスワード ${che.keycloak.admin_password} を設定する必要があります。 |
|
| Keycloak 管理ユーザー名。CodeReady Workspaces データベースからユーザーを削除する際に Keycloak からユーザーを削除するために使用します。${che.keycloak.cascade_user_removal_enabled} が 'true' に設定されている場合にのみ機能します。 |
|
| Keycloak 管理者パスワード。CodeReady Workspaces データベースからユーザーを削除する際に Keycloak からユーザーを削除するために使用します。${che.keycloak.cascade_user_removal_enabled} が 'true' に設定されている場合にのみ機能します。 |
|
|
ユーザー名の調整の設定。CodeReady Workspaces は、ユーザー名を K8s オブジェクト名とラベルの一部として使用する必要があるため、アイデンティティープロバイダーが通常許可する場合よりもフォーマットの要件が厳しくなります (DNS に準拠する必要があります)。この調整は、コンマ区切りのキー/値のペアで表されます。これらは元のユーザー名の String.replaceAll 関数への引数として順次使用されます。キーは正規表現で、値は正規表現に一致するユーザー名の文字を置き換える置換文字列です。変更したユーザー名は CodeReady Workspaces データベースのみに保存され、アイデンティティープロバイダーには再び公開されません。DNS に準拠する文字を代替文字列として使用することが推奨されます (キー/値のペアの値)。例: |
4.2. プロジェクトストラテジーの設定
新規ワークスペース Pod がデプロイされる OpenShift プロジェクトは、CodeReady Workspaces サーバー設定によって異なります。デフォルトで、すべてのワークスペースは個別の OpenShift プロジェクトにデプロイされますが、ユーザーは CodeReady Workspaces サーバーを 1 つの特定の OpenShift プロジェクトにすべてのワークスペースをデプロイするように設定できます。OpenShift プロジェクトの名前は CodeReady Workspaces サーバー設定プロパティーとして指定される必要があり、実行時に変更することはできません。
Operator インストーラーでは、OpenShift プロジェクトストラテジーは server.workspaceNamespaceDefault
プロパティーを使用して設定されます。
Operator CheCluster CR パッチ
apiVersion: org.eclipse.che/v1 kind: CheCluster metadata: name: <che-cluster-name> spec: server: workspaceNamespaceDefault: <workspace-namespace> 1
- 1
- - CodeReady Workspaces ワークスペース namespace の設定
CodeReady Workspaces サーバーが使用する基礎となる環境変数は CHE_INFRA_KUBERNETES_NAMESPACE_DEFAULT
です。
CHE_INFRA_KUBERNETES_NAMESPACE
および CHE_INFRA_OPENSHIFT_PROJECT
はレガシー変数です。新規インストールでは、これらの変数は未設定のままにします。更新時にこれらの変数を変更すると、データが失われる可能性があります。
デフォルトでは、同じプロジェクト内で同時に実行できるワークスペースは 1 つだけです。「一度に複数のワークスペースの実行」 を参照してください。
Kubernetes は namespace 名の長さを 63 文字に制限します (これには評価されるプレースホルダーが含まれます)。さらに、名前 (プレースホルダーの評価後) は有効な DNS 名である必要があります。
マルチホストサーバーの脆弱性ストラテジーのある OpenShift では、長さはさらに 49 文字に制限されます。
<userid>
プレースホルダーは 36 文字の長さの UUID 文字列として評価されることに注意してください。
新規プロジェクトの作成が必要なストラテジーの場合、che
ServiceAccount にこれを実行するのに十分なパーミッションがあることを確認します。OpenShift OAuth では、認証されたユーザーには、新規プロジェクトを作成するための権限が必要です。
4.2.1. ユーザーストラテジーごとに 1 つのプロジェクト
ストラテジーは、独自のプロジェクトの各ユーザーを分離します。
ストラテジーを使用するには、CodeReady Workspaces workspace namespace 設定 の値を 1 つ以上のユーザー ID が含まれるように設定します。現在サポートされている識別子は <username>
と <userid>
です。
例4.2 ユーザーごとに 1 つのプロジェクト
'codeready-ws' プレフィックスおよび個々のユーザー名(codeready-ws-user1
、codeready-ws-user2
) で構成されるプロジェクト名を割り当てるには、以下を設定します。
Operator インストーラー (CheCluster CustomResource)
... spec: server: workspaceNamespaceDefault: codeready-ws-<username> ...
4.2.2. ワークスペースストラテジーごとに 1 つのプロジェクト
ストラテジーは、新規ワークスペースごとに新規プロジェクトを作成します。
ストラテジーを使用するには、CodeReady Workspaces workspace namespace configuration 値を <workspaceID>
ID が含まれるように設定します。これは単独で使用することも、他の ID または任意の文字列と組み合わせることもできます。
例4.3 ワークスペースごとに 1 つのプロジェクト
'codeready-ws' プレフィックスおよびワークスペース ID で構成されるプロジェクト名を割り当てるには、以下を設定します。
Operator インストーラー (CheCluster CustomResource)
... spec: server: workspaceNamespaceDefault: codeready-ws-<workspaceID> ...
4.2.3. すべてのワークスペースストラテジーに 1 つのプロジェクト
ストラテジーは、すべてのワークスペースに 1 つの事前に定義されたプロジェクトを使用します。
ストラテジーを使用するには、CodeReady Workspaces workspace namespace configuration 値を、使用する必要のあるプロジェクトの名前に設定します。
例4.4 すべてのワークスペースに 1 つのプロジェクト
すべてのワークスペースを 'codeready-ws' プロジェクトで作成する場合は、以下を設定します。
Operator インストーラー (CheCluster CustomResource)
...
spec:
server:
workspaceNamespaceDefault: codeready-ws
...
4.2.4. ユーザー定義のワークスペースプロジェクトの許可
CodeReady Workspaces サーバーは、ワークスペースの作成時にプロジェクトのユーザー選択を有効にするように設定できます。この機能はデフォルトでは無効にされます。ユーザー定義のワークスペースプロジェクトを許可するには、以下を実行します。
Operator デプロイメントの場合、CheCluster カスタムリソースに以下のフィールドを設定します。
... server: allowUserDefinedWorkspaceNamespaces: true ...
4.2.5. 互換性のないユーザー名またはユーザー ID の処理
CodeReady Workspaces サーバーは、テンプレートからプロジェクトを作成する前に、Kubernetes オブジェクトの命名規則との互換性についてユーザー名と ID を自動的にチェックします。互換性のないユーザー名または ID は、適切ではないシンボルのグループを -
に置き換えることにより減少し、ほぼ有効な名前のみに絞られます。競合を回避するために、ランダムな 6 記号のサフィックスが追加され、結果は再利用できるように設定に保存されます。
4.2.6. ユーザーのプロジェクトの事前作成
ユーザーのプロジェクトを事前に作成するには、プロジェクトのラベルおよびアノテーションを使用します。この namespace は、CHE_INFRA_KUBERNETES_NAMESPACE_DEFAULT
変数よりも優先して使用されます。
metadata:
labels:
app.kubernetes.io/part-of: che.eclipse.org
app.kubernetes.io/component: workspaces-namespace
annotations:
che.eclipse.org/username: <username> 1
- 1
- ターゲットユーザーのユーザー名
ラベルを設定するには、CHE_INFRA_KUBERNETES_NAMESPACE_LABELS
を必要なラベルに設定します。アノテーションを設定するには、CHE_INFRA_KUBERNETES_NAMESPACE_ANNOTATIONS
を必要なアノテーションに設定します。詳細は、CodeReady Workspaces サーバーコンポーネントのシステムプロパティーのリファレンスを参照してください。
単一ユーザーに複数の namespace を作成しないようにします。これにより、定義されていない動作が生じる可能性があります。
OAuth を使用する OpenShift では、ターゲットユーザーにはターゲット namespace で admin
ロール権限が必要です。
apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: admin namespace: <namespace> 1 roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: admin subjects: - apiGroup: rbac.authorization.k8s.io kind: User name: <username> 2
Kubernetes では、che
ServiceAccount には、クラスター全体の list
および get
namespaces
パーミッションと、ターゲット namespace の admin
ロールが必要です。
4.2.7. namespace のラベル付け
CodeReady Workspaces は、CHE_INFRA_KUBERNETES_NAMESPACE_LABELS
で定義されるラベルを追加して、ワークスペースの起動時にワークスペースの名前空間を更新します。これを実行するには、che
ServiceAccout に update
および get
namespaces
に対する以下のようなクラスター全体のパーミッションが必要になります。
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: <cluster-role-name> 1
rules:
- apiGroups:
- ""
resources:
- namespaces
verbs:
- update
- get
- 1
- クラスターロールの名前
apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: <cluster-role-binding-name> 1 subjects: - kind: ServiceAccount name: <service-account-name> 2 namespace: <service-accout-namespace> 3 roleRef: kind: ClusterRole name: <cluster-role-name> 4 apiGroup: rbac.authorization.k8s.io
CodeReady Workspaces は、パーミッションがないことでワークスペースの起動に失敗することはなく、警告のみがログに記録されます。CodeReady Workspaces ログに警告が表示される場合は、CHE_INFRA_KUBERNETES_NAMESPACE_LABEL=false
設定で機能を無効にすることを検討してください。
4.3. ストレージストラテジーの設定
本セクションでは、CodeReady Workspaces ワークスペースのストレージストラテジーを設定する方法を説明します。
4.3.1. codeready-workspaces ワークスペースのストレージストラテジー
ワークスペース Pod は、ReadWriteOnce アクセスモードで物理的な永続ボリューム (PV) にバインドされる Persistent Volume Claim(永続ボリューム要求、PVC)を使用します。CodeReady Workspaces サーバーがワークスペースに PVC を使用する方法を設定できます。この設定の個別の方法は PVC ストラテジーと呼ばれます。
strategy | 詳細 | 利点 | 不利な点 |
---|---|---|---|
unique | ワークスペースボリュームまたはユーザー定義 PVC ごとに 1 つの PVC | ストレージの分離 | 定義されない数の PV が必要です |
per-workspace (デフォルト) | 1 つのワークスペースに 1 つの PVC | 一意のストラテジーと比較すると、ストレージの管理と制御が容易になります。 | PV 数は不明で、ワークスペース数により異なります。 |
common | 1 つの OpenShift namespace のすべてのワークスペースに 1 つの PVC | ストレージの管理と制御が容易になります。 | PV が ReadWriteMany (RWX) アクセスモードをサポートしない場合、ワークスペースは別の OpenShift namespace になければなりません。 または、1 つの namespace で 2 つ以上のワークスペースを同時に実行することはできません。 |
Red Hat CodeReady Workspaces は、すべての CodeReady Workspaces ワークスペースがユーザーのプロジェクトで動作し、1 つの PVC を共有する場合に、common
PVC ストラテジーを「ユーザーごとに 1 プロジェクト」のプロジェクトストラテジーと共に使用します。
4.3.1.1. common
PVC ストラテジー
OpenShift プロジェクト内のすべてのワークスペースは、宣言されたボリュームに以下のようなデータを保存する際に、デフォルトのデータストレージと同じ Persistent Volume Claim(永続ボリューム要求、PVC)を使用します。
- プロジェクト
- ワークスペースログ
- 使用に基づいて定義される追加のボリューム
common
PVC ストラテジーが使用されている場合、ユーザー定義の PVC は無視され、これらのユーザー定義 PVC に関連するボリュームは共通 PVC を参照するボリュームに置き換えられます。このストラテジーでは、すべての CodeReady Workspaces ワークスペースが同じ PVC を使用します。ユーザーが 1 つのワークスペースを実行すると、一度にクラスター内の 1 つのノードにのみバインドします。
対応するコンテナーボリュームのマウントは共通ボリュームにリンクされ、サブパスには <workspace-ID>
または <original-PVC-name>
のプレフィックスが付けられます。詳細は、「サブパスが PVC で使用される方法」を参照してください。
CodeReady Workspaces ボリューム名は、ユーザー定義 PVC の名前と同じです。つまり、マシンがユーザー定義の PVC と同じ名前を持つ CodeReady Workspaces ボリュームを使用するように設定されている場合、それらは共通 PVC で同じ共有フォルダーを使用します。
ワークスペースが削除されると、対応するサブディレクトリー (${ws-id}
) が PV ディレクトリーで削除されます。
common
PVC ストラテジーの使用に関する制限
common
ストラテジーが使用され、ワークスペース PVC アクセスモードが ReadWriteOnce (RWO) の場合、1 つのノードのみが PVC を同時に使用できます。
ノードが複数ある場合には、common
ストラテジーを使用できますが、以下の点を注意してください。
-
ワークスペース PVC アクセスモードを
ReadWriteMany
(RWM)に再設定し、複数のノードがこの PVC を同時に使用できるようにする必要があります。 - 同じプロジェクトの 1 つのワークスペースのみを実行できます。「一度に複数のワークスペースの実行」 を参照してください。
common
PVC ストラテジーは、大規模なマルチノードクラスターには適していません。そのため、単一ノードクラスターで使用することが最も適しています。ただし、per-workspace
プロジェクトストラテジーと組み合わせにより、common
PVC ストラテジーは 75 ノードを超えるクラスターで使用できます。このストラテジーで使用する PVC は、1 つのプロジェクトが他のプロジェクトのリソースを使い切る状況を防ぐために、すべてのプロジェクトに対応するのに十分な大きさである必要があります。
4.3.1.2. per-workspace
PVC ストラテジー
per-workspace
ストラテジーは、common
PVC ストラテジーに似ています。すべてのワークスペースではなく、すべてのワークスペースのボリュームが以下についてデフォルトのデータストレージと同じ PVC を使用する点が唯一の違いになります。
- プロジェクト
- ワークスペースログ
- ユーザーが定義する追加のボリューム
このストラテジーでは、CodeReady Workspaces は単一の PVC によって割り当てられる割り当てられた PV にワークスペースのデータを保持します。
per-workspace
PVC ストラテジーは、利用可能な PVC ストラテジーの中でも最も汎用的なストラテジーであり、ユーザーの量が多い大規模なマルチノードクラスターの適切なオプションとして機能します。per-workspace
PVC ストラテジーを使用すると、ユーザーは複数のワークスペースを同時に実行できます。これにより、PVC がさらに作成されます。
4.3.1.3. unique
PVC ストラテジー
'unique 'PVC ストラテジーを使用する場合、ワークスペースのすべての CodeReady Workspaces ボリュームには独自の PVC があります。つまり、ワークスペース PVC は以下のようになります。
ワークスペースの初回起動時に作成されます。対応するワークスペースが削除されると削除されます。
ユーザー定義の PVC は以下の詳細で作成されます。
- これらは、プロジェクトの他の PVC との名前の競合を防ぐために、生成される名前でプロビジョニングされます。
-
ユーザー定義の PVC を参照するマウントされた物理的な永続ボリュームのサブパスには、
<workspace-ID>
または<PVC-name>
のプレフィックスが付けられます。これにより、同じ PV データ構造が異なる PVC ストラテジーで設定されます。詳細は、「サブパスが PVC で使用される方法」を参照してください。
unique
PVC ストラテジーは、ユーザーの量が少ない大規模なマルチノードクラスターに適しています。このストラテジーはワークスペースの各ボリュームについて別個の PVC で動作するため、さらに多くの PVC が作成されます。
4.3.1.4. サブパスが PVC で使用される方法
サブパスは、永続ボリューム (PV) のフォルダー階層を示しています。
/pv0001 /workspaceID1 /workspaceID2 /workspaceIDn /che-logs /projects /<volume1> /<volume2> /<User-defined PVC name 1 | volume 3> ...
ユーザーが devfile でコンポーネントのボリュームを定義すると、同じ名前のボリュームを定義するすべてのコンポーネントは、PV 内の <PV-name>
, <workspace-ID> または `<original-PVC-name>
と同じディレクトリーでサポートされます。各コンポーネントでは、コンテナー内の異なるパスにこの場所をマウントすることができます。
例
common
PVC ストラテジーを使用すると、ユーザー定義の PVC は共通 PVC のサブパスに置き換えられます。ユーザーがボリュームを my-volume
として参照すると、これは /workspace-id/my-volume
サブパスで common-pvc にマウントされます。
4.3.2. 永続ボリュームストラテジーを使用した CodeReady Workspaces ワークスペースの設定
永続ボリューム (PV) は、ボリュームをクラスターに追加する仮想ストレージインスタンスとして機能します。
永続ボリューム要求 (PVC)は、以下の CodeReady Workspaces ストレージ設定ストラテジーで利用可能な特定のタイプおよび設定の永続ストレージのプロビジョニング要求です。
- Common
- Per-workspace
- Unique
マウントされた PVC はコンテナーのファイルシステムのフォルダーとして表示されます。
4.3.2.1. Operator を使用した PVC ストラテジーの設定
以下のセクションでは、Operator を使用して CodeReady Workspaces サーバーのワークプレースの永続ボリューム要求 (PVC)ストラテジーを設定する方法を説明します。
既存のワークスペースを使用して既存の CodeReady Workspaces クラスターに PVC ストラテジーを再設定することは推奨されません。これを実行すると、データが失われます。
Operator は、カスタムリソースを使用してアプリケーションとそのコンポーネントを管理する OpenShift に対するソフトウェアの拡張機能です。
Operator を使用して CodeReady Workspaces をデプロイする場合は、CheCluster カスタムリソースオブジェクトの YAML ファイルの spec.storage.pvcStrategy
プロパティーを変更して、目的のストラテジーを設定します。
前提条件
-
oc
ツールが利用できる。
手順
以下の手順は、OpenShift コマンドラインツール「oc」で使用できます。
CheCluster YAML ファイルに変更を加えるには、以下のいずれかを選択します。
oc apply
コマンドを実行して新規クラスターを作成します。以下に例を示します。$ oc apply -f <my-cluster.yaml>
oc patch
コマンドを実行して、すでに実行中のクラスターの YAML ファイルプロパティーを更新します。以下に例を示します。$ oc patch checluster codeready-workspaces --type=json \ -p '[{"op": "replace", "path": "/spec/storage/pvcStrategy", "value": "per-workspace"}]'
使用されるストラテジーに応じて、上記の例の per-workspace
オプションを unique
または common
に置き換えます。
4.4. ストレージタイプの設定
Red Hat CodeReady Workspaces は、さまざまな機能を備えた 3 種類のストレージをサポートします。
- Persistent (永続)
- Ephemeral (一時)
- Asynchronous (非同期)
4.4.1. 永続ストレージ
永続ストレージにより、マウントされた永続ボリュームにユーザーの変更を直接保存できます。とくに小さなファイルが数多くある場合に I/O が低速になりますが、ユーザーの変更は OpenShift インフラストラクチャー (ストレージバックエンド) によって保護されます。たとえば、Node.js プロジェクトには多くの依存関係が含まれることがあり、node_modules/
ディレクトリーには数千の小さなファイルが含まれます。
I/O の速度は、環境内で設定されているストレージクラスによって異なります。
永続ストレージは、新規ワークスペースのデフォルトモードです。この設定をワークスペース設定で表示できるようにするには、以下を devfile に追加します。
attributes: persistVolumes: 'true'
4.4.2. 一時ストレージ
一時ストレージでは、ファイルを emptyDir
ボリュームに保存します。このボリュームは最初は空の状態です。Pod がノードから削除されると、emptyDir
ボリュームのデータは永久に削除されます。つまり、ワークスペースの停止または再起動時にすべての変更が失われます。
変更を保存するには、一時ワークスペースを停止する前に、リモートへのコミットおよびプッシュを実行します。
一時モードは、永続ストレージよりも高速な I/O を提供します。このストレージタイプを有効にするには、以下をワークスペース設定に追加します。
attributes: persistVolumes: 'false'
表4.18 AWS EBS での一時モード (emptyDir
) と永続モードの I/O の比較
コマンド | 一時ストレージ | 永続データストレージ |
---|---|---|
Red Hat CodeReady Workspaces のクローン作成 | 0 m 19 s | 1 m 26 s |
1000 のランダムなファイルの生成 | 1 m 12 s | 44 m 53 s |
4.4.3. 非同期ストレージ
非同期ストレージは実験的な機能です。
非同期ストレージは、永続ストレージと一時モードの組み合わせです。初期ワークスペースコンテナーは emptyDir
ボリュームをマウントします。次に、ワークスペースの停止時にバックアップが実行され、変更がワークスペースの起動時に復元されます。非同期ストレージは、(一時モードと同様の)高速 I/O を提供し、ワークスペースプロジェクトの変更は永続化されます。
同期は、SSH プロトコルを使用して rsync ツールで実行されます。ワークスペースが非同期ストレージで設定されている場合、workspace-data-sync プラグインはワークスペース設定に自動的に追加されます。プラグインはワークスペースの開始時に rsync
コマンドを実行して変更を復元します。ワークスペースが停止したら、変更を永続ストレージに送信します。
比較的小規模なプロジェクトの場合、復元手順は高速で、Che-Theia が初期化されるとプロジェクトのソースファイルはすぐに利用可能になります。rsync
にかかる時間が長いと、同期プロセスは Che-Theia のステータスバーの領域に表示されます。(Che-Theia リポジトリーの拡張)。

非同期モードには、以下の制限があります。
- common PVC ストラテジーのみをサポートします。
- ユーザーごとの プロジェクトストラテジーのみをサポートします。
- 1 度に実行できるワークスペースは 1 つのみです。
ワークスペースの非同期ストレージを設定するには、以下をワークスペース設定に追加します。
attributes: asyncPersist: 'true' persistVolumes: 'false'
4.4.4. CodeReady Workspaces ダッシュボードのストレージタイプのデフォルトの設定
以下の 2 つの che.properties
を使用して、CodeReady Workspaces ダッシュボードでデフォルトのクライアント値を設定します。
che.workspace.storage.available_types
ワークスペースの作成または更新時に、ダッシュボードなどのクライアントがユーザーに提案するストレージタイプに使用できる値を定義します。使用できる値は
persistent
、ephemeral
およびasync
です。複数の値をコンマで区切ります。以下に例を示します。che.workspace.storage.available_types=persistent,ephemeral,async
che.workspace.storage.preferred_type
ワークスペースの作成時に、ダッシュボードなどのクライアントがユーザーに提案するストレージタイプのデフォルト値を定義します。
async
値は、実験的な取組であるため、デフォルトタイプとしての使用は推奨されません。以下に例を示します。che.workspace.storage.preferred_type=persistent
ユーザーは、ワークスペースの作成時に CodeReady Workspaces ダッシュボードの Create Custom Workspace タブでストレージタイプを設定できます。既存のワークスペースのストレージタイプは、ワークスペースの詳細について Overview タブで設定できます。
4.4.5. 非同期ストレージ Pod のアイドリング
CodeReady Workspaces は、設定された期間に使用されていない場合に、非同期ストレージ Pod をシャットダウンできます。
動作を調整するには、以下の設定プロパティーを使用します。
che.infra.kubernetes.async.storage.shutdown_timeout_min
- 最後のアクティブなワークスペースの停止後に非同期ストレージ Pod が停止されるアイドル時間を定義します。デフォルト値は 120 分です。
che.infra.kubernetes.async.storage.shutdown_check_period_min
- 非同期ストレージ Pod でアイドル状態をチェックする頻度を定義します。デフォルト値は 30 分です。
4.5. 一度に複数のワークスペースの実行
この手順では、複数のワークスペースを同時に実行する方法を説明します。これにより、ユーザーごとに複数のワークスペースのコンテキストを並行して実行できます。
前提条件
-
'`oc’
ツールが利用できる。 OpenShift で実行される CodeReady Workspaces のインスタンス。
注記以下のコマンドは、
-n
オプションのユーザー例として、デフォルトの OpenShift プロジェクトopenshift-workspaces
を使用します。
手順
基礎となるストレージバックエンドが
ReadWriteMany
アクセスモードを使用するようにサポートされないか、またはこれが設定されていない場合は、ワークスペースごと
のまたは一意
の PVC ストラテジーを設定します。「ストレージストラテジーの設定」 を参照してください。重要ユーザーごとに単一の PVC を使用するデフォルトの
共通
PVC ストラテジーは、クラスターの永続ボリュームがReadWriteMany
アクセスモードを使用するように設定されている場合にのみ、複数のワークスペースを同時に実行することをサポートします。これにより、ユーザーの同時ワークスペースのいずれかが共通 PVC からの/への読み取り/書き込みを実行できます。たとえば、EBS はReadWriteOnce
アクセスモードのみをサポートするなど、ストレージの制限によりReadWriteMany
を設定すると実行できません。-
デフォルトの制限 1 を
-
1
に変更して、無制限の同時ワークスペースの数を許可するか、またはユーザーごとに同時に10
個のワークスペースを実行できるようにするには10
の正確な値に変更します。
$ oc patch checluster codeready-workspaces -n openshift-workspaces --type merge \ -p '{ "spec": { "server": {"customCheProperties": {"CHE_LIMITS_USER_WORKSPACES_RUN_COUNT": "-1"} } }}'
4.6. ワークスペース公開ストラテジーの設定
CodeReady Workspaces サーバーのワークスペース公開ストラテジーを設定し、内部で実行されているアプリケーションが外部からの攻撃を受けないようにする方法を説明します。
4.6.1. Operator を使用したワークスペース公開ストラテジーの設定
Operator は、カスタムリソースを使用してアプリケーションとそのコンポーネントを管理する OpenShift に対するソフトウェアの拡張機能です。
前提条件
-
oc
ツールが利用できる。
手順
Operator を使用して CodeReady Workspaces をデプロイする場合は、CheCluster カスタムリソースオブジェクトの YAML ファイルの spec.server.serverExposureStrategy
プロパティーを変更して、目的のストラテジーを設定します。
spec.server.serverExposureStrategy
でサポートされる値は次のとおりです。
個別のストラテジーの詳細は、「ワークスペース公開ストラテジー」 を参照してください。
CheCluster YAML ファイルに加えた変更を有効にするには、以下のいずれかを実行します。
パッチを適用して
crwctl
コマンドを実行して、新しいクラスターを作成します。以下に例を示します。$ crwctl server:deploy --installer=operator --platform=<platform> \ --che-operator-cr-patch-yaml=patch.yaml
注記利用可能な OpenShift デプロイメントプラットフォームの一覧については、
crwctl server:deploy --platform --help
を使用します。以下の
patch.yaml
ファイルを使用します。apiVersion: org.eclipse.che/v1 kind: CheCluster metadata: name: eclipse-che spec: server: serverExposureStrategy: '<exposure-strategy>' 1
- 1
- - ワークスペース公開ストラテジーの使用
oc patch
コマンドを実行して、すでに実行中のクラスターの YAML ファイルプロパティーを更新します。以下に例を示します。$ oc patch checluster codeready-workspaces --type=json \ -p '[{"op": "replace", "path": "/spec/server/serverExposureStrategy", "value": "<exposure-strategy>"}]' \ 1 -n openshift-workspaces
- 1
- - ワークスペース公開ストラテジーの使用
4.6.2. ワークスペース公開ストラテジー
ワークスペースの特定のコンポーネントは、OpenShift クラスター外からアクセスできるようにする必要があります。通常、これはワークスペースの IDE のユーザーインターフェースですが、開発されるアプリケーションの Web UI である可能性もあります。これにより、開発プロセスでの開発者のアプリケーションとの対話が可能になります。
ワークスペースをユーザーが使用できるようにするためのサポートされる方法は、ストラテジー と呼ばれます。このストラテジーは、ワークスペースコンポーネントに新しいサブドメインが作成されるかどうか、およびこれらのコンポーネントを利用可能にするホストを定義します。
CodeReady Workspaces は以下をサポートします。
-
Multi-host
ストラテジー single-host
ストラテジー-
gateway
サブタイプの使用
-
4.6.2.1. Multi-host ストラテジー
Multi-host ストラテジーでは、各ワークスペースコンポーネントには、CodeReady Workspaces サーバーに設定された主なドメインの新規サブドメインが割り当てられます。これはデフォルトのストラテジーです。
このストラテジーは、コンポーネントへの URL に存在するいずれのパスもコンポーネントごとにそのまま受信されるため、コンポーネントのデプロイメントの点で最も理解しやすいストラテジーです。
Transport Layer Security (TLS) プロトコルの使用によってセキュリティーが保護された CodeReady Workspaces サーバーで、各ワークスペースの各コンポーネントに新規のサブドメインを作成するには、CodeReady Workspaces デプロイメントが機能するため、このようなサブドメインすべてについてワイルドカード証明書が利用可能である必要があります。
4.6.2.2. 単一ホストストラテジー
single-host ストラテジーでは、すべてのワークスペースが主な CodeReady Workspaces サーバードメインのサブパスにデプロイされます。
これは、すべてのワークスペースコンポーネントのデプロイメントに対応する CodeReady Workspaces サーバーの単一の証明書のみが必要となるため、TLS で保護される CodeReady Workspaces サーバーの場合に便利です。
単一ホストストラテジーには、異なる実装方法が設定された 2 つのサブタイプがあります。最初のサブタイプの名前は native
です。このストラテジーは Kubernetes でデフォルトで利用できますが、サーバーの公開に Ingress を使用するため、OpenShift では利用できません。gateway
という名前の 2 つ目のサブタイプは OpenShift の両方で機能し、内部で実行されるリバースプロキシーのある特別な Pod を使用して要求をルーティングします。
gateway
single-host ストラテジーでは、クラスターのネットワークポリシーを設定して、ワークスペースのサービスが (通常は CodeReady Workspaces プロジェクトの) リバースプロキシー Pod から到達できるように設定する必要があります。通常、これらは異なるプロジェクトに置かれます。
devfile に指定されたエンドポイントを公開する方法を定義するには、CodeReady Workspaces インスタンスの CHE_INFRA_KUBERNETES_SINGLEHOST_WORKSPACE_DEVFILE__ENDPOINT__EXPOSURE
環境変数を定義します。この環境変数は、single-host サーバーストラテジーでのみ有効であり、すべてのユーザーのすべてのワークスペースに適用できます。
4.6.2.2.1. devfile エンドポイント:single-host
CHE_INFRA_KUBERNETES_SINGLEHOST_WORKSPACE_DEVFILE__ENDPOINT__EXPOSURE: 'single-host'
この単一ホスト設定は、サブパスのエンドポイントを公開します(例:https://<che-host>/serverihzmuqqc/go-cli-server-8080
)。これにより、公開されるコンポーネントおよびユーザーアプリケーションが制限されます。サーバーを参照するサーバー側で生成される絶対 URL は機能しません。これは、サーバーが、コンポーネントまたはユーザーアプリケーションから一意の URL パスのプレフィックスを非表示にするパスが書き換えられるリバースプロキシーの背後にあるためです。
たとえば、ユーザーが仮の \https://codeready-<openshift_deployment_name>.<domain_name>/component-prefix-djh3d/app/index.php
URL にアクセスする場合に、アプリケーションには要求が https://internal-host/app/index.php
に送信されるように表示されます。アプリケーションが UI で生成する URL でホストを使用している場合、内部ホストが外部に表示されるホストとは異なるため、これは機能しません。ただし、アプリケーションが URL に絶対パスを使用している場合 (上記の場合は /app/index.php
)、この URL は依然として機能しません。これは、外部ではこの URL はコンポーネント固有のプレフィックスがなく、アプリケーションを参照しないためです。
そのため、UI で相対 URL を使用するアプリケーションのみが、single-host ワークスペース公開ストラテジーで機能します。
4.6.2.2.2. devfile エンドポイント: multi-host
CHE_INFRA_KUBERNETES_SINGLEHOST_WORKSPACE_DEVFILE__ENDPOINT__EXPOSURE: 'multi-host'
この単一ホスト設定は、サブドメインのエンドポイントを公開します(例:http://serverihzmuqqc-go-cli-server-8080.<che-host
)。これらのエンドポイントは、セキュアでない HTTP ポートで公開されます。gateway
単一ホストの設定でも、専用の Ingress または Route がこのエンドポイントに使用されます。
この設定により、CodeReady Workspaces が TLS で設定されている場合に、エディターページに直接表示されるプレビューの使用が制限されます。https
ページはセキュリティーが保護されたエンドポイントとの通信のみを許可するため、ユーザーは別のブラウザータブでアプリケーションのプレビューを開く必要があります。
4.6.3. セキュリティーに関する考慮事項
本セクションでは、さまざまな CodeReady Workspaces ワークスペースの公開ストラテジーを使用するセキュリティー上の影響について説明します。
本セクションのすべてのセキュリティー関連の考慮事項は、マルチユーザーモードの CodeReady Workspaces のみに適用されます。単一ユーザーモードは、セキュリティー制限を課しません。
4.6.3.1. JSON Web トークン (JWT) プロキシー
すべての CodeReady Workspaces プラグイン、エディター、およびコンポーネントには、それらにアクセスするユーザーの認証が必要になる場合があります。この認証は、その設定に基づいて対応するコンポーネントのリバースプロキシーとして機能し、コンポーネントの代わりに認証を実行する JSON Web トークン (JWT) プロキシーを使用して実行されます。
認証では、CodeReady Workspaces サーバーの特別なページへのリダイレクトを使用して、ワークスペースおよびユーザー固有の認証トークン (ワークスペースアクセストークン) を最初に要求されたページに伝播します。
JWT プロキシーは、受信要求の以下の場所からのワークスペースアクセストークンを受け入れます。
- トークンクエリーパラメーター
- bearer-token 形式の Authorization ヘッダー
-
access_token
クッキー
4.6.3.2. セキュリティーが保護されたプラグインおよびエディター
CodeReady Workspaces ユーザーはワークスペースのプラグインやワークスペースのエディター (Che-Theia など) のセキュリティーを保護する必要はありません。これは、JWT プロキシー認証はユーザーに透過的であり、meta.yaml
記述子のプラグインまたはエディター定義によって制御されるためです。
4.6.3.3. セキュリティー保護されたコンテナーイメージコンポーネント
コンテナーイメージのコンポーネントは、必要に応じて devfile の作成者側が CodeReady Workspaces が提供する認証を要求するカスタムエンドポイントを定義できます。この認証は、エンドポイントの 2 つのオプション属性を使用して設定されます。
-
secure
- CodeReady Workspaces サーバーに対し、エンドポイントの前に JWT プロキシーを配置するよう指示するブール値属性。このエンドポイントでは、「JSON Web トークン (JWT) プロキシー」 で説明されているいくつかの方法のいずれかを使用して、ワークスペースのアクセストークンが提供される必要があります。属性のデフォルト値はfalse
です。 -
cookiesAuthEnabled
- 「JSON Web トークン (JWT) プロキシー」 で説明されているように、CodeReady Workspaces サーバーに対し、現在のユーザー認証の非認証要求を自動的にリダイレクトするように指示するブール値属性。この属性をtrue
に設定すると、CSRF (クロスサイトリクエストフォージェリー) 攻撃が可能になり、セキュリティー上の影響が発生します。属性のデフォルト値はfalse
です。
4.6.3.4. クロスサイトリクエストフォージェリー攻撃
cookie ベースの認証に、JWT プロキシーによってセキュリティーが保護されたアプリケーションは CSRF (Cross-site Request forgery) 攻撃の対象となりやすくする場合があります。アプリケーションに脆弱性がないことを確認するには、CSRF (Cross-site request forgery) についての Wikipedia ページやその他のリソースを参照してください。
4.6.3.5. フィッシング攻撃
JWT プロキシーの背後にあるサービスとホストを共有するワークスペースを使用してクラスター内に Ingress またはルートを作成できる攻撃者は、サービスの作成やとくに偽造された Ingress オブジェクトの作成が可能になる場合があります。このようなサービスまたは Ingress がワークスペースで以前に認証されている適切なユーザーによってアクセスされる際に、攻撃者は偽の URL への適切なユーザーのブラウザーが送信する cookie からワークスペースアクセストークンを盗むことができる可能性があります。この攻撃ベクトルを排除するには、Ingress のホストの設定を禁止するように OpenShift を設定します。
4.7. ワークスペース nodeSelector の設定
このセクションでは、CodeReady Workspaces ワークスペースの Pod について nodeSelector
を設定する方法を説明します。
手順
CodeReady Workspaces は CHE_WORKSPACE_POD_NODE__SELECTOR
環境変数を使用して nodeSelector
を設定します。この変数には、nodeSelector ルールを形成するためにコンマ区切りの key=value
ペアのセットが含まれるか、またはこれを無効にする NULL
が含まれる場合があります。
CHE_WORKSPACE_POD_NODE__SELECTOR=disktype=ssd,cpu=xlarge,[key=value]
nodeSelector
は CodeReady Workspaces のインストール時に設定する必要があります。これにより、既存のワークスペース PVC および Pod が異なるゾーンにスケジュールされることによってボリュームのアフィニティーの競合が生じ、既存のワークスペースが実行できなくなることを防ぐことができます。
大規模なマルチゾーンクラスターの異なるゾーンに Pod および PVC がスケジュールされないようにするには、PVC の作成プロセスを調整する追加の StorageClass
オブジェクトを作成します(allowedTopologies
フィールドに注目してください)。
新規に作成された StorageClass
の名前を、CHE_INFRA_KUBERNETES_PVC_STORAGE__CLASS__NAME
環境変数で CodeReady Workspaces に指定します。この変数のデフォルトの空の値の場合、CodeReady Workspaces に対し、クラスターのデフォルト StorageClass
を使用するように指示します。
4.8. Red Hat CodeReady Workspaces サーバーのホスト名の設定
この手順では、カスタムホスト名を使用するように Red Hat CodeReady Workspaces を設定する方法を説明します。
前提条件
-
oc
ツールが利用できる。 - 証明書とプライベートキーファイルが生成されます。
プライベートキーと証明書のペアを生成するには、他の Red Hat CodeReady Workspaces ホストの場合と同じ CA を使用する必要があります。
DNS プロバイダーに対し、カスタムホスト名をクラスター Ingress を参照するよう要求します。
手順
CodeReady Workspaces のプロジェクトを事前に作成します。
$ oc create project openshift-workspaces
TLS Secret を作成します。
$ oc create secret TLS ${secret} \ 1 --key ${key_file} \ 2 --cert ${cert_file} \ 3 -n openshift-workspaces
カスタムリソースに以下の値を設定します。
spec: server: cheHost: <hostname> 1 cheHostTLSSecret: <secret> 2
CodeReady Workspaces がすでにデプロイされており、CodeReady Workspaces を新しい CodeReady Workspaces ホスト名を使用するように再設定する必要がある場合には、RH-SSO を使用してログインし、
CodeReady Workspaces
レルムでcodeready-public
クライアントを選択し、CodeReady Workspaces ホスト名の値でValidate Redirect URIs
およびWeb Origins
フィールドを更新します。RH-SSO にログインするには、RH-SSO へのログイン手順に従います。
4.9. OpenShift Route のラベルの設定
この手順では、OpenShift Route のラベルを、オブジェクトを整理し、分類 (スコープおよび選択)するように設定する方法を説明します。
前提条件
-
oc
ツールが利用できる。 - OpenShift で実行される CodeReady Workspaces のインスタンス。
コンマを使用して、ラベルを区切ります: key1=value1,key2=value2
手順
OpenShift Route のラベルを設定するには、以下のコマンドを使用してカスタムリソースを更新します。
$ oc patch checluster codeready-workspaces -n openshift-workspaces --type=json -p \ '[{"op": "replace", "path": "/spec/server/cheServerIngress/labels", '\ '"value": "<labels for a codeready-workspaces server ingress>"}]' $ oc patch checluster codeready-workspaces -n openshift-workspaces --type=json -p \ '[{"op": "replace", "path": "/spec/auth/identityProviderIngress/labels", '\ '"value": "<labels for a RH-SSO ingress>"}]' $ oc patch checluster codeready-workspaces -n openshift-workspaces --type=json -p \ '[{"op": "replace", "path": "/spec/server/pluginRegistryIngress/labels", '\ '"value": "<labels for a plugin registry ingress>"}]' $ oc patch checluster codeready-workspaces -n openshift-workspaces --type=json -p \ '[{"op": "replace", "path": "/spec/server/devfileRegistryIngress/labels",'\ '"value": "<labels for a devfile registry ingress>"}]'
4.10. OpenShift Route のラベルおよびドメインがルーターのシャード化と連携する設定
以下の手順では、OpenShift Route が ルーターのシャード化 と連携し、既存のインスタンスでこれを行う方法や、既存のインスタンス、またはインストールする方法について説明します。
前提条件
-
oc
およびcrwctl
ツールが利用できる。
手順
新規の OperatorHub インストールの場合:
- OpenShift Container Platform を使用して Red Hat CodeReady Workspaces クラスターを入力し、CheCluster カスタムリソース(CR)を作成します。Red Hat CodeReady Workspaces Operator のインスタンスの作成 を参照してください。
以下の値を codeready-workspaces カスタムリソース(CR)に設定します。
spec: server: devfileRegistryRoute: labels: <labels> 1 domain: <domain> 2 pluginRegistryRoute: labels: <labels> 3 domain: <domain> 4 cheServerRoute: labels: <labels> 5 domain: <domain> 6 customCheProperties: CHE_INFRA_OPENSHIFT_ROUTE_LABELS: <labels> 7 CHE_INFRA_OPENSHIFT_ROUTE_HOST_DOMAIN__SUFFIX: <domain> 8 auth: identityProviderRoute: labels: <labels> 9 domain: <domain> 10
新規の
crwctl
インストールの場合は、以下のようになります。以下を使用して
crwctl
インストールを設定します。$ crwctl server:deploy --che-operator-cr-patch-yaml=patch.yaml ...
patch.yaml
には以下を含める必要があります。spec: server: devfileRegistryRoute: labels: <labels> 1 domain: <domain> 2 pluginRegistryRoute: labels: <labels> 3 domain: <domain> 4 cheServerRoute: labels: <labels> 5 domain: <domain> 6 customCheProperties: CHE_INFRA_OPENSHIFT_ROUTE_LABELS: <labels> 7 CHE_INFRA_OPENSHIFT_ROUTE_HOST_DOMAIN__SUFFIX: <domain> 8 auth: identityProviderRoute: labels: <labels> 9 domain: <domain> 10
既存の CodeReady Workspaces インストールの場合:
oc
ツールを使用してcodeready-workspaces
CR を更新します。$ oc patch checluster codeready-workspaces -n openshift-workspaces --type=json -p \ '[{"op": "replace", "path": "/spec/server/cheServerRoute/labels",'\ '"value": "<labels for a codeready-workspaces server route>"}]'
$ oc patch checluster codeready-workspaces -n openshift-workspaces --type=json -p \ '[{"op": "replace", "path": "/spec/server/cheServerRoute/domain",'\ '"value": "<ingress domain>"}]'
$ oc patch checluster codeready-workspaces -n openshift-workspaces --type=json -p \ '[{"op": "replace", "path": "/spec/server/pluginRegistryRoute/labels", '\ '"value": "<labels for a plugin registry route>"}]'
$ oc patch checluster codeready-workspaces -n openshift-workspaces --type=json -p \ '[{"op": "replace", "path": "/spec/auth/identityProviderRoute/domain", '\ '"value": "<ingress domain>"}]'
$ oc patch checluster codeready-workspaces -n openshift-workspaces --type=json -p \ '[{"op": "replace", "path": "/spec/server/pluginRegistryRoute/domain", '\ '"value": "<ingress domain>"}]'
$ oc patch checluster codeready-workspaces -n openshift-workspaces --type=json -p \ '[{"op": "replace", "path": "/spec/server/devfileRegistryRoute/labels", '\ '"value": "<labels for a devfile registry route>"}]'
$ oc patch checluster codeready-workspaces -n openshift-workspaces --type=json -p \ '[{"op": "replace", "path": "/spec/server/devfileRegistryRoute/domain", '\ '"value": "<ingress domain>"}]'
$ oc patch checluster codeready-workspaces -n openshift-workspaces --type=json -p \ '[{"op": "replace", "path": "/spec/server/customCheProperties/CHE_INFRA_OPENSHIFT_ROUTE_LABELS", '\ '"value": "<labels for a workspace routes>"}]'
$ oc patch checluster codeready-workspaces -n openshift-workspaces --type=json -p \ '[{"op": "replace", "path": "/spec/server/customCheProperties/CHE_INFRA_OPENSHIFT_ROUTE_HOST_DOMAIN__SUFFIX", '\ '"value": "<ingress domain>"}]'
4.11. 自己署名証明書を使用した Git リポジトリーをサポートする CodeReady Workspaces のデプロイ
この手順では、自己署名証明書を使用するリポジトリーで Git 操作のサポートのあるデプロイメント用に CodeReady Workspaces を設定する方法を説明します。
前提条件
- Git バージョン 2 以降
手順
自己署名の Git リポジトリーのサポートの設定。
Git サーバーの詳細情報を使用して新規の configMap を作成します。
$ oc create configmap che-git-self-signed-cert --from-file=ca.crt \ --from-literal=githost=<host:port> -n {prod-namespace}
このコマンドで、
<host:port>
を Git サーバーの HTTPS 接続のホストおよびポートに置き換えます (オプション)。注記-
githost
を指定しないと、指定された証明書がすべての HTTPS リポジトリーに使用されます。 -
証明書ファイルの名前は
ca.crt
にする必要があります。 -
証明書ファイルは、通常、以下のような Base64 ASCII ファイルとして保存されます。
.pem
,.crt
,.ca-bundle
.また、これらはバイナリーデータとしてエンコードすることもできます (例:.cer
)。証明書ファイルを保持するすべてのSecrets
は、バイナリーデータ証明書ではなく、Base64 ASCII 証明書を使用する必要があります。
-
ワークスペースの公開ストラテジーを設定します。
gitSelfSignedCert
プロパティーを更新します。これを行うには、以下を実行します。$ oc patch checluster codeready-workspaces -n openshift-workspaces --type=json \ -p '[{"op": "replace", "path": "/spec/server/gitSelfSignedCert", "value": true}]'
新規ワークスペースを作成および開始します。ワークスペースによって使用されるすべてのコンテナーは、自己署名証明書のあるファイルを含む特殊なボリュームをマウントします。リポジトリーの
.git/config
ファイルには、Git サーバーホスト (その URL) とhttp
セクションの証明書へのパスについての情報が含まれます(git-configに関する Git ドキュメントを参照してください)。以下に例を示します。[http "https://10.33.177.118:3000"] sslCAInfo = /etc/che/git/cert/ca.crt
4.12. ストレージクラスを使用した CodeReady Workspaces のインストール
設定済みのインフラストラクチャーストレージを使用するように CodeReady Workspaces を設定するには、ストレージクラスを使用して CodeReady Workspaces をインストールします。これは、ユーザーがデフォルト以外のプロビジョナーによって提供される永続ボリュームをバインドする必要がある場合にとくに役立ちます。これを実行するには、ユーザーは CodeReady Workspaces のデータを節約するためにこのストレージをバインドし、そのストレージのパラメーターを設定します。これらのパラメーターは、以下を決定します。
- 特殊なホストパス
- ストレージ容量
- ボリューム mod
- マウントオプション
- ファイルシステム
- アクセスモード
- ストレージタイプ
- その他多数
CodeReady Workspaces には、データの格納に永続ボリュームが必要な 2 つのコンポーネントがあります。
- PostgreSQL データベース。
-
CodeReady Workspaces ワークスペース。CodeReady Workspaces ワークスペースは、ボリューム (例:
/projects
ボリューム) を使用してソースコードを保存します。
CodeReady Workspaces ワークスペースのソースコードは、ワークスペースが一時的ではない場合にのみ永続ボリュームに保存されます。
永続ボリューム要求 (PVC)のファクト:
- CodeReady Workspaces はインフラストラクチャーに永続ボリュームを作成しません。
- CodeReady Workspaces は永続ボリューム要求 (PVC)を使用して永続ボリュームをマウントします。
CodeReady Workspaces サーバーは永続ボリューム要求を作成します。
ユーザーは、CodeReady Workspaces PVC でストレージクラス機能を使用するために、CodeReady Workspaces 設定でストレージクラス名を定義します。ストレージクラスを使用すると、ユーザーは追加のストレージパラメーターを使用してインフラストラクチャーストレージを柔軟に設定します。クラス名を使用して、静的にプロビジョニングされた永続ボリュームを CodeReady Workspaces PVC にバインドすることもできます。
手順
CheCluster カスタムリソース定義を使用してストレージクラスを定義します。
ストレージクラス名を定義します。
これを行うには、以下のいずれかの方法を使用します。
server:deploy
コマンドの引数の使用PostgreSQL PVC のストレージクラス名を指定します。
--postgres-pvc-storage-class-name
フラグを指定してcrwctl
server:deploy
コマンドを使用します。$ crwctl server:deploy -m -p minikube -a operator --postgres-pvc-storage-class-name=postgress-storage
CodeReady Workspaces ワークスペースのストレージクラス名を指定します。
--workspace-pvc-storage-class-name
フラグを指定してserver:deploy
コマンドを使用します。$ crwctl server:deploy -m -p minikube -a operator --workspace-pvc-storage-class-name=workspace-storage
CodeReady Workspaces ワークスペースでは、ワークスペースの PVC ストラテジーに応じてストレージクラスの名前の動作が異なります。
注記Postgres-pvc-storage-class-name=postgress-storage
およびworkspace-pvc-storage-class-name
は、Operator インストーラーおよび Helm インストーラーで機能します。
カスタムリソース YAML ファイルを使用してストレージクラス名を定義します。
- CodeReady Workspaces インストールに定義されたカスタムリソースで YAML ファイルを作成します。
フィールド
spec#storage#postgresPVCStorageClassName
およびspec#storage#workspacePVCStorageClassName
を定義します。apiVersion: org.eclipse.che/v1 kind: CheCluster metadata: name: codeready-workspaces spec: # ... storage: # ... # keep blank unless you need to use a non default storage class for PostgreSQL PVC postgresPVCStorageClassName: 'postgres-storage' # ... # keep blank unless you need to use a non default storage class for workspace PVC(s) workspacePVCStorageClassName: 'workspace-storage' # ...
カスタムリソースで codeready-workspaces サーバーを起動します。
$ crwctl server:deploy -m -p minikube -a operator --che-operator-cr-yaml=/path/to/custom/che/resource/org_v1_che_cr.yaml
CodeReady Workspaces を、ワークスペースを 1 つ目の永続ボリュームに、PostreSQL データベースを 2 つ目の永続ボリュームに保存するように設定します。
カスタムリソース YAML ファイルを変更します。
-
pvcStrategy
をcommon
に設定します。 - 単一のプロジェクトでワークスペースを開始するように CodeReady Workspaces を設定します。
-
postgresPVCStorageClassName
およびworkspacePVCStorageClassName
のストレージクラス名を定義します。 YAML ファイルの例:
apiVersion: org.eclipse.che/v1 kind: CheCluster metadata: name: codeready-workspaces spec: server: # ... workspaceNamespaceDefault: 'che' # ... storage: # ... # Defaults to common pvcStrategy: 'common' # ... # keep blank unless you need to use a non default storage class for PostgreSQL PVC postgresPVCStorageClassName: 'postgres-storage' # ... # keep blank unless you need to use a non default storage class for workspace PVC(s) workspacePVCStorageClassName: 'workspace-storage' # ...
-
カスタムリソースで codeready-workspaces サーバーを起動します。
$ crwctl server:deploy -m -p minikube -a operator --che-operator-cr-yaml=/path/to/custom/che/resource/org_v1_che_cr.yaml
クラス名を使用して静的にプロビジョニングされたボリュームをバインドします。
PostgreSQL データベースの永続ボリュームを定義します。
# che-postgres-pv.yaml apiVersion: v1 kind: PersistentVolume metadata: name: postgres-pv-volume labels: type: local spec: storageClassName: postgres-storage capacity: storage: 1Gi accessModes: - ReadWriteOnce hostPath: path: "/data/che/postgres"
CodeReady Workspaces ワークスペースの永続ボリュームを定義します。
# che-workspace-pv.yaml apiVersion: v1 kind: PersistentVolume metadata: name: workspace-pv-volume labels: type: local spec: storageClassName: workspace-storage capacity: storage: 10Gi accessModes: - ReadWriteOnce hostPath: path: "/data/che/workspace"
- 2 つの永続ボリュームをバインドします。
$ oc apply -f che-workspace-pv.yaml -f che-postgres-pv.yaml
ボリュームの有効なファイルパーミッションを指定する必要があります。これは、ストレージクラスの設定を使用して実行することも、手動で実行することもできます。パーミッションを手動で定義するには、storageClass#mountOptions
uid
と gid
を定義します。PostgreSQL ボリュームには uid=26
と gid=26
が必要です。
4.13. 信頼できない TLS 証明書の CodeReady Workspaces へのインポート
CodeReady Workspaces コンポーネントの外部通信は、デフォルトでは TLS で暗号化されます。CodeReady Workspaces コンポーネントのプロキシー、ソースコードリポジトリー、アイデンティティープロバイダーなどの外部サービスとの通信では、TLS を使用する必要がある場合があります。これらの通信では、信頼できる認証局が署名する TLS 証明書を使用する必要があります。
CodeReady Workspaces コンポーネントまたは外部サービスで使用される証明書が信頼できない CA によって署名される場合、CodeReady Workspaces インストールで CA 証明書をインポートする必要があるため、すべての CodeReady Workspaces コンポーネントがそれらを信頼できる CA によって署名されているものと見なす必要があります。
この追加が必要になる可能性のある典型的なケースは以下のとおりです。
- 基礎となる OpenShift クラスターが信頼されていない CA によって署名される TLS 証明書を使用する場合
- CodeReady Workspaces サーバーまたはワークスペースコンポーネントが、信頼できない CA で署名された TLS 証明書を使用する RH-SSO や Git サーバーなどの外部サービスに接続する場合
CodeReady Workspaces は、CodeReady Workspaces namespace のラベルが付いた ConfigMap を TLS 証明書のソースとして使用します。ConfigMap には、それぞれが任意の数の証明書を持つキーの任意の数を指定できます。
クラスターに、クラスター全体のプロキシー設定を使用して追加されたクラスター全体の信頼される CA 証明書が含まれる場合、CodeReady Workspaces Operator はそれらを検知し、それらをこの ConfigMap に自動的に挿入します。
-
CodeReady Workspaces は、ConfigMap に自動的に
config.openshift.io/inject-trusted-cabundle="true"
ラベルを付けます。 -
このアノテーションに基づいて、OpenShift は ConfigMap の
ca-bundle.crt
キー内にクラスター全体で信頼される CA 証明書を自動的に挿入します。
一部の CodeReady Workspaces コンポーネントには、エンドポイントを信頼するための完全な証明書チェーンが必要です。クラスターが中間証明書で設定されている場合には、チェーン全体(自己署名ルートを含む)を CodeReady Workspaces に追加する必要があります。
4.13.1. 新規 CA 証明書の CodeReady Workspaces への追加
本書は、CodeReady Workspaces のインストール前や、CodeReady Workspaces がすでにインストールされ、実行されている場合に使用できます。
2.5.1 より前の CodeReady Workspaces バージョンを使用している場合は、本書で追加の TLS 証明書を適用する方法について参照してください。
前提条件
-
oc
ツールが利用できる。 - CodeReady Workspaces の namespace が存在する。
手順
インポートする必要のある証明書をローカルファイルシステムに保存します。
注意-
証明書ファイルは、通常、
.pem
、.crt
、.ca-bundle
などの Base64 ASCII ファイルとして保存されます。ただし、それらにはバイナリーエンコード (例:.cer
ファイル) を使用することもできます。証明書ファイルを保持するすべてのシークレットでは、バイナリーでエンコードされる証明書ではなく、Base64 ASCII 証明書を使用する必要があります。 CodeReady Workspaces はすでに予約済みのファイル名を使用して証明書を ConfigMap に自動的に挿入するため、以下の予約済みのファイル名を使用して証明書を保存しないようにしてください。
-
ca-bundle.crt
-
ca.crt
-
-
証明書ファイルは、通常、
必要な TLS 証明書で新規 ConfigMap を作成します。
$ oc create configmap custom-certs --from-file=<bundle-file-path> -n=openshift-workspaces
複数のバンドルを適用するには、上記のコマンドに別の
--from-file=<bundle-file-path>
フラグを追加します。または、別の ConfigMap を作成することもできます。app.kubernetes.io/part-of=che.eclipse.org
とapp.kubernetes.io/component=ca-bundle
の両方のラベルを使用して作成した ConfigMap にラベルを付けます。$ oc label configmap custom-certs app.kubernetes.io/part-of=che.eclipse.org app.kubernetes.io/component=ca-bundle -n <crw-namespace-name>
- CodeReady Workspaces がデプロイされていない場合は、CodeReady Workspaces をデプロイします。デプロイしない場合は、CodeReady Workspaces コンポーネントのロールアウトが完了するまで待機します。実行中のワークスペースがある場合は、変更を有効にするためにそれらを再起動する必要があります。
4.13.2. CodeReady Workspaces のインストールレベルでの検証
証明書の追加後に、予想通りに機能しない場合は、以下の一覧を確認してください。
CodeReady Workspaces Operator デプロイメントの場合、
CheCluster
に適切なコンテンツと共にラベルが付けられた ConfigMap が含まれる namespace。$ oc get cm --selector=app.kubernetes.io/component=ca-bundle,app.kubernetes.io/part-of=che.eclipse.org -n openshift-workspaces
また、ConfigMap の内容を確認するには、以下を実行します。
$ {orch-cli} get cm __<name>__ -n {prod-namespace} -o yaml
CodeReady Workspaces Pod ボリューム一覧には、
ca-certs-merged
ConfigMap をデータソースとして使用するボリュームが含まれます。CodeReady Workspaces Pod のボリュームの一覧を取得するには、以下を実行します。$ oc get pod -o json <codeready-workspaces-pod-name> -n openshift-workspaces | jq .spec.volumes
CodeReady Workspaces は、証明書を CodeReady Workspaces サーバーコンテナーのフォルダー
/public-certs/
にマウントします。このコマンドは、そのフォルダー内のファイルの一覧を返します。$ oc exec -t <codeready-workspaces-pod-name> -n openshift-workspaces -- ls /public-certs/
CodeReady Workspaces サーバーログに、設定された CodeReady Workspaces 証明書を含む、Java トラストストアに追加されたすべての証明書についての行があります。
$ oc logs <codeready-workspaces-pod-name> -n openshift-workspaces
CodeReady Workspaces サーバーの Java トラストストアに証明書が含まれる。証明書の SHA1 フィンガープリントは、以下のコマンドで返されるトラストストアに含まれる証明書の SHA1 の一覧にあります。
$ oc exec -t <codeready-workspaces-pod-name> -n openshift-workspaces -- keytool -list -keystore /home/jboss/cacerts Your keystore contains 141 entries (...)
ローカルファイルシステムの証明書の SHA1 ハッシュを取得するには、以下のコマンドを実行します。
$ openssl x509 -in <certificate-file-path> -fingerprint -noout SHA1 Fingerprint=3F:DA:BF:E7:A7:A7:90:62:CA:CF:C7:55:0E:1D:7D:05:16:7D:45:60
4.13.3. ワークスペースレベルでの検証
- ワークスペースを起動し、これが作成された OpenShift プロジェクトを取得し、これが起動するのを待機します。
以下のコマンドを使用してワークスペース Pod の名前を取得します。
$ oc get pods -o=jsonpath='{.items[0].metadata.name}' -n <workspace namespace> | grep '^workspace.*'
以下のコマンドを使用して、ワークスペース Pod の Theia IDE コンテナーの名前を取得します。
$ oc get -o json pod <workspace pod name> -n <workspace namespace> | \ jq -r '.spec.containers[] | select(.name | startswith("theia-ide")).name'
ワークスペース namespace 内に作成されている必要がある
ca-certs
ConfigMap を検索します。$ oc get cm ca-certs <workspace namespace>
ca-certs
ConfigMap のエントリーに事前に追加した追加エントリーがすべて含まれていることを確認します。さらに、予約されているca-bundl.crt
エントリーが含まれる場合があります。$ oc get cm ca-certs -n <workspace namespace> -o json | jq -r '.data | keys[]' ca-bundle.crt source-config-map-name.data-key.crt
ca-certs
ConfigMap がワークスペース Pod のボリュームとして追加されていることを確認します。$ oc get -o json pod <workspace pod name> -n <workspace namespace> | \ jq '.spec.volumes[] | select(.configMap.name == "ca-certs")' { "configMap": { "defaultMode": 420, "name": "ca-certs" }, "name": "che-self-signed-certs" }
ボリュームがコンテナー (とくに Theia IDE コンテナー) にマウントされていることを確認します。
$ oc get -o json pod <workspace pod name> -n <workspace namespace> | \ jq '.spec.containers[] | select(.name == "<theia ide container name>").volumeMounts[] | select(.name == "che-self-signed-certs")' { "mountPath": "/public-certs", "name": "che-self-signed-certs", "readOnly": true }
Theia IDE コンテナーの
/public-certs
フォルダーを検査し、その内容がca-certs
ConfigMap のエントリーの一覧と一致することを確認します。$ oc exec <workspace pod name> -c <theia ide container name> -n <workspace namespace> -- ls /public-certs ca-bundle.crt source-config-map-name.data-key.crt
4.14. コンポーネント間の通信での外部 DNS 名と内部 DNS 名間の切り替え
デフォルトでは、新規の CodeReady Workspaces デプロイメントは、CodeReady Workspaces サーバー、RH-SSO、レジストリー間の通信に OpenShift サービス DNS 名を使用します。これは以下に役立ちます。
- プロキシー、証明書、およびファイアウォールの問題の回避
- トラフィックの高速化
このタイプの通信は、OpenShift Route クラスターのホスト名を使用するコンポーネント間の通信の外部の方法に代わるものです。以下の状況では、OpenShift 内部 DNS 名の使用はサポートされません。コンポーネント間の通信で内部クラスターのホスト名の使用を無効にすると、外部 OpenShift Route を使用した通信が有効になります。
OpenShift における内部のコンポーネント間通信の制限
- CodeReady Workspaces コンポーネントは、マルチクラスター OpenShift 環境全体にデプロイされます。
- OpenShift NetworkPolicies は namespace 間の通信を制限します。
以下のセクションでは、OpenShift Route の外部のコンポーネント間の通信を有効/無効にする方法を説明します。
前提条件
-
oc
ツールが利用できる。 - OpenShift で実行される CodeReady Workspaces のインスタンス。
手順
コンポーネント間の通信方法を外部と内部で切り替えるには、カスタムリソース (CR) に対する更新が必要です。
コンポーネント間の通信で外部 OpenShift ルートを使用するには、以下を実行します。
$ oc patch checluster codeready-workspaces -n openshift-workspaces --type=json -p \ '[{"op": "replace", "path": "/spec/server/useInternalClusterSVCNames", "value": false}]'
コンポーネント間の通信で内部 OpenShift DNS 名を使用するには、以下を実行します。
$ oc patch checluster codeready-workspaces -n openshift-workspaces --type=json -p \ '[{"op": "replace", "path": "/spec/server/useInternalClusterSVCNames", "value": true}]'
4.15. Red Hat CodeReady Workspaces ログインページの RH-SSO codeready-workspaces-username-readonly テーマの設定
以下の手順は、OpenShift OAuth サービスが有効にされているすべての CodeReady Workspaces インスタンスに関連します。
事前に作成した namespace のユーザーが Red Hat CodeReady Workspaces ダッシュボードに初めてログインする際に、ユーザーがアカウント情報を更新できるページが表示されます。ユーザー名を変更することはできますが、OpenShift ユーザー名に一致しないユーザー名を選択すると、ユーザーのワークスペースは実行されません。これは、CodeReady Workspaces が存在しない namespace、ユーザーの OpenShift ユーザー名から派生する名前の使用を試行し、ワークスペースの作成を試行することによって生じます。これを防ぐには、RH-SSO にログインし、テーマの設定を変更します。
4.15.1. RH-SSO へのログイン
以下の手順では、OpenShift プラットフォームのルートとして機能する RH-SSO にログインする方法を説明します。RH-SSO にログインするには、ユーザーは RH-SSO URL とユーザーの認証情報を最初に取得する必要があります。
前提条件
-
oc
ツールがインストールされている。 -
oc
ツールを使用して OpenShift クラスターにログインしている。
手順
ユーザーの RH-SSO ログインを取得します。
oc get secret che-identity-secret -n openshift-workspaces -o json | jq -r '.data.user' | base64 -d
ユーザーの RH-SSO パスワードを取得します。
oc get secret che-identity-secret -n openshift-workspaces -o json | jq -r '.data.password' | base64 -d
RH-SSO URL を取得します。
oc get ingress -n openshift-workspaces -l app=che,component=keycloak -o 'custom-columns=URL:.spec.rules[0].host' --no-headers
- ブラウザーで URL を開き、取得したログインとパスワードを使用して RH-SSO にログインします。
4.15.2. RH-SSO codeready-workspaces-username-readonly
テーマの設定
前提条件
- OpenShift で実行される CodeReady Workspaces のインスタンス。
- RH-SSO サービスにログインしている。
手順
ユーザー名を変更したら、Login Theme オプションを readonly
に設定します。
左側のメイン Configure メニューで、Realm Settings を選択します。
- Themes タブに移動します。
-
Login Theme フィールドで
codeready-workspaces-username-readonly
オプションを選択し、Save ボタンをクリックして変更を適用します。
4.16. シークレットをファイルまたは環境変数として Red Hat CodeReady Workspaces コンテナーにマウントする
シークレットは、ユーザー名、パスワード、認証トークン、設定などの機密データを暗号化された形式で保存する OpenShift オブジェクトです。
ユーザーは、機密データが含まれる OpenShift シークレットを Red Hat CodeReady Workspaces コンテナーにマウントできます。
- ファイル
- 環境変数
マウントプロセスでは、標準の OpenShift マウントメカニズムを使用しますが、追加のアノテーションとラベル付けが必要です。
4.16.1. シークレットをファイルとして Red Hat CodeReady Workspaces コンテナーにマウントする
前提条件
- CodeReady Workspaces の実行中のインスタンスがある。CodeReady Workspaces のインスタンスをインストールするには、「CodeReady Workspaces の インストール 」を参照してください。
手順
CodeReady Workspaces ワークスペースがデプロイされる OpenShift プロジェクトで新規の OpenShift シークレットを作成します。作成される予定のシークレットのラベルは、ラベルのセットと一致する必要があります。
-
app.kubernetes.io/part-of: che.eclipse.org
-
app.kubernetes.io/component: <DEPLOYMENT_NAME>-secret
-
<DEPLOYMENT_NAME>
は、postgres
、keycloak
、devfile-registry
、plugin-registry
、またはcodeready
のいずれかのデプロイメントです。
例4.5 以下に例を示します。
apiVersion: v1 kind: Secret metadata: name: custom-certificate labels: app.kubernetes.io/part-of: che.eclipse.org app.kubernetes.io/component: codeready-secret ...
アノテーションは、指定されるシークレットがファイルとしてマウントされていることを示す必要があります。アノテーション値を設定します。
-
che.eclipse.org/mount-as: file
- シークレットをファイルとしてマウントするように指定します。 -
che.eclipse.org/mount-path: <FOO_ENV>
- 必要なマウントパスを指定します。
apiVersion: v1 kind: Secret metadata: name: custom-certificate annotations: che.eclipse.org/mount-path: /custom-certificates che.eclipse.org/mount-as: file labels: ...
OpenShift シークレットには複数の項目が含まれる可能性があり、その名前はコンテナーにマウントされる必要なファイル名と一致する必要があります。
apiVersion: v1
kind: Secret
metadata:
name: custom-certificate
labels:
app.kubernetes.io/part-of: che.eclipse.org
app.kubernetes.io/component: codeready-secret
annotations:
che.eclipse.org/mount-path: /custom-certificates
che.eclipse.org/mount-as: file
data:
ca.crt: <base64 encoded data content here>
これにより、ca.crt
という名前のファイルが CodeReady Workspaces コンテナーの /custom-certificates
パスにマウントされます。
4.16.2. シークレットを環境変数として Red Hat CodeReady Workspaces コンテナーにマウントする
前提条件
- Red Hat CodeReady Workspaces の実行中のインスタンス。Red Hat CodeReady Workspaces のインスタンスをインストールするには、「CodeReady Workspaces の インストール 」を参照してください。
手順
CodeReady Workspaces ワークスペースがデプロイされる OpenShift プロジェクトで新規の OpenShift シークレットを作成します。作成される予定のシークレットのラベルは、ラベルのセットと一致する必要があります。
-
app.kubernetes.io/part-of: che.eclipse.org
-
app.kubernetes.io/component: <DEPLOYMENT_NAME>-secret
-
<DEPLOYMENT_NAME>
は、postgres
、keycloak
、devfile-registry
、plugin-registry
、またはcodeready
のいずれかのデプロイメントです。
例4.6 以下に例を示します。
apiVersion: v1 kind: Secret metadata: name: custom-settings labels: app.kubernetes.io/part-of: che.eclipse.org app.kubernetes.io/component: codeready-secret ...
アノテーションは、指定されるシークレットが環境変数としてマウントされていることを示す必要があります。アノテーション値を設定します。
-
che.eclipse.org/mount-as: env
- シークレットを環境変数としてマウントするように指定します。 -
che.eclipse.org/env-name: <FOOO_ENV>
- シークレットキー値のマウントに必要な環境変数名を指定します。
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
これにより、FOO_ENV
という名前の環境変数と値 myvalue
が CodeReady Workspaces コンテナーにプロビジョニングされます。
シークレットに複数のデータ項目がある場合、環境変数の名前は以下のようにそれぞれのデータキーについて指定される必要があります。
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: myvalue otherkey: othervalue
これにより、FOO_ENV
、OTHER_ENV
という名前の、myvalue
および othervalue
の値を持つ 2 つの環境変数が CodeReady Workspaces コンテナーにプロビジョニングされます。
OpenShift シークレットのアノテーション名の最大長さは 63 文字です。ここで、9 文字は、/
で終わるプレフィックス用に予約されます。これは、シークレットに使用できるキーの最大長さの制限として機能します。
4.17. Dev Workspace エンジンの有効化
この手順では、Dev Workspace エンジンを有効にして Devfile 2.0.0 ファイル形式をサポートし、既存のインスタンスやインストールを行う方法を説明します。
前提条件
-
oc
およびcrwctl
ツールが利用できる。
手順
新規の OperatorHub インストールの場合:
- OpenShift Container Platform を使用して Red Hat CodeReady Workspaces クラスターを入力し、CheCluster カスタムリソース(CR)を作成します。Red Hat CodeReady Workspaces Operator のインスタンスの作成 を参照してください。
以下の値を codeready-workspaces カスタムリソース(CR)に設定します。
spec: devWorkspace: enable: true
新規の
crwctl
インストールの場合は、以下のようになります。以下を使用して
crwctl
インストールを設定します。$ crwctl server:deploy --che-operator-cr-patch-yaml=patch.yaml ...
patch.yaml
には以下を含める必要があります。spec: devWorkspace: enable: true
既存の CodeReady Workspaces インストールの場合:
oc
ツールを使用してcodeready-workspaces
CR を更新します。$ oc patch checluster codeready-workspaces -n openshift-workspaces --type=json -p \ '[{"op": "replace", "path": "/spec/devWorkspace/enable", "value": true}]'
関連情報
本章のインストール方法は、3章CodeReady Workspaces のインストール を参照してください。
第5章 CodeReady Workspaces のアップグレード
本章では、CodeReady Workspaces インスタンスをバージョン 2.7 から CodeReady Workspaces 2.8 にアップグレードする方法を説明します。
CodeReady Workspaces インスタンスのインストールするために使用する方法により、アップグレードする方法が決まります。
5.1. OperatorHub を使用した CodeReady Workspaces のアップグレード
このセクションでは、OpenShift Web コンソールの OperatorHub から Operator を使用して、以前のマイナーバージョンからアップグレードする方法を説明します。
OperatorHub は、Automatic
および Manual
アップグレードストラテジーをサポートします。: Automatic
:: Operator の新規バージョンが公開されるとアップグレードプロセスが開始されます。Manual
:: 更新は、Operator の新規バージョンが公開されるたびに手動で承認される必要があります。
5.1.1. OperatorHub での CodeReady Workspaces の承認ストラテジーの指定
前提条件
- OpenShift インスタンスの管理者アカウント。
- OpenShift の同じインスタンス上で OperatorHub の Operator を使用してインストールされた、以前のマイナーバージョンの CodeReady Workspaces のインスタンス。
手順
- OpenShift Web コンソールを開きます。
- Operators → Installed Operators セクションに移動します。
- インストールされた Operator の一覧で Red Hat CodeReady Workspaces をクリックします。
Subscription タブに移動し、承認ストラテジーを指定します。
Approval:
Automatic
または
Approval:
Manual
5.1.2. OperatorHub での CodeReady Workspaces の手動によるアップグレード
前提条件
- OpenShift インスタンスの管理者アカウント。
- OpenShift の同じインスタンス上で OperatorHub の Operator を使用してインストールされた、以前のマイナーバージョンの CodeReady Workspaces のインスタンス。
-
サブスクリプションの承認ストラテジーは、
Manual
に設定されます。
手順
- OpenShift Web コンソールを開きます。
- Operators → Installed Operators セクションに移動します。
- インストールされた Operator の一覧で Red Hat CodeReady Workspaces をクリックします。
- Subscription タブに移動します。承認を必要とするアップグレードは Upgrade Status の横に表示されます (例: 1 requires approval)。
- 1 requires approval をクリックしてから、Preview Install Plan をクリックします。
- アップグレードに利用可能なリソースとして一覧表示されているリソースを確認し、Approve をクリックします。
検証手順
- Operators → Installed Operators ページに移動し、アップグレードの進捗をモニターします。完了時に、ステータスは Succeeded および Up to date に変更されます。
- 2.8 のバージョン番号がページ下部に表示されます。
関連情報
- OpenShift ドキュメントのインストールされた Operator のアップグレードについてのセクション。
5.2. CLI 管理ツールを使用した CodeReady Workspaces のアップグレード
本セクションでは、CLI 管理ツールを使用して以前のマイナーバージョンからアップグレードする方法を説明します。
前提条件
- OpenShift インスタンスの管理者アカウント
-
以前のマイナーバージョンの Red Hat CodeReady Workspaces の実行中のインスタンス。これは、OpenShift の同じインスタンスで CLI 管理ツールを使用して
<openshift-workspaces>
プロジェクトにインストールされています。 -
crwctl
2.8 バージョン管理ツールのインストール。「crwctl CLI 管理ツールのインストール」 を参照してください。
手順
- CodeReady Workspaces 2.7 インスタンスで実行されているすべてのワークスペースで、変更を保存し、Git リポジトリーに再度プッシュします。
- CodeReady Workspaces 2.7 インスタンスのすべてのワークスペースをシャットダウンします。
以下のコマンドを実行します。
$ crwctl server:update -n <openshift-workspaces>
低速なシステムまたはインターネット接続の場合は、--k8spodwaittimeout=1800000
フラグオプションを crwctl server:update
コマンドに追加し、Pod のタイムアウト期間を 1800000 ms 以上に拡張します。
検証手順
- CodeReady Workspaces インスタンスに移動します。
- 2.8 のバージョン番号がページ下部に表示されます。
5.3. 制限された環境での CLI 管理ツールを使用した CodeReady Workspaces のアップグレード
本セクションでは、制限された環境で CLI 管理ツールを使用して Red Hat CodeReady Workspaces をアップグレードする方法を説明します。アップグレードパスは、CodeReady Workspaces バージョン 2.7 からバージョン 2.8 へのマイナーバージョンの更新をサポートします。
前提条件
- OpenShift インスタンスの管理者アカウント。
-
<
openshift-workspaces
> プロジェクトに crwctl--installer Operator
の方法を使用して、CLI 管理ツールを使用してインストールされた Red Hat CodeReady Workspaces の実行中のインスタンスバージョン 2.7。「制限された環境での CodeReady Workspaces のインストール」 を参照してください。 -
crwctl
2.8 管理ツールが利用できる。「crwctl CLI 管理ツールのインストール」 を参照してください。
5.3.1. 制限された環境でのネットワーク接続について
CodeReady Workspaces では、CodeReady Workspaces 用に作成された各 OpenShift Route が OpenShift クラスター内からアクセスできる必要があります。これらの CodeReady Workspaces コンポーネントには OpenShift Route(codeready-workspaces-server
, keycloak
, devfile-registry
, plugin-registry
)があります。
環境のネットワークトポロジーを考慮して、これを実行する最善の方法を判断してください。
例5.1 公開インターネットから切断された、会社または組織が所有するネットワーク
ネットワーク管理者は、クラスターからのトラフィックを OpenShift Route ホスト名にルーティングできるようにする必要があります。
例5.2 クラウドプロバイダーのプライベートサブネットワーク
トラフィックがノードから出て、外部に表示されるロードバランサーに到達できるようにするプロキシー設定を作成します。
5.3.2. オフラインレジストリーイメージのビルド
5.3.2.1. オフラインの devfile レジストリーイメージのビルド
本セクションでは、オフラインの devfile レジストリーイメージをビルドする方法を説明します。外部インターネットのリソースを使用せずにワークスペースを起動するには、このイメージをビルドする必要があります。このイメージには、devfile で zip
ファイルとして参照されるすべてのサンプルプロジェクトが含まれます。
手順
devfile レジストリーリポジトリーのクローンを作成し、デプロイするバージョンをチェックアウトします。
$ git clone git@github.com:redhat-developer/codeready-workspaces.git $ cd codeready-workspaces $ git checkout crw-2.8-rhel-8
オフラインの devfile レジストリーイメージをビルドします。
$ cd dependencies/che-devfile-registry $ ./build.sh --organization <my-org> \ --registry <my-registry> \ --tag <my-tag> \ --offline
注記build.sh
スクリプトの詳細なオプションを表示するには--help
パラメーターを使用します。
関連情報
5.3.2.2. オフラインプラグインレジストリーイメージのビルド
本セクションでは、オフラインのプラグインレジストリーイメージをビルドする方法を説明します。外部インターネットのリソースを使用せずにワークスペースを起動するには、このイメージをビルドする必要があります。イメージには、プラグインのメタデータとすべてのプラグインまたは拡張アーティファクトが含まれます。
前提条件
- NodeJS 12.x
- yarn の実行中のバージョン。参照: Installing Yarn.
-
./node_modules/.bin
がPATH
環境変数にある。 - podman または docker の実行中のインストール。
手順
プラグインレジストリーリポジトリーのクローンを作成し、デプロイするバージョンをチェックアウトします。
$ git clone git@github.com:redhat-developer/codeready-workspaces.git $ cd codeready-workspaces $ git checkout crw-2.8-rhel-8
オフラインプラグインレジストリーイメージをビルドします。
$ cd dependencies/che-plugin-registry $ ./build.sh --organization <my-org> \ --registry <my-registry> \ --tag <my-tag> \ --offline
注記build.sh
スクリプトの詳細なオプションを表示するには--help
パラメーターを使用します。
関連情報
5.3.3. プライベートレジストリーの準備
前提条件
-
oc
ツールが利用できる。 -
skopeo
ツール(バージョン 0.1.40 以降)が利用できる。 -
podman
ツールが利用できる。 - OpenShift クラスターからアクセスできるイメージ、および V2 イメージマニフェスト (スキーマバージョン 2) フォーマットのサポート。インターネットへのアクセスが一時的に可能な場所から、これにプッシュできることを確認します。
表5.1 サンプルで使用されるプレースホルダー
| レジストリー、組織、およびダイジェストなどのソースイメージの詳細な組み合わせ (coordinate)。 |
| ターゲットコンテナーイメージレジストリーのホスト名およびポート。 |
| ターゲットのコンテナーイメージレジストリー内の組織 |
| ターゲットのコンテナーイメージレジストリーのイメージ名とダイジェスト。 |
| ターゲットのコンテナーイメージレジストリーのユーザー名。 |
| ターゲットのコンテナーイメージレジストリーのユーザーパスワード。 |
手順
内部イメージレジストリーにログインします。
$ podman login --username <user> --password <password> <target-registry>
注記内部レジストリーへのプッシュを試行する際に
x509: certificate signed by unknown authority
などのエラーが発生した場合には、以下のいずれかの回避策を試してください。-
OpenShift クラスターの証明書を
/etc/containers/certs.d/<target-registry>
に追加します。 -
/etc/containers/registries.conf
にある Podman 設定ファイルに以下の行を追加して、レジストリーを非セキュアなレジストリーとして追加する。
[registries.insecure] registries = ['<target-registry>']
-
OpenShift クラスターの証明書を
ダイジェストを変更せずにイメージをコピーします。以下の表のすべてのイメージに対して、この手順を繰り返します。
$ skopeo copy --all docker://<source-image> docker://<target-registry>/<target-organization>/<target-image>
注記表5.2 名前に含まれるプレフィックスまたはキーワードからの container-images の使用について
使用 プレフィックスまたはキーワード Essential
stacks-
,plugin-
または-openj9-
ではないWorkspaces
stacks-
,plugin-
IBM Z および IBM Power Systems
-openj9-
表5.3 プライベートレジストリーでコピーするイメージ
<source-image> <target-image> registry.redhat.io/codeready-workspaces/configbump-rhel8@sha256:db34b20374d99c2055612663a669a06f6dd0fc1fc19603761e993fd0870eddfe
configbump-rhel8@sha256:db34b20374d99c2055612663a669a06f6dd0fc1fc19603761e993fd0870eddfe
registry.redhat.io/codeready-workspaces/crw-2-rhel8-operator@sha256:a24dc83d8cdd8af715f0c4f235dcba0736bf395b7029ceaed0b8a683da5f74e0
crw-2-rhel8-operator@sha256:a24dc83d8cdd8af715f0c4f235dcba0736bf395b7029ceaed0b8a683da5f74e0
registry.redhat.io/codeready-workspaces/crw-2-rhel8-operator@sha256:a24dc83d8cdd8af715f0c4f235dcba0736bf395b7029ceaed0b8a683da5f74e0
crw-2-rhel8-operator@sha256:a24dc83d8cdd8af715f0c4f235dcba0736bf395b7029ceaed0b8a683da5f74e0
registry.redhat.io/codeready-workspaces/devfileregistry-rhel8@sha256:e3c360c031d8e68b62d1a28a4d736f41c5bfbc17c23999b9e1f1e5820858bf1d
devfileregistry-rhel8@sha256:e3c360c031d8e68b62d1a28a4d736f41c5bfbc17c23999b9e1f1e5820858bf1d
registry.redhat.io/codeready-workspaces/jwtproxy-rhel8@sha256:3f40bb8a2022545ac06a0b41cdb0239fdacfc34b37faffb21348a2041e96d0f2
jwtproxy-rhel8@sha256:3f40bb8a2022545ac06a0b41cdb0239fdacfc34b37faffb21348a2041e96d0f2
registry.redhat.io/codeready-workspaces/machineexec-rhel8@sha256:19a8daf7f9adde981dcd588b0526fa7682111097849f60a9b0e81137bdde8f6c
machineexec-rhel8@sha256:19a8daf7f9adde981dcd588b0526fa7682111097849f60a9b0e81137bdde8f6c
registry.redhat.io/codeready-workspaces/plugin-java11-openj9-rhel8@sha256:ee7c41053b4c8615886745566fc306dbf5bd1b1d367e525266477ae17a26673e
plugin-java11-openj9-rhel8@sha256:ee7c41053b4c8615886745566fc306dbf5bd1b1d367e525266477ae17a26673e
registry.redhat.io/codeready-workspaces/plugin-java11-openj9-rhel8@sha256:ee7c41053b4c8615886745566fc306dbf5bd1b1d367e525266477ae17a26673e
plugin-java11-openj9-rhel8@sha256:ee7c41053b4c8615886745566fc306dbf5bd1b1d367e525266477ae17a26673e
registry.redhat.io/codeready-workspaces/plugin-java11-openj9-rhel8@sha256:ee7c41053b4c8615886745566fc306dbf5bd1b1d367e525266477ae17a26673e
plugin-java11-openj9-rhel8@sha256:ee7c41053b4c8615886745566fc306dbf5bd1b1d367e525266477ae17a26673e
registry.redhat.io/codeready-workspaces/plugin-java11-rhel8@sha256:d93195134cef6351b1f9e3165fecc09f464dc99ab33d11b68fadd613d04d1636
plugin-java11-rhel8@sha256:d93195134cef6351b1f9e3165fecc09f464dc99ab33d11b68fadd613d04d1636
registry.redhat.io/codeready-workspaces/plugin-java8-openj9-rhel8@sha256:8d8948134405e45bdd895932afa85b6cf0fbfe4e9bb58ae9753d233ddf74672b
plugin-java8-openj9-rhel8@sha256:8d8948134405e45bdd895932afa85b6cf0fbfe4e9bb58ae9753d233ddf74672b
registry.redhat.io/codeready-workspaces/plugin-java8-openj9-rhel8@sha256:8d8948134405e45bdd895932afa85b6cf0fbfe4e9bb58ae9753d233ddf74672b
plugin-java8-openj9-rhel8@sha256:8d8948134405e45bdd895932afa85b6cf0fbfe4e9bb58ae9753d233ddf74672b
registry.redhat.io/codeready-workspaces/plugin-java8-openj9-rhel8@sha256:8d8948134405e45bdd895932afa85b6cf0fbfe4e9bb58ae9753d233ddf74672b
plugin-java8-openj9-rhel8@sha256:8d8948134405e45bdd895932afa85b6cf0fbfe4e9bb58ae9753d233ddf74672b
registry.redhat.io/codeready-workspaces/plugin-java8-rhel8@sha256:ecaa9ddef5ca8db9552f1b5e66f7aacb19d72e488d718d8135b1e1d9f66a1a7a
plugin-java8-rhel8@sha256:ecaa9ddef5ca8db9552f1b5e66f7aacb19d72e488d718d8135b1e1d9f66a1a7a
registry.redhat.io/codeready-workspaces/plugin-kubernetes-rhel8@sha256:cf1d0e24f8bae0f87cae0b1577dfd25e124437d78031d7076fabebb2dcf48d7f
plugin-kubernetes-rhel8@sha256:cf1d0e24f8bae0f87cae0b1577dfd25e124437d78031d7076fabebb2dcf48d7f
registry.redhat.io/codeready-workspaces/plugin-openshift-rhel8@sha256:13ce6d8fdeeea0cc5a220ebe8abd2811c31bb2a424736759be9a6df15c8f77fd
plugin-openshift-rhel8@sha256:13ce6d8fdeeea0cc5a220ebe8abd2811c31bb2a424736759be9a6df15c8f77fd
registry.redhat.io/codeready-workspaces/pluginbroker-artifacts-rhel8@sha256:cda306cb7e5c42faa6ab43218d39984d4955134b3ca9654968c28b05e0796c3a
pluginbroker-artifacts-rhel8@sha256:cda306cb7e5c42faa6ab43218d39984d4955134b3ca9654968c28b05e0796c3a
registry.redhat.io/codeready-workspaces/pluginbroker-metadata-rhel8@sha256:0143a80b869620af08a0d60165dc9d13357a79e7243502832326cf053c17ee38
pluginbroker-metadata-rhel8@sha256:0143a80b869620af08a0d60165dc9d13357a79e7243502832326cf053c17ee38
registry.redhat.io/codeready-workspaces/pluginregistry-rhel8@sha256:3f5163a2303de7f538eca2cc560403f38b920af1169821dfa06dbef695fb10c6
pluginregistry-rhel8@sha256:3f5163a2303de7f538eca2cc560403f38b920af1169821dfa06dbef695fb10c6
registry.redhat.io/codeready-workspaces/server-rhel8@sha256:6635e8c160c8c73c00c9b05eccab08a4ff23d344f102ef0097a3798bf108217a
server-rhel8@sha256:6635e8c160c8c73c00c9b05eccab08a4ff23d344f102ef0097a3798bf108217a
registry.redhat.io/codeready-workspaces/stacks-cpp-rhel8@sha256:06cd3600c3b6c3dca0451b10b46961fd0db4140c7dddc4f9637984022f5cfc09
stacks-cpp-rhel8@sha256:06cd3600c3b6c3dca0451b10b46961fd0db4140c7dddc4f9637984022f5cfc09
registry.redhat.io/codeready-workspaces/stacks-dotnet-rhel8@sha256:ea77974b206c7d7abcad5cd32149f6bb669d3cf867135553af4d7dddd24ba9cf
stacks-dotnet-rhel8@sha256:ea77974b206c7d7abcad5cd32149f6bb669d3cf867135553af4d7dddd24ba9cf
registry.redhat.io/codeready-workspaces/stacks-golang-rhel8@sha256:e01d32e58a55a552f0d35b9a6210b7a2cc8ed444f8ae54a24113dcc85f4d80db
stacks-golang-rhel8@sha256:e01d32e58a55a552f0d35b9a6210b7a2cc8ed444f8ae54a24113dcc85f4d80db
registry.redhat.io/codeready-workspaces/stacks-php-rhel8@sha256:95c324ed660924bf76e10b461d75aa5be2a323f26e5033239f7cbfe1ec10b26e
stacks-php-rhel8@sha256:95c324ed660924bf76e10b461d75aa5be2a323f26e5033239f7cbfe1ec10b26e
registry.redhat.io/codeready-workspaces/theia-endpoint-rhel8@sha256:60c84fca55a997a6aab4ca07b8ff7d859948c1f525adeba2ae624c84fe059a56
theia-endpoint-rhel8@sha256:60c84fca55a997a6aab4ca07b8ff7d859948c1f525adeba2ae624c84fe059a56
registry.redhat.io/codeready-workspaces/theia-rhel8@sha256:de36fdf140ba6367e6edf577d6dbaffa270e5e5ecf0890e498f5907f8287858f
theia-rhel8@sha256:de36fdf140ba6367e6edf577d6dbaffa270e5e5ecf0890e498f5907f8287858f
registry.redhat.io/codeready-workspaces/traefik-rhel8@sha256:0698a776c6ae2f08238cf011d69ac2c67f934b1e25ec38701a9e360430fd10f7
traefik-rhel8@sha256:0698a776c6ae2f08238cf011d69ac2c67f934b1e25ec38701a9e360430fd10f7
registry.redhat.io/jboss-eap-7/eap-xp2-openj9-11-openshift-rhel8@sha256:95d2ce73a0759de5befdbec115514a555752e2f20070fbfe356801da6d0a2bd6
eap-xp2-openj9-11-openshift-rhel8@sha256:95d2ce73a0759de5befdbec115514a555752e2f20070fbfe356801da6d0a2bd6
registry.redhat.io/jboss-eap-7/eap-xp2-openj9-11-openshift-rhel8@sha256:95d2ce73a0759de5befdbec115514a555752e2f20070fbfe356801da6d0a2bd6
eap-xp2-openj9-11-openshift-rhel8@sha256:95d2ce73a0759de5befdbec115514a555752e2f20070fbfe356801da6d0a2bd6
registry.redhat.io/jboss-eap-7/eap-xp2-openj9-11-openshift-rhel8@sha256:95d2ce73a0759de5befdbec115514a555752e2f20070fbfe356801da6d0a2bd6
eap-xp2-openj9-11-openshift-rhel8@sha256:95d2ce73a0759de5befdbec115514a555752e2f20070fbfe356801da6d0a2bd6
registry.redhat.io/jboss-eap-7/eap-xp2-openjdk11-openshift-rhel8@sha256:647d092383a760edc083eafb2d7bc3208d6409097281bedbd5eaccde360e7e39
eap-xp2-openjdk11-openshift-rhel8@sha256:647d092383a760edc083eafb2d7bc3208d6409097281bedbd5eaccde360e7e39
registry.redhat.io/jboss-eap-7/eap73-openjdk8-openshift-rhel7@sha256:d16cfe30eaf20a157cd5d5980a6c34f3fcbcfd2fd225e670a0138d81007dd919
eap73-openjdk8-openshift-rhel7@sha256:d16cfe30eaf20a157cd5d5980a6c34f3fcbcfd2fd225e670a0138d81007dd919
registry.redhat.io/rh-sso-7/sso74-openj9-openshift-rhel8@sha256:ed11770a85ca95fc9cbb2cade539a67ff0e127cff73a89a017415800e032bd5b
sso74-openj9-openshift-rhel8@sha256:ed11770a85ca95fc9cbb2cade539a67ff0e127cff73a89a017415800e032bd5b
registry.redhat.io/rh-sso-7/sso74-openj9-openshift-rhel8@sha256:ed11770a85ca95fc9cbb2cade539a67ff0e127cff73a89a017415800e032bd5b
sso74-openj9-openshift-rhel8@sha256:ed11770a85ca95fc9cbb2cade539a67ff0e127cff73a89a017415800e032bd5b
registry.redhat.io/rh-sso-7/sso74-openshift-rhel8@sha256:3154fd4f6ce080260de9d2b4c02930b67b57f1181f4e660f5ddfc9f6050420b1
sso74-openshift-rhel8@sha256:3154fd4f6ce080260de9d2b4c02930b67b57f1181f4e660f5ddfc9f6050420b1
registry.redhat.io/rhel8/postgresql-96@sha256:32d73d737acec3daabc3f5c8236588454c8f57f7a2656ac7a50cf3a04f520b9b
postgresql-96@sha256:32d73d737acec3daabc3f5c8236588454c8f57f7a2656ac7a50cf3a04f520b9b
registry.redhat.io/rhscl/mongodb-36-rhel7@sha256:9f799d356d7d2e442bde9d401b720600fd9059a3d8eefea6f3b2ffa721c0dc73
mongodb-36-rhel7@sha256:9f799d356d7d2e442bde9d401b720600fd9059a3d8eefea6f3b2ffa721c0dc73
registry.redhat.io/ubi8/ubi-minimal@sha256:2f6b88c037c0503da7704bccd3fc73cb76324101af39ad28f16460e7bce98324
ubi8ubi-minimal@sha256:2f6b88c037c0503da7704bccd3fc73cb76324101af39ad28f16460e7bce98324
検証手順
イメージに同じダイジェストがあることを確認します。
$ skopeo inspect docker://<source-image> $ skopeo inspect docker://<target-registry>/<target-organization>/<target-image>
関連情報
5.3.4. 制限された環境での CLI 管理ツールを使用した CodeReady Workspaces のアップグレード
本セクションでは、制限された環境で CLI 管理ツールを使用して Red Hat CodeReady Workspaces をアップグレードする方法を説明します。
前提条件
- OpenShift インスタンスの管理者アカウント
-
<
openshift-workspaces
> プロジェクトに crwctl--installer Operator
の方法を使用して、CLI 管理ツールを使用してインストールされた Red Hat CodeReady Workspaces の実行中のインスタンスバージョン 2.7。「制限された環境での CodeReady Workspaces のインストール」 を参照してください。 - 必須のコンテナーイメージはクラスターで実行される CodeReady Workspaces サーバーで使用できる。「プライベートレジストリーの準備」 を参照してください。
-
crwctl
2.8 管理ツールが利用できる。「crwctl CLI 管理ツールのインストール」 を参照してください。
手順
- CodeReady Workspaces 2.7 インスタンスで実行されているすべてのワークスペースで、変更を保存し、Git リポジトリーに再度プッシュします。
- CodeReady Workspaces 2.7 インスタンスのすべてのワークスペースを停止します。
以下のコマンドを実行します。
$ crwctl server:update --che-operator-image=<image-registry>/<organization>/crw-2-rhel8-operator:2.8 -n openshift-workspaces
- <image-registry>: 制限された環境でアクセス可能なコンテナーイメージレジストリーのホスト名およびポート。
- <organization>: container-image レジストリーの組織。「プライベートレジストリーの準備」 を参照してください。
検証手順
- CodeReady Workspaces インスタンスに移動します。
- 2.8 のバージョン番号がページ下部に表示されます。
低速なシステムまたはインターネット接続の場合は、--k8spodwaittimeout=1800000
フラグオプションを crwctl server:update
コマンドに追加し、Pod のタイムアウト期間を 1800000 ms 以上に拡張します。
第6章 CodeReady Workspaces のアンインストール
本セクションでは、Red Hat CodeReady Workspaces のアンインストール手順を説明します。アンインストールプロセスでは、CodeReady Workspaces 関連のユーザーデータが完全に削除されます。CodeReady Workspaces インスタンスをインストールするために以前に使用された方法により、アンインストール方法が決まります。
- OperatorHub を使用してインストールされた CodeReady Workspaces の場合、OpenShift Web コンソールの方法については、「OpenShift Web コンソールを使用した OperatorHub のインストール後の CodeReady Workspaces のアンインストール」を参照してください。
- CLI の方法を使用してインストールされた CodeReady Workspaces の場合は、「OpenShift CLI を使用した OperatorHub のインストール後の CodeReady Workspaces のアンインストール」 を参照してください。
- crwctl を使用してインストールされた CodeReady Workspaces の場合は、「crwctl インストール後の CodeReady Workspaces のアンインストール」を参照してください。
6.1. OpenShift Web コンソールを使用した OperatorHub のインストール後の CodeReady Workspaces のアンインストール
本セクションでは、OpenShift Administrator パースペクティブのメインメニューを使用して、クラスターから CodeReady Workspaces をアンインストールする方法を説明します。
前提条件
- CodeReady Workspaces が OperatorHub を使用して OpenShift クラスターにインストールされている。
手順
- OpenShift Web コンソールに移動し、Administrator パースペクティブを選択します。
Home > Projects セクションで、CodeReady Workspaces インスタンスが含まれるプロジェクトに移動します。
注記デフォルトのプロジェクト名は <openshift-workspaces> です。
- Operators > Installed Operators セクションで、インストールされた Operator の一覧で Red Hat CodeReady Workspaces をクリックします。
Red Hat CodeReady Workspaces Cluster タブで、表示された Red Hat CodeReady Workspaces Cluster をクリックし、右上の Actions ドロップダウンメニューで Delete cluster オプションを選択します。
注記デフォルトの Red Hat CodeReady Workspaces クラスター名は <red-hat-codeready-workspaces> です。
- Operators > Installed Operators セクションの、インストールされた Operator 一覧で Red Hat CodeReady Workspaces をクリックし、右上の Actions ドロップダウンメニューで Uninstall Operator オプションを選択します。
- Home > Projects セクションで、CodeReady Workspaces インスタンスが含まれるプロジェクトに移動し、右上の Actions ドロップダウンメニューで Delete Project オプションを選択します。
6.2. OpenShift CLI を使用した OperatorHub のインストール後の CodeReady Workspaces のアンインストール
本セクションでは、oc
コマンドを使用して、CodeReady Workspaces インスタンスをアンインストールする方法を説明します。
前提条件
- CodeReady Workspaces が OperatorHub を使用して OpenShift クラスターにインストールされている。
-
oc
ツールが利用できる。
手順
以下の手順では、コマンドラインの出力を例として示します。ユーザーの端末の出力は異なる場合があることに注意してください。
クラスターから CodeReady Workspaces インスタンスをアンインストールするには、以下を実行します。
クラスターにサインインします。
$ oc login -u <username> -p <password> <cluster_URL>
CodeReady Workspaces インスタンスがデプロイされているプロジェクトに切り替えます。
$ oc project <codeready-workspaces_project>
CodeReady Workspaces クラスター名を取得します。以下は、
red-hat-codeready-workspaces
という名前のクラスターを示しています。$ oc get checluster NAME AGE red-hat-codeready-workspaces 27m
CodeReady Workspaces クラスターを削除します。
$ oc delete checluster red-hat-codeready-workspaces checluster.org.eclipse.che "red-hat-codeready-workspaces" deleted
CodeReady Workspaces クラスターサービスバージョン (CSV) モジュールの名前を取得します。以下は、
red-hat-codeready-workspaces.v2.8 という名前の CSV モジュールを検出します。
$ oc get csv NAME DISPLAY VERSION REPLACES PHASE red-hat-codeready-workspaces.v2.8 Red Hat CodeReady Workspaces 2.8 red-hat-codeready-workspaces.v2.7 Succeeded
CodeReady Workspaces CSV を削除します。
$ oc delete csv red-hat-codeready-workspaces.v2.8 clusterserviceversion.operators.coreos.com "red-hat-codeready-workspaces.v2.8" deleted
6.3. crwctl インストール後の CodeReady Workspaces のアンインストール
本セクションでは、crwctl
ツールを使用してインストールされた Red Hat CodeReady Workspaces のインスタンスをアンインストールする方法を説明します。
前提条件
-
crwctl
ツールが利用できる。 -
oc
ツールが利用できる。 -
crwctl
ツールは OpenShift の CodeReady Workspaces インスタンスにインストールされている。
手順
OpenShift クラスターにサインインします。
$ oc login -u <username> -p <password> <cluster_URL>
削除する CodeReady Workspaces namespace の名前をエクスポートします。
$ export codereadyNamespace=<codeready-namespace-to-remove>
ユーザーのアクセストークンおよび Keycloak URL をエクスポートします。
$ export KEYCLOAK_BASE_URL="http://${KEYCLOAK_URL}/auth"
$ export USER_ACCESS_TOKEN=$(curl -X POST $KEYCLOAK_BASE_URL/realms/codeready/protocol/openid-connect/token \ -H "Content-Type: application/x-www-form-urlencoded" \ -d "username=admin" \ -d "password=admin" \ -d "grant_type=password" \ -d "client_id=codeready-public" | jq -r .access_token)
UAT を使用してサーバーを停止します。
$ crwctl/bin/crwctl server:stop -n ${codereadyNamespace} --access-token=$USER_ACCESS_TOKEN
プロジェクトおよび CodeReady Workspaces デプロイメントを削除します。
$ oc project ${codereadyNamespace}
$ oc delete deployment codeready-operator
$ oc delete checluster codeready-workspaces
$ oc delete project ${codereadyNamespace}
プロジェクトについての情報を一覧表示して、削除が正常に実行されていることを確認します。
$ oc describe project ${codereadyNamespace}
指定した
ClusterRoleBinding
を削除します。$ oc delete clusterrolebinding codeready-operator