5.4.2. ビルダーを有効にし、ビルド設定を Red Hat Quay の設定バンドルに追加します。

  1. Red Hat Quay 設定でビルドが有効にされていることを確認します。
FEATURE_BUILD_SUPPORT: True
  1. 以下を Red Hat Quay 設定バンドルに追加し、それぞれの値をご使用のインストールに固有の値に置き換えます。
注記

現時点で、ビルド機能自体は Red Hat Quay Config Tool で有効にできます。Build Manager および Executor の実際の設定は、config.yaml ファイルで手動で行う必要があります。

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
    K8S_API_SERVER: api.openshift.somehost.org:6443
    K8S_API_TLS_CA: /conf/stack/extra_ca_cert_build_cluster.crt
    VOLUME_SIZE: 8G
    KUBERNETES_DISTRIBUTION: openshift
    CONTAINER_MEMORY_LIMITS: 5120Mi
    CONTAINER_CPU_LIMITS: 1000m
    CONTAINER_MEMORY_REQUEST: 3968Mi
    CONTAINER_CPU_REQUEST: 500m
    NODE_SELECTOR_LABEL_KEY: beta.kubernetes.io/instance-type
    NODE_SELECTOR_LABEL_VALUE: n1-standard-4
    CONTAINER_RUNTIME: podman
    SERVICE_ACCOUNT_NAME: *****
    SERVICE_ACCOUNT_TOKEN: *****
    QUAY_USERNAME: quay-username
    QUAY_PASSWORD: quay-password
    WORKER_IMAGE: <registry>/quay-quay-builder
    WORKER_TAG: some_tag
    BUILDER_VM_CONTAINER_IMAGE: <registry>/quay-quay-builder-qemu-rhcos:v3.4.0
    SETUP_TIME: 180
    MINIMUM_RETRY_THRESHOLD: 0
    SSH_AUTHORIZED_KEYS:
    - ssh-rsa 12345 someuser@email.com
    - ssh-rsa 67890 someuser2@email.com

それぞれの設定フィールドについては、以下で説明します。

ALLOWED_WORKER_COUNT
Red Hat Quay Pod ごとにインスタンス化されるビルドワーカーの数を定義します。通常、これは「1」です。
ORCHESTRATOR_PREFIX
すべての Redis キーに追加する一意のプレフィックスを定義します(他の Redis キーから Orchestrator 値を分離するのに便利です)。
REDIS_HOST
Redis サービスのホスト名。
REDIS_PASSWORD
Redis サービスに対して認証を行うためのパスワード。
REDIS_SSL
Redis 接続が SSL を使用するかどうかを定義します。
REDIS_SKIP_KEYSPACE_EVENT_SETUP
デフォルトで、Red Hat Quay は実行時にキーのイベントに必要なキースペースイベントを設定しません。これを実行するには、REDIS_SKIP_KEYSPACE_EVENT_SETUP を false に設定します。
EXECUTOR
このタイプの Executor の定義を開始します。有効な値は 'kubernetes' および 'ec2' です。
BUILDER_NAMESPACE
Red Hat Quay ビルドが実行される Kubernetes namespace
K8S_API_SERVER
ビルドが実行される OpenShift クラスターの API サーバーのホスト名
K8S_API_TLS_CA
API 呼び出しの実行時に Quay アプリケーションが信頼するビルドクラスターの CA 証明書の Quay コンテナーのファイルパス。
KUBERNETES_DISTRIBUTION
使用されている Kubernetes のタイプを示します。有効な値は 'openshift' および 'k8s' です。
CONTAINER_*
各ビルド Pod のリソース要求および制限を定義します。
NODE_SELECTOR_*
ビルド Pod がスケジュールされるノードセレクターのラベルの名前/値のペアを定義します。
CONTAINER_RUNTIME
ビルダーが docker または podman を実行するかどうかを指定します。Red Hat の quay-builder イメージを使用しているお客様は、これを podman に設定する必要があります。
SERVICE_ACCOUNT_NAME/SERVICE_ACCOUNT_TOKEN
ビルド Pod によって使用されるサービスアカウントの名前/トークンを定義します。
QUAY_USERNAME/QUAY_PASSWORD
WORKER_IMAGE フィールドに指定される Red Hat Quay ビルドワーカーイメージをプルするために必要なレジストリーの認証情報を定義します。お客様は、記事 (https://access.redhat.com/RegistryAuthentication) の「Creating Registry Service Accounts」のセクションで定義されているように、registry.redhat.io に対して Red Hat Service Account 認証情報を指定する必要があります。
WORKER_IMAGE
Red Hat Quay ビルダーイメージのイメージ参照: registry.redhat.io/quay/quay-builder
WORKER_TAG
必要なビルダーイメージのタグ。最新バージョンは v3.4.0 です。
BUILDER_VM_CONTAINER_IMAGE
各 Red Hat Quay ビルドの実行に必要な内部仮想マシンを保持するコンテナーイメージの完全な参照 (registry.redhat.io/quay/quay-builder-qemu-rhcos:v3.4.0)。
SETUP_TIME
ビルドマネージャーでまだ登録されていない場合に、ビルドのタイムアウトの秒数を指定します (デフォルトは 500 秒)。タイムアウトしたビルドについては、再起動が 3 回試行されます。3 回の試行後にビルドがそれ自体を登録しない場合は失敗したとみなされます。
MINIMUM_RETRY_THRESHOLD
この設定は、複数の Executor で使用されます。これは、別の Executor を選択する前にビルドの開始の再試行回数を示します。0 に設定すると、ビルドジョブの試行回数に制限がないことになります。インフラストラクチャーに障害が発生した場合にフェイルオーバーがすぐに実行されるように、この値を意図的に小さく (3 以下) する必要があります。たとえば、Kubernetes は最初の Executor として設定され、EC2 は 2 番目の Executor として設定されます。最後の試行を Kubernetes ではなく EC2 で常に実行されるようにする必要がある場合、 Kubernetes Executor の MINIMUM_RETRY_THRESHOLD を 1 に、 EC2 の MINIMUM_RETRY_THRESHOLD を 0 (設定されていない場合、デフォルトは 0 になります) に設定します。この場合、kubernetes の MINIMUM_RETRY_THRESHOLD > retries_remaining(1) が False に評価されるため、設定された 2 つ目の Executor にフォールバックします。
SSH_AUTHORIZED_KEYS
Ignition 設定でブートストラップする ssh キーの一覧。これにより、EC2 インスタンスまたは QEMU 仮想マシンに ssh を実行するために他のキーを使用できるようになります。