4.2. ワークスペースターゲットプロジェクトの設定

新規ワークスペースがデプロイされる OpenShift プロジェクトは、CodeReady Workspaces サーバー設定によって異なります。CodeReady Workspaces は、各ワークスペースをユーザー専用のプロジェクトにデプロイして、対象のユーザーが作成した全 CodeReady Workspaces をホストします。OpenShift プロジェクトの名前は、CodeReady Workspaces サーバー設定プロパティーとして指定するか、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 ワークスペースプロジェクト設定
注記

CodeReady Workspaces サーバーが使用する基礎となる環境変数は CHE_INFRA_KUBERNETES_NAMESPACE_DEFAULT です。

警告

デフォルトでは、同じプロジェクト内で同時に実行できるワークスペースは 1 つだけです。「ユーザーが実行できるワークスペース数の設定」を参照してください。

警告

Kubernetes はプロジェクト名の長さを 63 文字に制限します (これには評価されるプレースホルダーが含まれます)。さらに、名前 (プレースホルダーの評価後) は有効な DNS 名である必要があります。

マルチホストサーバーの脆弱性ストラテジーのある OpenShift では、長さはさらに 49 文字に制限されます。

<userid> プレースホルダーは 36 文字の長さの UUID 文字列として評価されることに注意してください。

警告

以下の場合は 「各ユーザーのプロジェクトの事前作成」 を使用します。

  • 新規プロジェクトの作成時に、Che ServiceAccount に十分なパーミッションがない

  • クラスターロールが self-provisioner の OpenShift OAuth が system:authenticated:oauth グループにリンクされていない

  • CodeReady Workspaces が namespace を作成できない

4.2.1. ユーザーストラテジーごとに 1 つのプロジェクト

ストラテジーは、独自のプロジェクトの各ユーザーを分離します。

ストラテジーを使用するには、CodeReady Workspaces workspace プロジェクト設定 の値を 1 つ以上のユーザー ID が含まれるように設定します。現在サポートされている識別子は <username><userid> です。

例4.2 ユーザーごとに 1 つのプロジェクト

'codeready-ws' プレフィックスおよび個々のユーザー名(codeready-ws-user1codeready-ws-user2) で構成されるプロジェクト名を割り当てるには、以下を設定します。

Operator インストーラー (CheCluster CustomResource)

...
spec:
  server:
    workspaceNamespaceDefault: codeready-ws-<username>
...