4.2.3. 各ユーザーのプロジェクトの事前作成

各ユーザーにプロジェクトを事前に作成するには、OpenShift のラベルとアノテーションを使用します。このプロジェクトは、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
1
事前に作成される namespace
2
ターゲットユーザー

Kubernetes では、che ServiceAccount には、クラスター全体の list および get namespaces パーミッションと、ターゲット namespace の admin ロールが必要です。