5.5. OpenShift Route の制限
このセクションは、OpenShift の Quay Operator を管理対象の route
コンポーネントと共に使用している場合にのみ適用されます。
OpenShift Routes
の制限により、トラフィックを単一ポートしか送信できないため、ビルドのセットアップには追加の手順が必要になります。kubectl
または oc
CLI ツールが Quay Operator がインストールされているクラスターと共に機能するように設定され、QuayRegistry
が存在することを確認します (ビルダーが実行されるベアメタルクラスターと同じであるとは限りません)。
- 以下の手順に従い、HTTP/2 ingress が OpenShift で有効にされていることを確認します。
Quay Operator は、既存の Quay Pod 内で実行されるビルドマネージャーサーバーに gRPC トラフィックを転送する
Route
を作成します。カスタムのホスト名 (例:builder.registry.example.com
などのサブドメイン)を使用する場合は、作成されたRoute
のstatus.ingress[0].host
を参照する DNS プロバイダーを使用して CNAME レコードを作成します。$ kubectl get -n <namespace> route <quayregistry-name>-quay-builder -o jsonpath={.status.ingress[0].host}
OpenShift UI または CLI を使用して、
QuayRegistry
のspec.configBundleSecret
によって参照されるSecret
をビルドクラスター CA 証明書 (キー名にextra_ca_cert_build_cluster.cert
を指定する) で更新し、config.yaml
エントリーを、BUILDMAN_HOSTNAME
フィールドと共に上記のビルダー設定 (使用する実行プログラムによって異なる) で参照される適切な値で更新します。BUILD_MANAGER: - ephemeral - ALLOWED_WORKER_COUNT: 1 ORCHESTRATOR_PREFIX: buildman/production/ ORCHESTRATOR: REDIS_HOST: quay-redis-host REDIS_PASSWORD: quay-redis-password REDIS_SSL: true REDIS_SKIP_KEYSPACE_EVENT_SETUP: false EXECUTORS: - EXECUTOR: kubernetes BUILDER_NAMESPACE: builder BUILDMAN_HOSTNAME: <build-manager-hostname> ...
追加の設定フィールドについては、以下で説明します。
- BUILDMAN_HOSTNAME
-
ビルドジョブがビルドマネージャーとの通信に使用する外部アクセス可能なサーバーのホスト名。デフォルトは
SERVER_HOSTNAME
と同じです。OpenShiftRoute
の場合、カスタムホスト名を使用する場合はstatus.ingress[0].host
または CNAME エントリーのいずれかになります。BUILDMAN_HOSTNAME
には、Openshift Route のポート番号 (例:somehost:443
) を含める必要 があります。これが省略される場合、ビルドマネージャーとの通信に使用される gRPC クライアントはポートについて推測しないためです。