10.9. 构建和自动化
本节概述了在 Red Hat Quay 中管理自动构建的配置选项。这些设置控制如何触发、处理和存储 Dockerfile 构建,以及管理和访问构建日志的方式。
您可以使用这些字段来:
- 启用或禁用源存储库中的自动构建。
- 配置构建管理器的行为和资源管理。
- 控制对构建日志的访问,并保留构建日志,以满足审核或调试的目的。
这些选项可帮助您简化 CI/CD 管道,强制执行构建策略,并保持对 registry 中的构建历史记录的可见性。
其他资源
10.9.1. Dockerfile 构建触发器字段 复制链接链接已复制到粘贴板!
本节介绍了用于从 Dockerfile 和源代码存储库中在 Red Hat Quay 中启用和管理自动构建的配置字段。这些字段允许您定义构建行为,启用或禁用 GitHub、GitLab 和 Bitbucket 触发器的支持,并为每个 SCM 提供程序提供 OAuth 凭证和端点。
字段 | 类型 | 描述 |
---|---|---|
FEATURE_BUILD_SUPPORT | 布尔值 |
是否支持 Dockerfile 构建。 |
SUCCESSIVE_TRIGGER_FAILURE_DISABLE_THRESHOLD | Number |
如果没有设置 |
SUCCESSIVE_TRIGGER_INTERNAL_ERROR_DISABLE_THRESHOLD | Number |
如果没有设置 |
Dockerfile 构建支持示例 YAML
# ... FEATURE_BUILD_SUPPORT: true SUCCESSIVE_TRIGGER_FAILURE_DISABLE_THRESHOLD: 100 SUCCESSIVE_TRIGGER_INTERNAL_ERROR_DISABLE_THRESHOLD: 5 # ...
# ...
FEATURE_BUILD_SUPPORT: true
SUCCESSIVE_TRIGGER_FAILURE_DISABLE_THRESHOLD: 100
SUCCESSIVE_TRIGGER_INTERNAL_ERROR_DISABLE_THRESHOLD: 5
# ...
字段 | 类型 | 描述 |
---|---|---|
FEATURE_GITHUB_BUILD | 布尔值 |
是否支持 GitHub 构建触发器。 |
GITHUB_TRIGGER_CONFIG | 对象 | 使用 GitHub Enterprise 进行构建触发器的配置。 |
.GITHUB_ENDPOINT | 字符串 |
GitHub Enterprise 的端点。 |
.API_ENDPOINT | 字符串 |
要使用的 GitHub Enterprise API 的端点。对于 |
.CLIENT_ID | 字符串 |
此 Red Hat Quay 实例的注册客户端 ID;这不能与 |
.CLIENT_SECRET | 字符串 | 此 Red Hat Quay 实例的注册客户端 secret。 |
GitHub 构建触发器 YAML 示例
字段 | 类型 | 描述 |
---|---|---|
FEATURE_BITBUCKET_BUILD | 布尔值 |
是否支持 Bitbucket 构建触发器。 |
BITBUCKET_TRIGGER_CONFIG | 对象 | 将 BitBucket 用于构建触发器的配置。 |
.CONSUMER_KEY | 字符串 | 此 Red Hat Quay 实例注册的消费者密钥(客户端 ID)。 |
.CONSUMER_SECRET | 字符串 | 此 Red Hat Quay 实例注册的消费者 secret (客户端 secret)。 |
Bitbucket 构建会触发 YAML 示例
字段 | 类型 | 描述 |
---|---|---|
FEATURE_GITLAB_BUILD | 布尔值 |
是否支持 GitLab 构建触发器。 |
GITLAB_TRIGGER_CONFIG | 对象 | 使用 Gitlab 进行构建触发器的配置。 |
.GITLAB_ENDPOINT | 字符串 | 运行 Gitlab Enterprise 的端点。 |
.CLIENT_ID | 字符串 | 此 Red Hat Quay 实例的注册客户端 ID。 |
.CLIENT_SECRET | 字符串 | 此 Red Hat Quay 实例的注册客户端 secret。 |
GitLab 构建会触发 YAML 示例
10.9.2. 构建管理器配置字段 复制链接链接已复制到粘贴板!
以下配置字段控制 Red Hat Quay 的构建管理器组件如何编配和管理容器镜像构建。这包括 Redis coordination、executor 后端(如 Kubernetes 或 EC2、构建器镜像配置和高级调度和重试策略)的设置。
必须配置这些字段,以符合您的基础架构环境和工作负载要求。
字段 | 类型 | 描述 |
---|---|---|
ALLOWED_WORKER_COUNT | 字符串 |
定义每个 Red Hat Quay pod 实例化多少个 Build Workers。通常设置为 |
ORCHESTRATOR_PREFIX | 字符串 | 定义要添加到所有 Redis 密钥的唯一前缀。这可用于将 Orchestrator 值与其他 Redis 键隔离。 |
REDIS_HOST | 对象 | Redis 服务的主机名。 |
REDIS_PASSWORD | 字符串 | 要在 Redis 服务中进行身份验证的密码。 |
REDIS_SSL | 布尔值 | 定义 Redis 连接是否使用 SSL/TLS。 |
REDIS_SKIP_KEYSPACE_EVENT_SETUP | 布尔值 |
默认情况下,Red Hat Quay 不会在运行时设置密钥事件所需的 keyspace 事件。为此,请将 |
EXECUTOR | 字符串 |
启动此类型的可执行文件的定义。有效值为 |
BUILDER_NAMESPACE | 字符串 | 将在其中进行 Red Hat Quay 构建的 Kubernetes 命名空间。 |
K8S_API_SERVER | 对象 | 构建将在其中进行的 OpenShift Container Platform 集群的 API 服务器的主机名。 |
K8S_API_TLS_CA | 对象 |
构建集群 CA 证书的 |
KUBERNETES_DISTRIBUTION | 字符串 |
指明正在使用的 Kubernetes 类型。有效值为 |
CONTAINER_* | 对象 |
定义每个构建 Pod 的资源请求和限值。 |
NODE_SELECTOR_* | 对象 |
定义应调度 |
CONTAINER_RUNTIME | 对象 |
指定 Builder 是否应该运行 |
SERVICE_ACCOUNT_NAME/SERVICE_ACCOUNT_TOKEN | 对象 |
定义 |
QUAY_USERNAME/QUAY_PASSWORD | 对象 |
定义拉取在 |
WORKER_IMAGE | 对象 | Red Hat Quay Builder 镜像的镜像引用。registry.redhat.io/quay/quay-builder |
WORKER_TAG | 对象 | Builder 镜像标签。最新版本为 3。 |
BUILDER_VM_CONTAINER_IMAGE | 对象 |
对包含运行每个 Red Hat Quay Build. ( |
SETUP_TIME | 字符串 |
指定构建尚未通过 Build Manager 注册自己时超时的秒数。默认值为 |
MINIMUM_RETRY_THRESHOLD | 字符串 |
此设置用于多个可执行文件。它指示在选择其他可执行文件前尝试启动构建的次数。设置为 |
SSH_AUTHORIZED_KEYS | 对象 |
|
构建管理器配置字段
10.9.3. 构建日志配置字段 复制链接链接已复制到粘贴板!
本节论述了在 Red Hat Quay 中管理构建日志的可用配置字段。这些设置决定了构建日志的存档、可以访问它们的位置,以及它们的存储方式。
字段 | 类型 | 描述 |
---|---|---|
FEATURE_READER_BUILD_LOGS | 布尔值 |
如果设置为 true,则构建日志可以被有权访问存储库的 |
LOG_ARCHIVE_LOCATION | 字符串 |
存储位置,在 |
LOG_ARCHIVE_PATH | 字符串 |
配置的存储引擎下的路径,其中将归档的构建日志放在 |
构建日志示例 YAML
# ... FEATURE_READER_BUILD_LOGS: true LOG_ARCHIVE_LOCATION: s3_us_east LOG_ARCHIVE_PATH: archives/buildlogs # ...
# ...
FEATURE_READER_BUILD_LOGS: true
LOG_ARCHIVE_LOCATION: s3_us_east
LOG_ARCHIVE_PATH: archives/buildlogs
# ...