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 クライアントはポートについて推測しないためです。