6.4.3. 启用构建器,并将构建配置添加到 Red Hat Quay Configuration Bundle
- 确保已在 Red Hat Quay 配置中启用了 Builds。
FEATURE_BUILD_SUPPORT: True
- 在 Red Hat Quay 配置捆绑包中添加以下内容,使用特定于您的安装的值替换每个值。
注意
目前,只能通过 Red Hat Quay Config 工具启用构建功能。在 config.yaml 文件中必须手动完成 Build Manager 和 Executors 的实际配置。
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_certs/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
- 启动此类型的 Executor 的定义。有效值为 'kubernetes' 和 'ec2'
- BUILDER_NAMESPACE
- Red Hat Quay 构建所需的 Kubernetes 命名空间
- K8S_API_SERVER
- OpenShift 集群的 API 服务器的主机名,进行构建需要
- K8S_API_TLS_CA
-
构建集群的 CA 证书的
Quay容器中的 filepath,以便在发出 API 调用时信任 Quay 应用。 - KUBERNETES_DISTRIBUTION
- 指明正在使用的 Kubernetes 类型。有效值为 'openshift' 和 'k8s'。
- CONTAINER_*
- 定义每个构建 Pod 的资源请求和限值。
- NODE_SELECTOR_*
- 定义应调度构建 Pod 的节点选择器标签名称/值对。
- CONTAINER_RUNTIME
-
指定构建器是否应该运行
docker还是podman。使用红帽quay-builder镜像的客户应将其设置为podman。 - SERVICE_ACCOUNT_NAME/SERVICE_ACCOUNT_TOKEN
- 定义构建 Pod 将要使用的服务帐户名称/令牌。
- QUAY_USERNAME/QUAY_PASSWORD
- 定义拉取在 WORKER_IMAGE 字段中指定的 Red Hat Quay 构建 worker 镜像所需的 registry 凭证。客户应该提供针对 registry.redhat.io 的"创建注册表服务帐户"一节中的红帽服务帐户凭证,网址为 https://access.redhat.com/RegistryAuthentication
- 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-builder-qemu-rhcos:v3.4.0)所需的内部虚拟机的完整引用。 - SETUP_TIME
- 如果构建还没有在 Build Manager 中注册,则指定超时的秒数(默认为 500 秒)。超时的构建尝试重启三次。如果构建在三个尝试失败后没有注册,它会被视为失败。
- MINIMUM_RETRY_THRESHOLD
-
此设置与多个可执行文件一起使用;它指示在选择不同的执行器前尝试启动构建的次数。设置为 0 意味着构建作业需要没有多少限制。这个值应该被有意保留小(三个或更少),确保在基础架构出现故障时迅速发生故障转移。例如,Kubernetes 设置为第一个 executor 和 EC2 作为第二个执行者。如果我们希望最后一次尝试在 EC2 上始终执行作业,而不是 Kubernetes,我们将 Kubernetes 执行程序的
MINIMUM_RETRY_THRESHOLD设置为 1 和 EC2 的MINIMUM_RETRY_THRESHOLD为 0(如果不设置 0)。在这种情况下,kubernetes'MINIMUM_RETRY_THRESHOLD> retries_remaining(1)将评估为 False,因此回退到配置的第二个 executor - SSH_AUTHORIZED_KEYS
- ignition 配置中 bootstrap 的 ssh 密钥列表。这允许使用其他密钥 ssh 到 EC2 实例或 QEMU 虚拟机