第6章 ビルドワーカーを使用した Dockerfile の自動ビルド
Red Hat Quay は、OpenShift または Kubernetes 上のワーカーノードのセットを使用した Dockerfile のビルドをサポートしています。GitHub webhook などのビルドトリガーを設定することで、新しいコードがコミットされたときに自動的に新しいバージョンのリポジトリーを構築できます。
このドキュメントでは、Red Hat Quay インストールでビルドを有効にし、Red Hat Quay からのビルドを受け入れるように OpenShift Container Platform または Kubernetes クラスターをもう 1 つセットアップする方法を説明します。
6.1. OpenShift Container Platform を使用した Red Hat Quay ビルダーのセットアップ リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Quay ビルダーを OpenShift Container Platform で使用する前に、事前設定する必要があります。
6.1.1. OpenShift Container Platform TLS コンポーネントの設定 リンクのコピーリンクがクリップボードにコピーされました!
tls コンポーネントを使用すると、TLS 設定を制御できます。
TLS コンポーネントが Red Hat Quay Operator によって管理されている場合、Red Hat Quay は Builders をサポートしません。
tls を unmanaged に設定する場合は、独自の ssl.cert ファイルと ssl.key ファイルを提供します。このとき、クラスターで Builder をサポートする場合は、Quay ルート名と Builder ルート名の両方を証明書の SAN リストに追加する必要があります。あるいは、ワイルドカードを使用することもできます。
ビルダールートを追加するには、次の形式を使用します。
[quayregistry-cr-name]-quay-builder-[ocp-namespace].[ocp-domain-name]
[quayregistry-cr-name]-quay-builder-[ocp-namespace].[ocp-domain-name]
6.1.2. Red Hat Quay ビルダー用の OpenShift Container Platform の準備 リンクのコピーリンクがクリップボードにコピーされました!
次の手順を使用して、OpenShift Container Platform 用に Red Hat Quay ビルダーを準備します。
前提条件
- OpenShift Container Platform TLS コンポーネントが設定されている。
手順
次のコマンドを入力して、ビルドを実行するプロジェクト (
builderなど) を作成します。oc new-project builder
$ oc new-project builderCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを入力して、
buildernamespace に新しいServiceAccountを作成します。oc create sa -n builder quay-builder
$ oc create sa -n builder quay-builderCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを入力して、
buildernamespace 内のeditロールをユーザーに付与します。oc policy add-role-to-user -n builder edit system:serviceaccount:builder:quay-builder
$ oc policy add-role-to-user -n builder edit system:serviceaccount:builder:quay-builderCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを入力して、
buildernamespace のquay-builderサービスアカウントに関連付けられたトークンを取得します。このトークンは、OpenShift Container Platform クラスターの API サーバーの認証と対話に使用されます。oc sa get-token -n builder quay-builder
$ oc sa get-token -n builder quay-builderCopy to Clipboard Copied! Toggle word wrap Toggle overflow - OpenShift Container Platform クラスターの API サーバーの URL を特定します。これは、OpenShift Container Platform Web コンソールで確認できます。
ビルド
jobsをスケジュールするときに使用するワーカーノードラベルを特定します。ビルド pods はベアメタルのワーカーノードで実行する必要があるため、通常、これらは特定のラベルで識別されます。どのノードラベルを使用すべきかは、クラスター管理者に確認してください。
オプション: クラスターが自己署名証明書を使用している場合は、Kube API Server の認証局 (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$ oc get sa openshift-apiserver-sa --namespace=openshift-apiserver -o json | jq '.secrets[] | select(.name | contains("openshift-apiserver-sa-token"))'.nameCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
OpenShift Container Platform Web コンソールで、シークレットから
ca.crtキーの値を取得します。値は "-----BEGIN CERTIFICATE-----"` で始まります。 -
Config Tool を使用して CA を Red Hat Quay にインポートします。このファイルの名前が
K8S_API_TLS_CAと一致することを確認します。
ServiceAccountに対して次のSecurityContextConstraintsリソースを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
6.1.3. Red Hat Quay ビルダーの設定 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Quay ビルダーを有効にするには、次の手順を実行します。
手順
Red Hat Quay の
config.yamlファイルでビルドが有効になっていることを確認します。次に例を示します。FEATURE_BUILD_SUPPORT: True
FEATURE_BUILD_SUPPORT: TrueCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の情報を Red Hat Quay の
config.yamlファイルに追加し、各値をお客様のインストールに関連する情報に置き換えます。注記現在、Red Hat Quay Config Tool で有効にできるのはビルド機能自体のみです。Build Manager と Executor の設定は、
config.yamlファイルで手動で行う必要があります。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 各設定フィールドの詳細は、を参照してください。