6.4.2. Red Hat Quay のビルド用 OpenShift の準備
OpenShift クラスターが Red Hat Quay からのビルドを受け入れる前に、OpenShift クラスター上で必要なアクションがいくつかあります。
ビルドを実行するプロジェクトを作成します (例: ‘builder')。
$ oc new-project builderビルドの実行に使用する
ServiceAccountをこのProjectに作成します。Jobsや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 から確認できます。
-
Jobsのビルドをスケジューリングする際に使用するワーカーノードのラベルを特定します。ビルド 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