1.7. Jenkins パーミッション
config map で、Pod テンプレート XML の <serviceAccount>
要素が結果として作成される Pod に使用される OpenShift Container Platform サービスアカウントである場合は、サービスアカウントの認証情報が Pod にマウントされます。パーミッションはサービスアカウントに関連付けられ、OpenShift Container Platform マスターに対するどの操作が Pod から許可されるかを制御します。
Pod に使用されるサービスアカウントについて以下のシナリオを考慮してください。この Pod は、OpenShift Container Platform Jenkins イメージで実行される Kubernetes プラグインによって起動されます。
OpenShift Container Platform で提供される Jenkins のテンプレートサンプルを使用する場合は、jenkins
サービスアカウントが、Jenkins が実行するプロジェクトの edit
ロールで定義され、マスター Jenkins Pod にサービスアカウントがマウントされます。
Jenkins 設定に挿入される 2 つのデフォルトの Maven および NodeJS Pod テンプレートも、Jenkins マスターと同じサービスアカウントを使用するように設定します。
- イメージストリームまたはイメージストリームタグに必要なラベルまたはアノテーションがあるために OpenShift Container Platform 同期プラグインで自動的に検出されるすべての Pod テンプレートは、Jenkins マスターのサービスアカウントをサービスアカウントとして使用するように設定されます。
-
Pod テンプレートの定義を Jenkins と Kubernetes プラグインに渡す他の方法として、使用するサービスアカウントを明示的に指定する必要があります。他の方法には、Jenkins コンソール、Kubernetes プラグインで提供される
podTemplate
パイプライン DSL、または Pod テンプレートの XML 設定をデータとする config map のラベル付けなどが含まれます。 -
サービスアカウントの値を指定しない場合は、
default
サービスアカウントを使用します。 - 使用するサービスアカウントが何であっても、必要なパーミッション、ロールなどを OpenShift Container Platform 内で定義して、Pod から操作するプロジェクトをすべて操作できるようにする必要があります。