6.4. Red Hat Quay ビルダーと OpenShift のセットアップ
6.4.1. Red Hat Quayのビルド用OpenShiftの準備
OpenShift クラスタが Red Hat Quay からのビルドを受け入れる前に、OpenShift クラスタ上で必要なアクションがいくつかあります。
ビルドを実行するプロジェクトを作成します(例:‘ビルダー’)。
$ oc new-project builder
ビルドの実行に使用する
ServiceAccount
をこのProject
に作成します。ジョブ
やPod
を作成するのに十分な権限を持っていることを確認してください。後で使用するために、ServiceAccount
のトークンをコピーします。$ oc create sa -n builder quay-builder $ oc policy add-role-to-user -n builder edit system:serviceaccount:builder:quay-builder $ oc sa get-token -n builder quay-builder
- OpenShiftクラスターのAPIサーバーのURLを特定します。これは、OpenShift Consoleから確認できます。
-
ビルド
ジョブ
のスケジューリング時に使用するワーカーノードのラベルを特定します。ビルドPodはベアメタルのワーカーノードで実行する必要があるため、通常、これらは特定のラベルで識別されます。どのノードラベルを使用すべきかについては、クラスタ管理者に確認してください。 クラスタが自己署名証明書を使用している場合は、kube apiserverのCAを取得してRed Hat Quayの追加証明書に追加します。
CAが含まれるシークレットの名前を取得します。
$ oc get sa openshift-apiserver-sa --namespace=openshift-apiserver -o json | jq '.secrets[] | select(.name | contains("openshift-apiserver-sa-token"))'.name
-
Openshiftのコンソールで、secretから
ca.crt
キーの値を取得します。値は、"-----BEGIN CERTIFICATE-----"で始まります。 -
ConfigToolを使ってRed Hat QuayにCAをインポートします。このファイルの名前が
K8S_API_TLS_CA
と一致することを確認してください。
-
ServiceAccount
に必要なセキュリティーコンテキスト/ロールバインディングを作成します。
apiVersion: security.openshift.io/v1 kind: SecurityContextConstraints metadata: name: quay-builder priority: null readOnlyRootFilesystem: false requiredDropCapabilities: null runAsUser: type: RunAsAny seLinuxContext: type: RunAsAny seccompProfiles: - '*' supplementalGroups: type: RunAsAny volumes: - '*' allowHostDirVolumePlugin: true allowHostIPC: true allowHostNetwork: true allowHostPID: true allowHostPorts: true allowPrivilegeEscalation: true allowPrivilegedContainer: true allowedCapabilities: - '*' allowedUnsafeSysctls: - '*' defaultAddCapabilities: null fsGroup: type: RunAsAny --- apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: name: quay-builder-scc namespace: builder rules: - apiGroups: - security.openshift.io resourceNames: - quay-builder resources: - securitycontextconstraints verbs: - use --- apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: quay-builder-scc namespace: builder subjects: - kind: ServiceAccount name: quay-builder roleRef: apiGroup: rbac.authorization.k8s.io kind: Role name: quay-builder-scc