6.4.2. ビルダーの有効化およびRed Hat Quay設定バンドルへのビルド設定の追加

  1. Red Hat Quay の設定で Builds が有効になっていることを確認してください。
FEATURE_BUILD_SUPPORT: True
  1. Red Hat Quay の設定バンドルに以下を追加し、各値をインストールに固有の値で置き換えます。
注記

現在、Red Hat Quay Config Toolを介して有効にできるのはBuild機能自体のみです。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ごとにインスタンス化されるBuild Workerの数を定義します。通常、これは‘1’です。
ORCHESTRATOR_PREFIX
すべてのRedisキーに追加される一意のプレフィックスを定義します(Orchestratorの値を他のRedisキーから分離するのに便利です)。
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
このタイプのエグゼキュータの定義を開始します。有効な値は‘kubernetes’ と ‘ec2’です。
BUILDER_NAMESPACE
Red Hat Quayのビルドが行われるKubernetes名前空間
K8S_API_SERVER
ビルドが行われるOpenShiftクラスタのAPIサーバのホスト名
K8S_API_TLS_CA
QuayアプリケーションがAPIコールを行う際に信頼する、ビルドクラスタのCA証明書のQuayコンテナ内のファイルパス。
KUBERNETES_DISTRIBUTION
使用しているKubernetesの種類を示します。有効な値は‘openshift’ と ‘k8s’です。
CONTAINER_*
各ビルドPodのリソース要求と制限を定義します。
NODE_SELECTOR_*
ビルドPodがスケジューリングされるノードセレクタラベル名と値のペアを定義します。
CONTAINER_RUNTIME
ビルダーがdockerpodmanのどちらを実行するかを指定します。Red Hat のquay-builderイメージを使用しているお客様は、これをpodman に設定してください。
SERVICE_ACCOUNT_NAME/SERVICE_ACCOUNT_TOKEN
ビルドPodで使用されるサービスアカウント名/トークンを定義します。
QUAY_USERNAME/QUAY_PASSWORD
WORKER_IMAGE フィールドで指定された Red Hat Quay ビルドワーカーイメージをプルするために必要なレジストリ認証情報を定義します。お客様は、registry.redhat.io に対してhttps://access.redhat.com/RegistryAuthentication の記事のレジストリーサービスアカウントの作成セクションで定義されている 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
ビルドがまだBuild Managerに登録されていない場合に、タイムアウトする秒数を指定します(デフォルトは500秒)。タイムアウトしたビルドは、3回再起動が試みられます。3回試してもビルドが登録されない場合は、失敗とみなされます。
MINIMUM_RETRY_THRESHOLD
この設定は、複数のエグゼキューターで使用されます。別のエグゼキューターが選択されるまでに、ビルドの開始を何回再試行するかを示します。0に設定すると、ビルドジョブの試行回数に制限はありません。この値は意図的に小さく(3以下)しておくことで、インフラストラクチャーに障害が発生した際にも迅速にフェイルオーバーを行うことができます。例:Kubernetesを第1のエグゼキューター、EC2を第2のエグゼキューターとして設定。ジョブ実行の最後の試行を常にKubernetesではなくEC2で実行したい場合は、KubernetesのエグゼキューターのMINIMUM_RETRY_THRESHOLDを1に、EC2のMINIMUM_RETRY_THRESHOLDを0に設定します(設定されていない場合はデフォルトで0になります)。この場合、kubernetesのMINIMUM_RETRY_THRESHOLD > retries_remaining(1)はFalseと評価され、設定された2番目のエクゼキュータにフォールバックされます。
SSH_AUTHORIZED_KEYS
ignition設定でのブートストラップするsshキーのリスト。これにより、他の鍵を使ってEC2インスタンスやQEMU 仮想マシンにssh接続することができます。