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}
OpenShift UI または CLI を使用して、
QuayRegistry
のspec.configBundleSecret
で参照されるSecret
をビルドクラスター CA 証明書で更新し (キーにextra_ca_cert_build_cluster.cert
という名前を付けます)、config.yaml
エントリーを、BUILDMAN_HOSTNAME
フィールドとともに、上記のビルダー設定で参照される正しい値で更新します (ビルドエクゼキューターに依存します)。BUILDMAN_HOSTNAME: <build-manager-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
-
ビルドジョブがビルドマネージャーとの通信に使用する、外部からアクセス可能なサーバーのホスト名です。デフォルトは
SERVER_HOSTNAME
と同じです。OpenShiftRoute
の場合はstatus.ingress[0].host
、カスタムホスト名を使用している場合は CNAME エントリーのいずれかになります。BUILDMAN_HOSTNAME
には、ポート番号を含める 必要があります (例: Openshift Route の場合はsomehost:443
)。ビルドマネージャーとの通信に使用される gRPC クライアントは、ポートを省略すると推測しないためです。