6.5. サービスアカウント別のセルフプロビジョニングされたプロジェクトの有効化および制限
デフォルトで、サービスアカウントはプロジェクトを作成できません。ただし、管理者はサービスアカウント別にこの機能を有効でき、指定されるサービスアカウントが要求するセルフプロビジョニングされたプロジェクトの数は、ProjectRequestLimit
受付制御プラグイン で制限できます。
サービスアカウントがプロジェクトを作成することを許可される場合、プロジェクトエディターがラベルを操作する可能性があるため、プロジェクトのそれらのラベルを信頼することはできません。
プロジェクトにサービスアカウントを作成します (存在しない場合)。
$ oc create sa <sa_name>
cluster-admin
権限を持つユーザーとして、self-provisioner
クラスターロールをサービスアカウントに追加します。$ oc adm policy \ add-cluster-role-to-user self-provisioner \ system:serviceaccount:<project>:<sa_name>
/etc/origin/master/master-config.yaml のマスター設定ファイルを編集し、
ProjectRequestLimit
セクションのmaxProjectsForServiceAccounts
パラメーター値を、任意の指定のセルフプロビジョニングされたサービスが作成できるプロジェクトの最大数に設定します。たとえば、以下の設定は、サービスアカウントごとにグローバル制限の 3 つのプロジェクトを設定します。
admissionConfig: pluginConfig: ProjectRequestLimit: configuration: apiVersion: v1 kind: ProjectRequestLimitConfig maxProjectsForServiceAccounts: 3
変更を保存した後に、それらの変更を有効にするには、OpenShift Container Platform を再起動します。
# master-restart api # master-restart controllers
サービスアカウントとしてログインし、新規プロジェクトを作成して、変更が適用されていることを確認します。
トークンを使用し、サービスアカウントとしてログインします。
$ oc login --token <token>
新しいプロジェクトを作成します。
$ oc new-project <project_name>