6.5. OpenShiftルートの制限
このセクションは、管理対象のrouteコンポーネントを持つOpenShift 上でQuay Operatorを使用している場合にのみ適用されます。
OpenShift Routesでは、単一のポートにしかトラフィックを提供できないという制限があるため、ビルドの設定には追加の手順が必要です。kubectlまたはoc CLIツールが、Quay Operatorがインストールされているクラスタで動作するように設定されていて、QuayRegistryが存在することを確認します(ビルダーが動作するベアメタルクラスタと同じである必要はありません)。
- この手順に従って、OpenShiftクラスター上でHTTP/2 ingressが有効になっていることを確認します。
Quay Operatorは、既存のQuay Pod内で稼働しているビルドマネージャーサーバーにgRPCトラフィックを誘導する
Routeを作成します。カスタムホスト名(builder.registry.example.comなどのサブドメイン)を使用する場合は、作成したRouteのstatus.ingress[0].hostをポイントするCNAMEレコードをDNSプロバイダーで作成するようにしてください。$ 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クライアントは、ポートを省略すると推測しないためです。