6.5. OpenShift ルートの制限
このセクションは、マネージド route コンポーネントを持つ OpenShift 上で Quay Operator を使用している場合にのみ適用されます。
OpenShift Routes では、単一のポートにしかトラフィックを提供できないという制限があるため、ビルドの設定には追加の手順が必要です。Quay Operator がインストールされているクラスターで kubectl または oc CLI ツールが動作するように設定されていて、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}$ kubectl get -n <namespace> route <quayregistry-name>-quay-builder -o jsonpath={.status.ingress[0].host}Copy to Clipboard Copied! Toggle word wrap Toggle overflow OpenShift UI または CLI を使用して、
QuayRegistryのspec.configBundleSecretで参照されるSecretをビルドクラスター CA 証明書で更新し (キーにextra_ca_cert_build_cluster.certという名前を付けます)、config.yamlエントリーを、BUILDMAN_HOSTNAMEフィールドと上記のビルダー設定で参照される正しい値で更新します (ビルドエクゼキューターに依存します)。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
追加の設定項目の説明は以下のとおりです。
- BUILDMAN_HOSTNAME
-
ビルドジョブがビルドマネージャーとの通信に使用する、外部からアクセス可能なサーバーのホスト名です。デフォルトは
SERVER_HOSTNAMEと同じです。OpenShiftRouteの場合はstatus.ingress[0].host、カスタムホスト名を使用している場合は CNAME エントリーのいずれかになります。BUILDMAN_HOSTNAMEには、ポート番号を含める 必要があります (例: Openshift Route の場合はsomehost:443)。ビルドマネージャーとの通信に使用される gRPC クライアントは、ポートを省略すると推測しないためです。