配置 Red Hat Quay
第 1 章 Red Hat Quay 配置入门 复制链接链接已复制到粘贴板!
Red Hat Quay 可以通过独立、独立配置或使用 OpenShift Container Platform Red Hat Quay Operator 部署。
如何创建、检索、更新和删除 Red Hat Quay 配置会因您使用的部署类型而异。但是,对于任一部署类型,核心配置选项都相同。内核配置可由以下选项之一设置:
-
直接编辑
config.yaml文件。如需更多信息,请参阅"编辑配置文件"。 - 以编程方式使用配置 API。如需更多信息,请参阅"使用配置 API"。
以可视化方式使用配置工具 UI。
注意从 Red Hat Quay 3.10 开始,在 OpenShift Container Platform 部署中删除了配置工具,这意味着用户无法直接从 OpenShift Container Platform 控制台配置或重新配置。
作为临时解决方案,您可以在本地部署配置工具并创建自己的配置捆绑包。这包括在 OpenShift Container Platform 部署中输入用于 Red Hat Quay 的数据库和存储凭证,生成
config.yaml文件,并使用它来通过命令行界面在 OpenShift Container Platform 上部署 Red Hat Quay。要在本地部署配置工具,请参阅开始使用 Red Hat Quay,并按照"配置 Red Hat Quay"的说明进行操作。
对于 Red Hat Quay 的独立部署,您必须在启动 registry 前提供最低所需的配置参数。启动 Red Hat Quay registry 的最低要求可在 "Retrieving the current configuration" 部分找到。
如果使用 Red Hat Quay Operator 在 OpenShift Container Platform 上安装 Red Hat Quay,则不需要提供配置参数,因为 Red Hat Quay Operator 提供了用于部署 registry 的默认信息。
使用所需配置部署 Red Hat Quay 后,您应该从部署中检索并保存。完整配置包含重启或升级系统时可能需要的额外生成的值。
第 2 章 Red Hat Quay 配置声明器 复制链接链接已复制到粘贴板!
对于基于独立和基于 Operator 的 Red Hat Quay 部署,某些功能和配置参数都不会被主动使用或实施。因此,功能标记(如启用或禁用某些功能)以及没有明确记录或要求的配置参数。红帽支持文档应小心进行修改。未使用的功能或参数可能无法完全测试、支持或与 Red Hat Quay 兼容。修改未使用的功能参数可能会导致您的部署出现意外问题或中断。
有关在独立部署中配置 Red Hat Quay 的详情,请参考 高级 Red Hat Quay 配置
有关配置 Red Hat Quay Operator 部署的详情,请参考在 OpenShift Container Platform 上配置 Red Hat Quay
2.1. Red Hat Quay 3.10 的配置更新 复制链接链接已复制到粘贴板!
以下小节详细介绍了在 Red Hat Quay 3.10 中添加的新配置字段。
2.1.1. 命名空间自动运行配置字段 复制链接链接已复制到粘贴板!
使用 Red Hat Quay 3.10,可以将部署配置为根据指定、分配的数量或创建它们的时间自动修剪旧的镜像标签。
| 字段 | 类型 | 描述 |
| FEATURE_AUTO_PRUNE | 布尔值 |
当设置为 |
| SECURITY_SCANNER_V4_MANIFEST_CLEANUP | 布尔值 |
当设置为 |
| ROBOTS_DISALLOW | 布尔值 |
当设置为 |
| FEATURE_UI_V2_REPO_SETTINGS | 布尔值 |
当设置为 |
2.2. 编辑配置文件 复制链接链接已复制到粘贴板!
要部署独立的 Red Hat Quay 实例,您必须提供最少的配置信息。最小配置的要求可在 "Red Hat Quay minimal configuration" 中找到。
提供必填字段后,您可以验证您的配置。如果有任何问题,将突出显示它们。
可以使用配置 API 来验证配置,但这要求以配置模式启动 Quay 容器。
要在本地部署配置工具,请参阅开始使用 Red Hat Quay,并按照"配置 Red Hat Quay"的说明进行操作。
要使更改生效,必须重启 registry。
2.3. 独立部署中配置文件的位置 复制链接链接已复制到粘贴板!
对于独立的 Red Hat Quay 部署,启动 Red Hat Quay registry 时必须指定 config.yaml 文件。此文件位于配置卷中。例如,在以下命令部署 Red Hat Quay 时,配置文件位于 $QUAY/config/config.yaml :
sudo podman run -d --rm -p 80:8080 -p 443:8443 \ --name=quay \ -v $QUAY/config:/conf/stack:Z \ -v $QUAY/storage:/datastorage:Z \ registry.redhat.io/quay/quay-rhel8:v3.10.5
$ sudo podman run -d --rm -p 80:8080 -p 443:8443 \
--name=quay \
-v $QUAY/config:/conf/stack:Z \
-v $QUAY/storage:/datastorage:Z \
registry.redhat.io/quay/quay-rhel8:v3.10.5
2.4. 最小配置 复制链接链接已复制到粘贴板!
独立部署 Red Hat Quay 需要以下配置选项:
- 服务器主机名
- HTTP 或 HTTPS
- 身份验证类型,例如数据库或轻量级目录访问协议(LDAP)
- 用于加密数据的 secret 密钥
- 镜像存储
- 元数据的数据库
- 用于构建日志和用户事件的 Redis
- 标签过期选项
2.4.1. 最小配置文件示例 复制链接链接已复制到粘贴板!
以下示例显示了使用本地存储进行镜像的最小配置文件示例:
SETUP_COMPLETE 字段表示配置已被验证。您应该在启动 registry 前使用配置来验证配置。
2.4.2. 本地存储 复制链接链接已复制到粘贴板!
只有在部署 registry 进行 概念验证 时,才建议将本地存储用于镜像。
在配置本地存储时,启动 registry 时会在命令行中指定存储。
以下命令将本地目录 $QUAY/storage 映射到容器中的 datastorage 路径:
sudo podman run -d --rm -p 80:8080 -p 443:8443 \ --name=quay \ -v $QUAY/config:/conf/stack:Z \ -v $QUAY/storage:/datastorage:Z \ registry.redhat.io/quay/quay-rhel8:v3.10.5
$ sudo podman run -d --rm -p 80:8080 -p 443:8443 \
--name=quay \
-v $QUAY/config:/conf/stack:Z \
-v $QUAY/storage:/datastorage:Z \
registry.redhat.io/quay/quay-rhel8:v3.10.5
2.4.3. 云存储 复制链接链接已复制到粘贴板!
存储配置在镜像存储部分中详细介绍。对于某些用户,比较 Google Cloud Platform 和本地存储配置之间的区别可能很有用。例如,以下 YAML 提供了 Google Cloud Platform 存储配置:
$QUAY/config/config.yaml
当使用云存储启动 registry 时,命令行不需要配置。例如:
sudo podman run -d --rm -p 80:8080 -p 443:8443 \ --name=quay \ -v $QUAY/config:/conf/stack:Z \ registry.redhat.io/quay/quay-rhel8:v3.10.5
$ sudo podman run -d --rm -p 80:8080 -p 443:8443 \
--name=quay \
-v $QUAY/config:/conf/stack:Z \
registry.redhat.io/quay/quay-rhel8:v3.10.5
第 3 章 配置字段 复制链接链接已复制到粘贴板!
本节介绍了部署 Red Hat Quay 时必需和可选配置字段。
3.1. 所需的配置字段 复制链接链接已复制到粘贴板!
配置 Red Hat Quay 所需的字段包括在以下部分:
3.2. 自动化选项 复制链接链接已复制到粘贴板!
以下小节描述了 Red Hat Quay 部署的可用自动化选项:
3.3. 可选的配置字段 复制链接链接已复制到粘贴板!
Red Hat Quay 的可选字段可在以下部分中找到:
3.4. 常规必填字段 复制链接链接已复制到粘贴板!
下表描述了 Red Hat Quay 部署所需的配置字段:
| 字段 | 类型 | 描述 |
|---|---|---|
|
AUTHENTICATION_TYPE | 字符串 |
用于凭证身份验证的身份验证引擎。 |
|
PREFERRED_URL_SCHEME | 字符串 |
访问 Red Hat Quay 时使用的 URL 方案。 |
|
SERVER_HOSTNAME | 字符串 |
可以访问 Red Hat Quay 的 URL,不包括网络协议。 |
|
DATABASE_SECRET_KEY | 字符串 | 用于加密数据库中敏感字段的密钥。设定后永远不会更改这个值,否则所有依赖字段(如存储库镜像用户名和密码配置)都无效。 |
|
SECRET_KEY | 字符串 | 用于加密会话 Cookie 和用于正确解释用户会话所需的 CSRF 令牌的密钥。设置时不应更改该值。应该在所有 Red Hat Quay 实例中保留。如果没有在所有实例间持久保留,则可能会出现与会话持久性相关的登录失败和其他错误。 |
|
SETUP_COMPLETE | 布尔值 |
这是软件早期版本中保留的工件,目前 必须使用 |
3.5. 数据库配置 复制链接链接已复制到粘贴板!
本节论述了 Red Hat Quay 部署可用的数据库配置字段。
3.5.1. 数据库 URI 复制链接链接已复制到粘贴板!
使用 Red Hat Quay 时,使用所需的 DB_URI 字段配置与数据库的连接。
下表描述了 DB_URI 配置字段:
| 字段 | 类型 | 描述 |
|---|---|---|
|
DB_URI | 字符串 | 用于访问数据库的 URI,包括任何凭据。
postgresql://quayuser:quaypass@quay-server.example.com:5432/quay |
3.5.2. 数据库连接参数 复制链接链接已复制到粘贴板!
可选的连接参数由 DB_CONNECTION_ARGS 参数配置。DB_CONNECTION_ARGS 下定义的部分键值对是通用的,另一些则特定于数据库。
下表描述了数据库连接参数:
| 字段 | 类型 | 描述 |
|---|---|---|
| DB_CONNECTION_ARGS | 对象 | 数据库的可选连接参数,如超时和 SSL/TLS。 |
| .autorollback | 布尔值 |
是否使用线程本地连接。 |
| .threadlocals | 布尔值 |
是否使用自动滚动连接。 |
3.5.2.1. PostgreSQL SSL/TLS 连接参数 复制链接链接已复制到粘贴板!
使用 SSL/TLS 时,配置取决于您要部署的数据库。以下示例显示了 PostgreSQL SSL/TLS 配置:
DB_CONNECTION_ARGS: sslmode: verify-ca sslrootcert: /path/to/cacert
DB_CONNECTION_ARGS:
sslmode: verify-ca
sslrootcert: /path/to/cacert
sslmode 选项决定是否或具有什么优先级,安全 SSL/TLS TCP/IP 连接将与服务器协商。有六个模式:
| 模式 | 描述 |
|---|---|
| disable | 您的配置只尝试非 SSL/TLS 连接。 |
| allow | 您的配置首先尝试非 SSL/TLS 连接。失败时,尝试 SSL/TLS 连接。 |
|
首选 | 您的配置首先尝试 SSL/TLS 连接。失败时,尝试非 SSL/TLS 连接。 |
| require | 您的配置只尝试 SSL/TLS 连接。如果存在 root CA 文件,它会以与指定 verify-ca 相同的方式验证证书。 |
| verify-ca | 您的配置只尝试 SSL/TLS 连接,并验证服务器证书是否由可信证书颁发机构(CA)发布。 |
| verify-full | 只尝试 SSL/TLS 连接,并验证服务器证书是否由可信 CA 发布,并且请求的服务器主机名是否与证书中的匹配。 |
有关 PostgreSQL 的有效参数的更多信息,请参阅 Database Connection Control Functions。
3.5.2.2. MySQL SSL/TLS 连接参数 复制链接链接已复制到粘贴板!
以下示例显示了 MySQL SSL/TLS 配置示例:
DB_CONNECTION_ARGS:
ssl:
ca: /path/to/cacert
DB_CONNECTION_ARGS:
ssl:
ca: /path/to/cacert
有关 MySQL 的有效连接参数的信息,请访问 使用类似URI的字符串或键-值对连接到服务器。
3.6. 镜像存储 复制链接链接已复制到粘贴板!
本节详细介绍了 Red Hat Quay 提供的镜像存储功能和配置字段。
3.6.1. 镜像存储功能 复制链接链接已复制到粘贴板!
下表描述了 Red Hat Quay 的镜像存储功能:
| 字段 | 类型 | 描述 |
|---|---|---|
| FEATURE_REPO_MIRROR | 布尔值 |
如果设置为 true,请启用存储库镜像。 |
| FEATURE_PROXY_STORAGE | 布尔值 |
是否通过 NGINX 代理存储中的所有直接下载 URL。 |
| FEATURE_STORAGE_REPLICATION | 布尔值 |
是否在存储引擎之间自动复制。 |
3.6.2. 镜像存储配置字段 复制链接链接已复制到粘贴板!
下表描述了 Red Hat Quay 的镜像存储配置字段:
| 字段 | 类型 | 描述 |
|---|---|---|
|
DISTRIBUTED_STORAGE_CONFIG | 对象 |
在 Red Hat Quay 中使用的存储引擎的配置。每个键代表存储引擎的唯一标识符。该值由一个元组(key, value)组成,组成一个描述存储引擎参数的对象。 |
|
DISTRIBUTED_STORAGE_DEFAULT_LOCATIONS | 字符串数组 |
存储引擎列表(按 |
|
DISTRIBUTED_STORAGE_PREFERENCE | 字符串数组 |
首选存储引擎(按 |
| MAXIMUM_LAYER_SIZE | 字符串 |
镜像层允许的最大值。 |
3.6.3. 本地存储 复制链接链接已复制到粘贴板!
以下 YAML 显示了使用本地存储配置示例:
3.6.4. OCS/NooBaa 复制链接链接已复制到粘贴板!
以下 YAML 显示了使用 Open Container Storage/NooBaa 实例的示例配置:
3.6.5. Ceph/RadosGW 存储 复制链接链接已复制到粘贴板!
以下示例显示了在使用 Ceph/RadosGW 时可能的两个 YAML 配置。
示例 A:使用带有 radosGWStorage 驱动程序的 RadosGWW
示例 B:使用带有常规 s3 访问的 RadosGW
- 1
- 用于常规 s3 访问。请注意,一般的 s3 访问不严格仅限于 Amazon Web Services (AWS) 3,可用于 RadosGW 或其他存储服务。有关使用 AWS S3 驱动程序的常规 s3 访问示例,请参阅"AWS S3 存储"。
3.6.6. AWS S3 存储 复制链接链接已复制到粘贴板!
以下 YAML 显示了使用 AWS S3 存储的示例配置。
- 1
S3Storage存储驱动程序应该仅用于 AWS S3 存储桶。请注意,这与常规 S3 访问不同,可以使用 RadosGW 驱动程序或其他存储服务。例如,请参阅"示例 B: 使用 RadosGW 带有常规 S3 访问"。
3.6.7. Google Cloud Storage 复制链接链接已复制到粘贴板!
以下 YAML 显示了使用 Google Cloud Storage 的示例配置:
3.6.8. Azure Storage 复制链接链接已复制到粘贴板!
以下 YAML 显示了使用 Azure Storage 的示例配置:
- 1
- Azure 存储的
endpoint_url参数是可选的,可用于 Microsoft Azure Government (MAG)端点。如果留空,则endpoint_url将连接到普通的 Azure 区域。从 Red Hat Quay 3.7 开始,您必须使用 MAG Blob 服务的主端点。使用 MAG Blob 服务的 Secondary 端点将导致以下错误:
AuthenticationErrorDetail:Cannot find the claimed account when trying to GetProperties for the account whusc8-secondary.
3.6.9. Swift 存储 复制链接链接已复制到粘贴板!
以下 YAML 显示了使用 Swift 存储的配置示例:
3.6.10. Nutanix 对象存储 复制链接链接已复制到粘贴板!
以下 YAML 显示了使用 Nutanix 对象存储的示例配置。
3.6.11. IBM Cloud 对象存储 复制链接链接已复制到粘贴板!
以下 YAML 显示了使用 IBM Cloud 对象存储的示例配置。
- 1
- 可选。建议设置为
100mb。
3.7. Redis 配置字段 复制链接链接已复制到粘贴板!
本节详细介绍了 Redis 部署可用的配置字段。
3.7.1. 构建日志 复制链接链接已复制到粘贴板!
以下构建日志配置字段可用于 Redis 部署:
| 字段 | 类型 | 描述 |
|---|---|---|
|
BUILDLOGS_REDIS | 对象 | 构建日志缓存的 redis 连接详情。 |
|
.host | 字符串 |
可以访问 Redis 的主机名。 |
|
.port | Number |
可以访问 Redis 的端口。 |
| .password | 字符串 |
用于连接到 Redis 实例的密码。 |
|
.SSL | 布尔值 | 是否启用 Redis 和 Quay 之间的 TLS 通信。默认为false。 |
3.7.2. 用户事件 复制链接链接已复制到粘贴板!
Redis 部署提供了以下用户事件字段:
| 字段 | 类型 | 描述 |
|---|---|---|
|
USER_EVENTS_REDIS | 对象 | 用户事件处理的 redis 连接详情。 |
|
.host | 字符串 |
可以访问 Redis 的主机名。 |
|
.port | Number |
可以访问 Redis 的端口。 |
| .password | 字符串 |
用于连接到 Redis 实例的密码。 |
| .ssl | 布尔值 | 是否启用 Redis 和 Quay 之间的 TLS 通信。默认为false。 |
|
.ssl_keyfile | 字符串 |
密钥数据库文件的名称,其中包含要使用的客户端证书。 |
|
.ssl_certfile | 字符串 |
用于指定 SSL 证书的文件路径。 |
|
.ssl_cert_reqs | 字符串 |
用于指定在 SSL/TLS 握手期间要执行的证书验证级别。 |
|
.ssl_ca_certs | 字符串 |
用于指定包含可信证书颁发机构(CA)证书列表的文件的路径。 |
|
.ssl_ca_data | 字符串 |
用于指定包含 PEM 格式的可信 CA 证书的字符串。 |
|
.ssl_check_hostname | 布尔值 |
在设置到服务器的 SSL/TLS 连接时使用。它指定客户端是否应该检查服务器的 SSL/TLS 证书中的主机名是否与它所连接的服务器的主机名匹配。 |
3.7.3. Redis 配置示例 复制链接链接已复制到粘贴板!
以下 YAML 显示了使用带有可选 SSL/TLS 字段的 Redis 的示例配置:
如果您的部署对 Redis 使用 Azure Cache,并且 ssl 设为 true,则端口默认为 6380。
3.8. ModelCache 配置选项 复制链接链接已复制到粘贴板!
在 Red Hat Quay 中提供了用于配置 ModelCache 的选项。
3.8.1. memcache 配置选项 复制链接链接已复制到粘贴板!
memcache 是默认的 ModelCache 配置选项。使用 Memcache 时,不需要额外的配置。
3.8.2. 单个 Redis 配置选项 复制链接链接已复制到粘贴板!
以下配置适用于具有可选只读副本的单个 Redis 实例:
3.8.3. 集群 Redis 配置选项 复制链接链接已复制到粘贴板!
对集群的 Redis 实例使用以下配置:
3.9. 标签过期配置字段 复制链接链接已复制到粘贴板!
Red Hat Quay 提供了以下标签过期配置字段:
| 字段 | 类型 | 描述 |
|---|---|---|
| FEATURE_GARBAGE_COLLECTION | 布尔值 |
是否启用仓库的垃圾回收。 |
|
TAG_EXPIRATION_OPTIONS | 字符串数组 |
如果启用,用户可以选择在其命名空间中为标签过期的选项。 |
|
DEFAULT_TAG_EXPIRATION | 字符串 |
时间机器的默认可配置标签过期时间。 |
| FEATURE_CHANGE_TAG_EXPIRATION | 布尔值 |
用户和机构是否允许更改命名空间中标签的标签过期时间。 |
| FEATURE_AUTO_PRUNE | 布尔值 |
当设置为 |
3.9.1. 标签过期配置示例 复制链接链接已复制到粘贴板!
以下 YAML 显示了标签过期配置示例:
3.10. 配额管理配置字段 复制链接链接已复制到粘贴板!
| 字段 | 类型 | 描述 |
|---|---|---|
| FEATURE_QUOTA_MANAGEMENT | 布尔值 | 为配额管理功能启用配置、缓存和验证。 **Default:** `False`
|
| DEFAULT_SYSTEM_REJECT_QUOTA_BYTES | 字符串 | 为所有机构启用系统默认配额拒绝字节允许。 默认情况下,不会设置限制。 |
| QUOTA_BACKFILL | 布尔值 | 启用配额回填工作程序来计算预先存在的 Blob 的大小。
默认: |
| QUOTA_TOTAL_DELAY_SECONDS | 字符串 | 启动配额回填的时间延迟。滚动部署可能会导致总部署不正确。此字段 必须设置为 超过滚动部署完成所需的时间。
默认 :1 |
| PERMANENTLY_DELETE_TAGS | 布尔值 | 启用与从时间窗中删除标签相关的功能。
默认 : |
| RESET_CHILD_MANIFEST_EXPIRATION | 布尔值 |
重置以子清单为目标的临时标签的过期。将这个功能设置为
默认 : |
3.10.1. 配额管理配置示例 复制链接链接已复制到粘贴板!
以下 YAML 是启用配额管理时推荐的配置。
配额管理 YAML 配置
FEATURE_QUOTA_MANAGEMENT: true FEATURE_GARBAGE_COLLECTION: true PERMANENTLY_DELETE_TAGS: true QUOTA_TOTAL_DELAY_SECONDS: 1800 RESET_CHILD_MANIFEST_EXPIRATION: true
FEATURE_QUOTA_MANAGEMENT: true
FEATURE_GARBAGE_COLLECTION: true
PERMANENTLY_DELETE_TAGS: true
QUOTA_TOTAL_DELAY_SECONDS: 1800
RESET_CHILD_MANIFEST_EXPIRATION: true
3.11. 代理缓存配置字段 复制链接链接已复制到粘贴板!
| 字段 | 类型 | 描述 |
|---|---|---|
| FEATURE_PROXY_CACHE | 布尔值 | 使 Red Hat Quay 能够通过上游 registry 的缓存作为拉取(pull)。
默认 : |
3.12. 机器人帐户配置字段 复制链接链接已复制到粘贴板!
| 字段 | 类型 | 描述 |
|---|---|---|
| ROBOTS_DISALLOW | 布尔值 |
当设置为 |
3.13. 预配置 Red Hat Quay 用于自动化 复制链接链接已复制到粘贴板!
Red Hat Quay 支持多种启用自动化的配置选项。用户可以在部署前配置这些选项,以减少与用户界面交互的需求。
3.13.1. 允许 API 创建第一个用户 复制链接链接已复制到粘贴板!
要创建第一个用户,用户需要将 FEATURE_USER_INITIALIZE 参数设置为 true,并调用 /api/v1/user/initialize API。与需要现有机构中 OAuth 应用生成的 OAuth 令牌的所有其他 registry API 调用不同,API 端点不需要身份验证。
在部署 Red Hat Quay 后,用户可以使用 API 创建如 quayadmin 的用户,只要没有创建其他用户。如需更多信息,请参阅使用 API 创建第一个用户。
3.13.2. 启用常规 API 访问 复制链接链接已复制到粘贴板!
用户应将 BROWSER_API_CALLS_XHR_ONLY 配置选项设置为 false,以允许对 Red Hat Quay registry API 的常规访问。
3.13.3. 添加超级用户 复制链接链接已复制到粘贴板!
部署 Red Hat Quay 后,用户可以创建用户,并授予第一个具有完整权限的用户管理员特权。用户可以使用 SUPER_USER 配置对象提前配置完整的权限。例如:
3.13.4. 限制用户创建 复制链接链接已复制到粘贴板!
配置超级用户后,您可以通过将 FEATURE_USER_CREATION 设置为 false 来限制创建新用户到超级用户组的能力。例如:
3.13.5. 在 Red Hat Quay 3.10 中启用新功能 复制链接链接已复制到粘贴板!
要使用新的 Red Hat Quay 3.10 功能,请启用以下一些或所有功能:
3.13.6. 建议自动化配置 复制链接链接已复制到粘贴板!
建议对自动化使用以下 config.yaml 参数:
3.13.7. 使用初始配置部署 Red Hat Quay Operator 复制链接链接已复制到粘贴板!
使用以下步骤使用初始配置在 OpenShift Container Platform 上部署 Red Hat Quay。
先决条件
-
已安装
ocCLI。
流程
使用配置文件创建 secret:
oc create secret generic -n quay-enterprise --from-file config.yaml=./config.yaml init-config-bundle-secret
$ oc create secret generic -n quay-enterprise --from-file config.yaml=./config.yaml init-config-bundle-secretCopy to Clipboard Copied! Toggle word wrap Toggle overflow 创建
quayregistry.yaml文件。识别非受管组件并引用创建的 secret,例如:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 部署 Red Hat Quay registry:
oc create -n quay-enterprise -f quayregistry.yaml
$ oc create -n quay-enterprise -f quayregistry.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
后续步骤
3.13.8. 使用 API 创建第一个用户 复制链接链接已复制到粘贴板!
使用以下步骤在 Red Hat Quay 组织中创建第一个用户。
先决条件
-
配置选项
FEATURE_USER_INITIALIZE必须设置为true。 - 数据库中不能已存在任何用户。
此流程通过指定 "access_token": true 来请求 OAuth 令牌。
打开 Red Hat Quay 配置文件并更新以下配置字段:
FEATURE_USER_INITIALIZE: true SUPER_USERS: - quayadminFEATURE_USER_INITIALIZE: true SUPER_USERS: - quayadminCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输入以下命令停止 Red Hat Quay 服务:
sudo podman stop quay
$ sudo podman stop quayCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输入以下命令启动 Red Hat Quay 服务:
sudo podman run -d -p 80:8080 -p 443:8443 --name=quay -v $QUAY/config:/conf/stack:Z -v $QUAY/storage:/datastorage:Z {productrepo}/{quayimage}:{productminv}$ sudo podman run -d -p 80:8080 -p 443:8443 --name=quay -v $QUAY/config:/conf/stack:Z -v $QUAY/storage:/datastorage:Z {productrepo}/{quayimage}:{productminv}Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下
CURL命令以使用用户名、密码、电子邮件和访问令牌生成新用户:curl -X POST -k http://quay-server.example.com/api/v1/user/initialize --header 'Content-Type: application/json' --data '{ "username": "quayadmin", "password":"quaypass12345", "email": "quayadmin@example.com", "access_token": true}'$ curl -X POST -k http://quay-server.example.com/api/v1/user/initialize --header 'Content-Type: application/json' --data '{ "username": "quayadmin", "password":"quaypass12345", "email": "quayadmin@example.com", "access_token": true}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果成功,命令会返回带有用户名、电子邮件和加密密码的对象。例如:
{"access_token":"6B4QTRSTSD1HMIG915VPX7BMEZBVB9GPNY2FC2ED", "email":"quayadmin@example.com","encrypted_password":"1nZMLH57RIE5UGdL/yYpDOHLqiNCgimb6W9kfF8MjZ1xrfDpRyRs9NUnUuNuAitW","username":"quayadmin"} # gitleaks:allow{"access_token":"6B4QTRSTSD1HMIG915VPX7BMEZBVB9GPNY2FC2ED", "email":"quayadmin@example.com","encrypted_password":"1nZMLH57RIE5UGdL/yYpDOHLqiNCgimb6W9kfF8MjZ1xrfDpRyRs9NUnUuNuAitW","username":"quayadmin"} # gitleaks:allowCopy to Clipboard Copied! Toggle word wrap Toggle overflow 如果用户已在数据库中,则返回错误:
{"message":"Cannot initialize user in a non-empty database"}{"message":"Cannot initialize user in a non-empty database"}Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果您的密码至少不是八个字符或包含空格,则返回错误:
{"message":"Failed to initialize user: Invalid password, password must be at least 8 characters and contain no whitespace."}{"message":"Failed to initialize user: Invalid password, password must be at least 8 characters and contain no whitespace."}Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输入以下命令登录到您的 Red Hat Quay 部署:
sudo podman login -u quayadmin -p quaypass12345 http://quay-server.example.com --tls-verify=false
$ sudo podman login -u quayadmin -p quaypass12345 http://quay-server.example.com --tls-verify=falseCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Login Succeeded!
Login Succeeded!Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.13.8.1. 使用 OAuth 令牌 复制链接链接已复制到粘贴板!
调用 API 后,您可以通过指定返回的 OAuth 代码来调用 Red Hat Quay API 的其余部分。
先决条件
-
您已调用
/api/v1/user/initializeAPI,并传递用户名、密码和电子邮件地址。
流程
输入以下命令来获取当前用户列表:
curl -X GET -k -H "Authorization: Bearer 6B4QTRSTSD1HMIG915VPX7BMEZBVB9GPNY2FC2ED" https://example-registry-quay-quay-enterprise.apps.docs.quayteam.org/api/v1/superuser/users/
$ curl -X GET -k -H "Authorization: Bearer 6B4QTRSTSD1HMIG915VPX7BMEZBVB9GPNY2FC2ED" https://example-registry-quay-quay-enterprise.apps.docs.quayteam.org/api/v1/superuser/users/Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在本实例中,
quayadmin用户的详细信息返回,因为它是目前创建的唯一用户。
3.13.8.2. 使用 API 创建机构 复制链接链接已复制到粘贴板!
以下过程详细介绍了如何使用 API 创建 Red Hat Quay 组织。
先决条件
-
您已调用
/api/v1/user/initializeAPI,并传递用户名、密码和电子邮件地址。 - 您已通过指定返回的 OAuth 代码调用了其余的 Red Hat Quay API。
流程
要创建机构,请使用对
api/v1/organization/端点的 POST 调用:curl -X POST -k --header 'Content-Type: application/json' -H "Authorization: Bearer 6B4QTRSTSD1HMIG915VPX7BMEZBVB9GPNY2FC2ED" https://example-registry-quay-quay-enterprise.apps.docs.quayteam.org/api/v1/organization/ --data '{"name": "testorg", "email": "testorg@example.com"}'$ curl -X POST -k --header 'Content-Type: application/json' -H "Authorization: Bearer 6B4QTRSTSD1HMIG915VPX7BMEZBVB9GPNY2FC2ED" https://example-registry-quay-quay-enterprise.apps.docs.quayteam.org/api/v1/organization/ --data '{"name": "testorg", "email": "testorg@example.com"}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例:
"Created"
"Created"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 您可以输入以下命令检索您创建的机构的详情:
curl -X GET -k --header 'Content-Type: application/json' -H "Authorization: Bearer 6B4QTRSTSD1HMIG915VPX7BMEZBVB9GPNY2FC2ED" https://min-registry-quay-quay-enterprise.apps.docs.quayteam.org/api/v1/organization/testorg
$ curl -X GET -k --header 'Content-Type: application/json' -H "Authorization: Bearer 6B4QTRSTSD1HMIG915VPX7BMEZBVB9GPNY2FC2ED" https://min-registry-quay-quay-enterprise.apps.docs.quayteam.org/api/v1/organization/testorgCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.14. 基本配置字段 复制链接链接已复制到粘贴板!
| 字段 | 类型 | 描述 |
|---|---|---|
| REGISTRY_TITLE | 字符串 |
如果指定了,registry 的长格式标题。在 Red Hat Quay 部署的 frontend 中显示,例如,在您的机构的登录页面中。不应超过 35 个字符。 |
| REGISTRY_TITLE_SHORT | 字符串 |
如果指定了,registry 的简短标题。标题显示在您的机构的各种页面上,例如,作为您机构的 Tutorial 页面上的 教程 的标题。 |
| CONTACT_INFO | 字符串数组 | 如果指定,请联系页面中要显示的联系信息。如果只指定单一的联系信息,请联系页脚将直接链接。 |
| [0] | 字符串 |
添加链接以发送电子邮件。 |
| [1] | 字符串 |
添加链接以访问 IRC chat room。 |
| [2] | 字符串 |
添加链接来调用电话号码。 |
| [3] | 字符串 |
向定义的 URL 添加链接。 |
3.15. SSL 配置字段 复制链接链接已复制到粘贴板!
| 字段 | 类型 | 描述 |
|---|---|---|
| PREFERRED_URL_SCHEME | 字符串 |
|
|
SERVER_HOSTNAME | 字符串 |
可以访问 Red Hat Quay 的 URL,不包括网络协议。 |
| SSL_CIPHERS | 字符串数组 |
如果指定了,用于启用和禁用的 SSL 密码的 nginx 定义列表 |
| SSL_PROTOCOLS | 字符串数组 |
如果指定了,nginx 被配置为启用列表中定义的 SSL 协议列表。从列表中删除 SSL 协议会禁用 Red Hat Quay 启动期间的协议。 |
| SESSION_COOKIE_SECURE | 布尔值 |
对于使用 SSL 的所有安装,是否应在会话 Cookie 中设置 |
3.15.1. 配置 SSL 复制链接链接已复制到粘贴板!
将证书文件和主密钥文件复制到您的配置目录中,确保它们分别命名为
ssl.cert和ssl.key:cp ~/ssl.cert $QUAY/config cp ~/ssl.key $QUAY/config cd $QUAY/config
$ cp ~/ssl.cert $QUAY/config $ cp ~/ssl.key $QUAY/config $ cd $QUAY/configCopy to Clipboard Copied! Toggle word wrap Toggle overflow 编辑
config.yaml文件并指定您希望 Quay 处理 TLS:config.yaml
... SERVER_HOSTNAME: quay-server.example.com ... PREFERRED_URL_SCHEME: https ...
... SERVER_HOSTNAME: quay-server.example.com ... PREFERRED_URL_SCHEME: https ...Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
停止
Quay容器并重启 registry
3.16. 将 TLS 证书添加到 Red Hat Quay Container 复制链接链接已复制到粘贴板!
要将自定义 TLS 证书添加到 Red Hat Quay,请在 Red Hat Quay config 目录下创建一个名为 extra_ca_certs/ 的新目录。将任何所需的特定于站点的 TLS 证书复制到这个新目录中。
3.16.1. 将 TLS 证书添加到 Red Hat Quay 复制链接链接已复制到粘贴板!
查看要添加到容器中的证书
cat storage.crt -----BEGIN CERTIFICATE----- MIIDTTCCAjWgAwIBAgIJAMVr9ngjJhzbMA0GCSqGSIb3DQEBCwUAMD0xCzAJBgNV [...] -----END CERTIFICATE-----
$ cat storage.crt -----BEGIN CERTIFICATE----- MIIDTTCCAjWgAwIBAgIJAMVr9ngjJhzbMA0GCSqGSIb3DQEBCwUAMD0xCzAJBgNV [...] -----END CERTIFICATE-----Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建 certs 目录并复制证书
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用
podman ps获取Quay容器的CONTAINER ID:sudo podman ps
$ sudo podman ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS 5a3e82c4a75f <registry>/<repo>/quay:v3.10.5 "/sbin/my_init" 24 hours ago Up 18 hours 0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp, 443/tcp grave_kellerCopy to Clipboard Copied! Toggle word wrap Toggle overflow 使用该 ID 重启容器:
sudo podman restart 5a3e82c4a75f
$ sudo podman restart 5a3e82c4a75fCopy to Clipboard Copied! Toggle word wrap Toggle overflow 检查复制到容器命名空间中的证书:
sudo podman exec -it 5a3e82c4a75f cat /etc/ssl/certs/storage.pem -----BEGIN CERTIFICATE----- MIIDTTCCAjWgAwIBAgIJAMVr9ngjJhzbMA0GCSqGSIb3DQEBCwUAMD0xCzAJBgNV
$ sudo podman exec -it 5a3e82c4a75f cat /etc/ssl/certs/storage.pem -----BEGIN CERTIFICATE----- MIIDTTCCAjWgAwIBAgIJAMVr9ngjJhzbMA0GCSqGSIb3DQEBCwUAMD0xCzAJBgNVCopy to Clipboard Copied! Toggle word wrap Toggle overflow
3.17. LDAP 配置字段 复制链接链接已复制到粘贴板!
| 字段 | 类型 | 描述 |
|---|---|---|
|
AUTHENTICATION_TYPE | 字符串 |
必须设置为 |
| FEATURE_TEAM_SYNCING | 布尔值 |
是否允许团队成员资格从身份验证引擎(LDAP 或 Keystone)中的后备组中同步。 |
| FEATURE_NONSUPERUSER_TEAM_SYNCING_SETUP | 布尔值 |
如果启用,非超级用户可以使用 LDAP 在团队上设置同步。 |
| LDAP_ADMIN_DN | 字符串 | 用于 LDAP 验证的管理 DN。 |
| LDAP_ADMIN_PASSWD | 字符串 | LDAP 身份验证的 admin 密码。 |
| LDAP_ALLOW_INSECURE_FALLBACK | 布尔值 | 是否允许 SSL 不安全的回退进行 LDAP 身份验证。 |
| LDAP_BASE_DN | 字符串数组 | LDAP 身份验证的基本 DN。 |
| LDAP_EMAIL_ATTR | 字符串 | LDAP 身份验证的电子邮件属性。 |
| LDAP_UID_ATTR | 字符串 | LDAP 身份验证的 uid 属性。 |
| LDAP_URI | 字符串 | LDAP URI。 |
| LDAP_USER_FILTER | 字符串 | LDAP 身份验证的用户过滤器。 |
| LDAP_USER_RDN | 字符串数组 | 用于 LDAP 身份验证的用户 RDN。 |
| TEAM_RESYNC_STALE_TIME | 字符串 |
如果为团队启用了团队同步,需要检查其成员资格和重新同步。 |
| LDAP_SUPERUSER_FILTER | 字符串 |
使用此字段,管理员可以在不更新 Red Hat Quay 配置文件并重启其部署的情况下添加或删除超级用户。
此字段要求您将 |
| LDAP_RESTRICTED_USER_FILTER | 字符串 |
此字段要求您将 |
| LDAP_TIMEOUT | 整数 |
决定与轻量级目录访问协议(LDAP)服务器建立连接的最大时间段(以秒为单位)。 |
| LDAP_NETWORK_TIMEOUT | 整数 |
定义 Red Hat Quay 在网络操作过程中等待轻量级目录访问协议(LDAP)服务器的响应的最长时间(以秒为单位)。 |
3.17.1. LDAP 配置参考 复制链接链接已复制到粘贴板!
使用以下引用,使用所需的配置字段更新 config.yaml 文件。
3.17.1.1. 基本 LDAP 配置 复制链接链接已复制到粘贴板!
3.17.1.2. LDAP 受限用户配置 复制链接链接已复制到粘贴板!
3.17.1.3. LDAP 超级用户配置参考 复制链接链接已复制到粘贴板!
3.18. 镜像配置字段 复制链接链接已复制到粘贴板!
| 字段 | 类型 | 描述 |
|---|---|---|
| FEATURE_REPO_MIRROR | 布尔值 |
启用或禁用存储库镜像 |
| REPO_MIRROR_INTERVAL | Number |
检查存储库镜像候选者之间的秒数 |
| REPO_MIRROR_SERVER_HOSTNAME | 字符串 |
将 |
| REPO_MIRROR_TLS_VERIFY | 布尔值 |
在镜像过程中需要 HTTPS 并验证 Quay registry 的证书。 |
| REPO_MIRROR_ROLLBACK | 布尔值 |
当设置为
默认 : |
3.19. 安全扫描程序配置字段 复制链接链接已复制到粘贴板!
| 字段 | 类型 | 描述 |
|---|---|---|
| FEATURE_SECURITY_SCANNER | 布尔值 |
启用或禁用安全扫描程序 |
| FEATURE_SECURITY_NOTIFICATIONS | 布尔值 |
如果启用了安全扫描程序,请打开或关闭安全通知 |
| SECURITY_SCANNER_V4_REINDEX_THRESHOLD | 字符串 |
此参数用于确定在重新索引以来具有之前失败或自上次索引后更改状态的清单前要等待的最短时间(以秒为单位)。数据从 manifestsecuritystatus 表中的 |
| SECURITY_SCANNER_V4_ENDPOINT | 字符串 |
V4 安全扫描程序的端点 |
| SECURITY_SCANNER_V4_PSK | 字符串 | 为 Clair 生成预共享密钥(PSK) |
| SECURITY_SCANNER_ENDPOINT | 字符串 |
V2 安全扫描程序的端点 |
| SECURITY_SCANNER_INDEXING_INTERVAL | 整数 |
此参数用于确定安全扫描程序中索引间隔间隔之间的秒数。触发索引时,Red Hat Quay 将查询其数据库以获取由 Clair 索引的清单。这包括尚未索引的清单,以及之前失败的索引清单。 |
| FEATURE_SECURITY_SCANNER_NOTIFY_ON_NEW_INDEX | 布尔值 |
是否允许发送有关新推送的漏洞的通知。 |
| SECURITY_SCANNER_V4_MANIFEST_CLEANUP | 布尔值 |
Red Hat Quay 垃圾回收程序会删除没有由其他标签或清单引用的清单。 |
3.19.1. 使用 Clair v4 重新索引 复制链接链接已复制到粘贴板!
当 Clair v4 索引清单时,结果应该是确定的。例如,同一清单应生成相同的索引报告。在扫描程序更改前,这为 true,因为使用不同的扫描程序会生成与报告返回的特定清单相关的不同信息。因此,Clair v4 会公开索引引擎(/indexer/api/v1/index_state)的状态表示,以确定扫描程序配置是否已更改。
Red Hat Quay 通过在解析到 Quay 数据库时将其保存到索引报告中来利用这个索引状态。如果因为清单之前扫描以来此状态已更改,Red Hat Quay 会在定期索引过程中尝试重新索引该清单。
默认情况下,此参数设置为 30 秒。如果用户希望索引过程更频繁地运行,例如,如果他们不希望等待 30 秒在推送新标签后查看 UI 中的安全扫描结果,则用户可能会缩短时间。如果用户希望对请求模式进行更多控制,以及要在 Red Hat Quay 数据库上执行的数据库操作的模式,用户也可以更改参数。
3.19.2. 安全扫描程序配置示例 复制链接链接已复制到粘贴板!
以下 YAML 是启用安全扫描程序功能时推荐的配置。
安全扫描程序 YAML 配置
3.20. Helm 配置字段 复制链接链接已复制到粘贴板!
| 字段 | 类型 | 描述 |
|---|---|---|
| FEATURE_GENERAL_OCI_SUPPORT | 布尔值 |
启用对 OCI 工件的支持。 |
以下 Open Container Initiative (OCI)工件类型默认内置在 Red Hat Quay 中,并通过 FEATURE_GENERAL_OCI_SUPPORT 配置字段启用:
| 字段 | 介质类型 | 支持的内容类型 |
|---|---|---|
| Helm |
|
|
| Cosign |
|
|
| SPDX |
|
|
| Syft |
|
|
| CycloneDX |
|
|
| in-toto |
|
|
| Unknown |
|
|
3.20.1. 配置 Helm 复制链接链接已复制到粘贴板!
以下 YAML 是启用 Helm 时的示例配置。
Helm YAML 配置
FEATURE_GENERAL_OCI_SUPPORT: true
FEATURE_GENERAL_OCI_SUPPORT: true
3.21. 开放容器项目配置字段 复制链接链接已复制到粘贴板!
| 字段 | 类型 | 描述 |
|---|---|---|
| ALLOWED_OCI_ARTIFACT_TYPES | 对象 | 允许的 OCI 工件 mimetypes 和关联的层类型集合。 |
3.21.1. 配置额外的工件类型 复制链接链接已复制到粘贴板!
可以使用 ALLOWED_OCI_ARTIFACT_TYPES 配置字段将默认不支持的其他 OCI 工件类型添加到您的 Red Hat Quay 部署中。
使用以下引用添加额外的 OCI 工件类型:
OCI 工件类型配置
例如,您可以通过将以下内容添加到 config.yaml 文件中来添加单数(SIF)支持:
OCI 工件类型配置示例
当添加不默认配置的 OCI 工件类型时,Red Hat Quay 管理员还需要手动添加对 cosign 和 Helm 的支持。
3.22. 未知介质类型 复制链接链接已复制到粘贴板!
| 字段 | 类型 | 描述 |
|---|---|---|
| IGNORE_UNKNOWN_MEDIATYPES | 布尔值 | 启用后,允许容器 registry 平台对支持的工件类型忽略特定的限制,并接受任何未识别或未知的介质类型。
默认: |
3.22.1. 配置未知介质类型 复制链接链接已复制到粘贴板!
当启用未知或未识别的介质类型时,以下 YAML 是示例配置。
未知介质类型 YAML 配置
IGNORE_UNKNOWN_MEDIATYPES: true
IGNORE_UNKNOWN_MEDIATYPES: true
3.23. 操作日志配置字段 复制链接链接已复制到粘贴板!
3.23.1. 操作日志存储配置 复制链接链接已复制到粘贴板!
| 字段 | 类型 | 描述 |
|---|---|---|
| FEATURE_LOG_EXPORT | 布尔值 |
是否允许导出操作日志。 |
| LOGS_MODEL | 字符串 |
指定处理日志数据的首选方法。 |
| LOGS_MODEL_CONFIG | 对象 | 用于操作日志的日志模型配置。 |
LOGS_MODEL_CONFIG [object]:操作日志的日志模型配置。
elasticsearch_config [object]: Elasticsearch 集群配置。
access_key [string]: Elasticsearch 用户(或 AWS ES 的 IAM 密钥)。
-
示例 :
some_string
-
示例 :
Host [string]: Elasticsearch 集群端点。
-
示例 :
host.elasticsearch.example
-
示例 :
index_prefix [string]: Elasticsearch 的索引前缀。
-
示例:
logentry_
-
示例:
- index_settings [object]: Elasticsearch 的索引设置
use_ssl [boolean]:将 ssl 用于 Elasticsearch。默认值为
True。-
示例:
True
-
示例:
SECRET_KEY [字符串]:Elasticsearch 密码(或 AWS ES 的 IAM secret)。
-
示例 :
some_secret_string
-
示例 :
AWS_REGION [string]: Amazon Web 服务区域。
-
示例:
us-east-1
-
示例:
端口 [number]: Elasticsearch 集群端点端口。
-
示例 :
1234
-
示例 :
kinesis_stream_config [object]: AWS Kinesis Stream 配置。
aws_secret_key [string]: AWS secret key。
-
示例 :
some_secret_key
-
示例 :
stream_name [string]: Kinesis 流将操作日志发送到。
-
示例 :
logentry-kinesis-stream
-
示例 :
aws_access_key [string]: AWS 访问密钥。
-
示例 :
some_access_key
-
示例 :
retries [number]:在单个请求中尝试次数。
-
示例 :
5
-
示例 :
read_timeout [number]:从连接读取时超时前的秒数。
-
示例 :
5
-
示例 :
max_pool_connections [number] :连接池中要保留的最大连接数。
-
示例 :
10
-
示例 :
AWS_REGION [string]: AWS region。
-
示例:
us-east-1
-
示例:
connect_timeout [number]:尝试进行连接时超时前的秒数。
-
示例 :
5
-
示例 :
producer [string]:如果日志记录到 Elasticsearch,则日志制作者。
- Enum: kafka, elasticsearch, kinesis_stream
-
示例 :
kafka
kafka_config [object]: Kafka 集群配置。
topic [string]: Kafka topic 将日志条目发布到。
-
示例 :
logentry
-
示例 :
- bootstrap_servers [array]:从中引导客户端的 Kafka 代理列表。
max_block_seconds [number]: 在
send ()期间最大要阻止的秒数,因为缓冲区已满或元数据不可用。-
示例 :
10
-
示例 :
-
producer [字符串]:
mvapich mvapich_config [object]: Splunk 操作日志的日志模型配置或 Splunk 集群配置。
- Host [string]: Splunk 集群端点。
- port [integer]: Splunk 管理集群端点端口。
- bearer_token [string]: Splunk 的 bearer 令牌。
-
verify_ssl [boolean]: 启用(
True)或为 HTTPS 连接禁用 TLS/SSL 验证。 - index_prefix [string]: Splunk 的索引前缀。
-
ssl_ca_path [字符串]:指向包含用于 SSL 验证的证书颁发机构(CA)的单个
.pem文件的相对容器路径。
3.23.2. 操作日志轮转和归档配置 复制链接链接已复制到粘贴板!
| 字段 | 类型 | 描述 |
|---|---|---|
| FEATURE_ACTION_LOG_ROTATION | 布尔值 |
启用日志轮转和归档会将所有超过 30 天的日志移到存储。 |
| ACTION_LOG_ARCHIVE_LOCATION | 字符串 |
如果启用了操作日志存档,则在其中放置存档数据的存储引擎。 |
| ACTION_LOG_ARCHIVE_PATH | 字符串 |
如果启用了操作日志存档,则存储中要放置存档数据的路径。 |
| ACTION_LOG_ROTATION_THRESHOLD | 字符串 |
轮转日志的时间间隔。 |
3.23.3. 操作日志审计配置 复制链接链接已复制到粘贴板!
| 字段 | 类型 | 描述 |
|---|---|---|
| ACTION_LOG_AUDIT_LOGINS | 布尔值 |
当设置为 |
3.24. 构建日志配置字段 复制链接链接已复制到粘贴板!
| 字段 | 类型 | 描述 |
|---|---|---|
| FEATURE_READER_BUILD_LOGS | 布尔值 |
如果设置为 true,则构建日志可以被对存储库具有读取访问权限的用户 |
| LOG_ARCHIVE_LOCATION | 字符串 |
在 |
| LOG_ARCHIVE_PATH | 字符串 |
配置的存储引擎下的路径,在其中将归档的构建日志放在 |
3.25. Dockerfile 构建触发器字段 复制链接链接已复制到粘贴板!
| 字段 | 类型 | 描述 |
|---|---|---|
| FEATURE_BUILD_SUPPORT | 布尔值 |
是否支持 Dockerfile 构建。 |
| SUCCESSIVE_TRIGGER_FAILURE_DISABLE_THRESHOLD | Number |
如果没有设置 |
| SUCCESSIVE_TRIGGER_INTERNAL_ERROR_DISABLE_THRESHOLD | Number |
如果没有设置 |
3.25.1. GitHub 构建触发器 复制链接链接已复制到粘贴板!
| 字段 | 类型 | 描述 |
|---|---|---|
| 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。 |
3.25.2. Bitbucket 构建触发器 复制链接链接已复制到粘贴板!
| 字段 | 类型 | 描述 |
|---|---|---|
| FEATURE_BITBUCKET_BUILD | 布尔值 |
是否支持 Bitbucket 构建触发器。 |
|
|
|
|
| BITBUCKET_TRIGGER_CONFIG | 对象 | 使用 BitBucket 进行构建触发器的配置。 |
|
.CONSUMER_KEY | 字符串 | 此 Red Hat Quay 实例注册的使用者密钥(客户端 ID)。 |
|
.CONSUMER_SECRET | 字符串 | 此 Red Hat Quay 实例注册的消费者 secret (客户端 secret)。 |
3.25.3. GitLab 构建触发器 复制链接链接已复制到粘贴板!
| 字段 | 类型 | 描述 |
|---|---|---|
| FEATURE_GITLAB_BUILD | 布尔值 |
是否支持 GitLab 构建触发器。 |
|
|
|
|
| GITLAB_TRIGGER_CONFIG | 对象 | 使用 Gitlab 进行构建触发器的配置。 |
|
.GITLAB_ENDPOINT | 字符串 | 运行 Gitlab Enterprise 的端点。 |
|
.CLIENT_ID | 字符串 | 此 Red Hat Quay 实例的注册的客户端 ID。 |
|
.CLIENT_SECRET | 字符串 | 此 Red Hat Quay 实例的注册的客户端 secret。 |
3.26. 构建管理器配置字段 复制链接链接已复制到粘贴板!
| 字段 | 类型 | 描述 |
|---|---|---|
| ALLOWED_WORKER_COUNT | 字符串 |
定义每个 Red Hat Quay pod 实例化多少个 Build Worker。通常设置为 |
| ORCHESTRATOR_PREFIX | 字符串 | 定义添加到所有 Redis 密钥的唯一前缀。这可用于将 Orchestrator 值与其他 Redis 键隔离。 |
| REDIS_HOST | 对象 | Redis 服务的主机名。 |
| REDIS_PASSWORD | 字符串 | 在 Redis 服务中进行身份验证的密码。 |
| REDIS_SSL | 布尔值 | 定义您的 Redis 连接是否使用 SSL/TLS。 |
| REDIS_SKIP_KEYSPACE_EVENT_SETUP | 布尔值 |
默认情况下,Red Hat Quay 不会在运行时设置关键事件所需的关键空间事件。为此,请将 |
| EXECUTOR | 字符串 |
启动此类型的可执行文件定义。有效值为 |
| BUILDER_NAMESPACE | 字符串 | 将进行 Red Hat Quay 构建的 Kubernetes 命名空间。 |
| K8S_API_SERVER | 对象 | 发生 Builds 的 OpenShift Container Platform 集群的 API 服务器的主机名。 |
| K8S_API_TLS_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.10。 |
| BUILDER_VM_CONTAINER_IMAGE | 对象 |
对包含运行每个 Red Hat Quay Build. ( |
| SETUP_TIME | 字符串 |
指定在 Build Manager 中尚未注册自身时构建超时的秒数。默认值为 |
| MINIMUM_RETRY_THRESHOLD | 字符串 |
此设置与多个可执行文件一起使用。它指示在选择不同的可执行文件前尝试启动构建的次数。设置为 |
| SSH_AUTHORIZED_KEYS | 对象 |
在 |
3.27. OAuth 配置字段 复制链接链接已复制到粘贴板!
| 字段 | 类型 | 描述 |
|---|---|---|
| DIRECT_OAUTH_CLIENTID_WHITELIST | 字符串数组 | 允许在没有用户批准的情况下执行直接 OAuth 批准的 Quay 管理 的应用程序的客户端 ID 列表。 |
3.27.1. GitHub OAuth 配置字段 复制链接链接已复制到粘贴板!
| 字段 | 类型 | 描述 |
|---|---|---|
| FEATURE_GITHUB_LOGIN | 布尔值 |
是否支持 GitHub 登录 |
| GITHUB_LOGIN_CONFIG | 对象 | 使用 GitHub (企业)作为外部登录提供程序的配置。 |
| .ALLOWED_ORGANIZATIONS | 字符串数组 | GitHub (Enterprise)组织的名称列入白名单以与 ORG_RESTRICT 选项配合使用。 |
| .API_ENDPOINT | 字符串 |
要使用的 GitHub (Enterprise) API 的端点。必须覆盖 github.com |
|
.CLIENT_ID | 字符串 |
此 Red Hat Quay 实例注册的客户端 ID;不能与 |
|
.CLIENT_SECRET | 字符串 |
此 Red Hat Quay 实例注册的客户端 secret。 |
|
.GITHUB_ENDPOINT | 字符串 |
GitHub (Enterprise)的端点。 |
| .ORG_RESTRICT | 布尔值 | 如果为 true,则只有机构白名单中的用户可以使用这个供应商登录。 |
3.27.2. Google OAuth 配置字段 复制链接链接已复制到粘贴板!
| 字段 | 类型 | 描述 |
|---|---|---|
| FEATURE_GOOGLE_LOGIN | 布尔值 |
是否支持 Google 登录。 |
| GOOGLE_LOGIN_CONFIG | 对象 | 使用 Google 进行外部身份验证的配置。 |
|
.CLIENT_ID | 字符串 |
此 Red Hat Quay 实例的注册的客户端 ID。 |
|
.CLIENT_SECRET | 字符串 |
此 Red Hat Quay 实例注册的客户端 secret。 |
3.28. OIDC 配置字段 复制链接链接已复制到粘贴板!
| 字段 | 类型 | 描述 |
|
<string>_LOGIN_CONFIG | 字符串 |
包含 OIDC 配置设置的父键。通常,OIDC 供应商的名称,如 |
|
.CLIENT_ID | 字符串 |
此 Red Hat Quay 实例的注册的客户端 ID。 |
|
.CLIENT_SECRET | 字符串 |
此 Red Hat Quay 实例注册的客户端 secret。 |
| .DEBUGLOG | 布尔值 | 是否启用调试。 |
| .LOGIN_BINDING_FIELD | 字符串 | 当内部授权设置为 LDAP 时使用。Red Hat Quay 读取此参数,并尝试使用此用户名为用户搜索 LDAP 树。如果存在,它会自动创建到该 LDAP 帐户的链接。 |
| .LOGIN_SCOPES | 对象 | 添加 Red Hat Quay 用来与 OIDC 供应商通信的其他范围。 |
| .OIDC_ENDPOINT_CUSTOM_PARAMS | 字符串 |
支持 OIDC 端点上的自定义查询参数。支持以下端点: |
| .OIDC_ISSUER | 字符串 |
允许用户定义要验证的签发者。例如,JWT 令牌容器是一个称为 的参数,它定义谁发出了令牌。 |
|
.OIDC_SERVER | 字符串 |
用于身份验证的 OIDC 服务器地址。 |
| .PREFERRED_USERNAME_CLAIM_NAME | 字符串 | 将首选用户名设置为令牌中的参数。 |
| .SERVICE_ICON | 字符串 | 更改登录屏幕上的图标。 |
|
.SERVICE_NAME | 字符串 |
正在验证的服务名称。 |
| .VERIFIED_EMAIL_CLAIM_NAME | 字符串 | 用于验证用户电子邮件地址的声明名称。 |
3.28.1. OIDC 配置 复制链接链接已复制到粘贴板!
以下示例显示了 OIDC 配置示例。
OIDC 配置示例
3.29. 嵌套存储库配置字段 复制链接链接已复制到粘贴板!
在 FEATURE_EXTENDED_REPOSITORY_NAMES 属性下添加了对嵌套存储库路径名称的支持。此可选配置默认添加到 config.yaml 中。启用允许在存储库名称中使用 /。
| 字段 | 类型 | 描述 |
|---|---|---|
| FEATURE_EXTENDED_REPOSITORY_NAMES | 布尔值 |
启用对嵌套软件仓库的支持 |
OCI 和嵌套存储库配置示例
FEATURE_EXTENDED_REPOSITORY_NAMES: true
FEATURE_EXTENDED_REPOSITORY_NAMES: true
3.30. QuayIntegration 配置字段 复制链接链接已复制到粘贴板!
以下配置字段可用于 QuayIntegration 自定义资源:
| Name | 描述 | 模式 |
|---|---|---|
|
allowlistNamespaces | 要包含的命名空间列表。 | Array |
|
clusterid | 与此集群关联的 ID。 | 字符串 |
|
credentialsSecret.key | 包含与 Quay registry 通信的凭据的机密。 | 对象 |
|
denylistNamespaces | 要排除的命名空间列表。 | Array |
|
insecureRegistry | 是否跳过 Quay registry 的 TLS 验证 | 布尔值 |
|
quayHostname | Quay registry 的主机名。 | 字符串 |
|
scheduledImageStreamImport | 是否启用镜像流导入。 | 布尔值 |
3.31. 邮件配置字段 复制链接链接已复制到粘贴板!
| 字段 | 类型 | 描述 |
|---|---|---|
| FEATURE_MAILING | 布尔值 |
是否启用电子邮件 |
| MAIL_DEFAULT_SENDER | 字符串 |
如果指定了,当 Red Hat Quay 发送电子邮件时,电子邮件地址用作 |
| MAIL_PASSWORD | 字符串 | 发送电子邮件时要使用的 SMTP 密码 |
| MAIL_PORT | Number | 要使用的 SMTP 端口。如果没有指定,则默认为 587。 |
| MAIL_SERVER | 字符串 |
用于发送电子邮件的 SMTP 服务器。仅在 FEATURE_MAILING 设为 true 时才需要。 |
| MAIL_USERNAME | 字符串 | 发送电子邮件时要使用的 SMTP 用户名 |
| MAIL_USE_TLS | 布尔值 |
如果指定了,是否使用 TLS 发送电子邮件 |
3.32. 用户配置字段 复制链接链接已复制到粘贴板!
| 字段 | 类型 | 描述 |
|---|---|---|
| FEATURE_SUPER_USERS | 布尔值 |
是否支持超级用户 |
| FEATURE_USER_CREATION | 布尔值 |
是否可以创建用户(非超级用户) |
| FEATURE_USER_LAST_ACCESSED | 布尔值 |
是否记录用户最后一次访问的时间 |
| FEATURE_USER_LOG_ACCESS | 布尔值 |
如果设置为 true,用户将有权访问其命名空间的审计日志 |
| FEATURE_USER_METADATA | 布尔值 |
是否收集和支持用户元数据 |
| FEATURE_USERNAME_CONFIRMATION | 布尔值 |
如果设置为 true,用户可以在通过 OpenID Connect (OIDC)或非数据库内部身份验证供应商(如 LDAP)登录时确认和修改其初始用户名。 |
| FEATURE_USER_RENAME | 布尔值 |
如果设置为 true,用户可以重命名自己的命名空间 |
| FEATURE_INVITE_ONLY_USER_CREATION | 布尔值 |
正在创建的用户是否需要被其他用户邀请 |
| FRESH_LOGIN_TIMEOUT | 字符串 |
新登录需要用户重新输入其密码的时间 |
| USERFILES_LOCATION | 字符串 |
用于放置用户上传的文件的存储引擎 ID |
| USERFILES_PATH | 字符串 |
在存储下放置用户上传的文件的路径 |
| USER_RECOVERY_TOKEN_LIFETIME | 字符串 |
恢复用户帐户的令牌长度为有效 |
| FEATURE_SUPERUSERS_FULL_ACCESS | 布尔值 | 授予超级用户从他们没有或具有显式权限的命名空间中其他存储库中读取、写入和删除内容的权限。
Default: |
| FEATURE_SUPERUSERS_ORG_CREATION_ONLY | 布尔值 | 是否只允许超级用户创建机构。
Default: |
| FEATURE_RESTRICTED_USERS | 布尔值 |
使用
Default: |
| RESTRICTED_USERS_WHITELIST | 字符串 |
当使用 |
| GLOBAL_READONLY_SUPER_USERS | 字符串 | 设置后,授予此列表用户对所有存储库的读取访问权限,无论它们是公共存储库。 |
3.32.1. 用户配置字段参考 复制链接链接已复制到粘贴板!
使用以下引用,使用所需的配置字段更新 config.yaml 文件。
3.32.1.1. FEATURE_SUPERUSERS_FULL_ACCESS 配置参考 复制链接链接已复制到粘贴板!
--- SUPER_USERS: - quayadmin FEATURE_SUPERUSERS_FULL_ACCESS: True ---
---
SUPER_USERS:
- quayadmin
FEATURE_SUPERUSERS_FULL_ACCESS: True
---
3.32.1.2. GLOBAL_READONLY_SUPER_USERS 配置参考 复制链接链接已复制到粘贴板!
---
GLOBAL_READONLY_SUPER_USERS:
- user1
---
---
GLOBAL_READONLY_SUPER_USERS:
- user1
---
3.32.1.3. FEATURE_RESTRICTED_USERS 配置参考 复制链接链接已复制到粘贴板!
3.32.1.4. RESTRICTED_USERS_WHITELIST 配置参考 复制链接链接已复制到粘贴板!
先决条件
-
在
config.yaml文件中将FEATURE_RESTRICTED_USERS设置为true。
当设置此字段时,即使将 FEATURE_RESTRICTED_USERS 设置为 true,也可以从存储库创建机构或读取或写入内容。其他用户(如 user2、 user3 和 user4) 仅限于创建机构、读取或写入内容
3.33. reCAPTCHA 配置字段 复制链接链接已复制到粘贴板!
| 字段 | 类型 | 描述 |
|---|---|---|
| FEATURE_RECAPTCHA | 布尔值 |
用户登录和恢复需要 Recaptcha |
| RECAPTCHA_SECRET_KEY | 字符串 | 如果启用了 recaptcha,Recaptcha 服务的 secret 密钥 |
| RECAPTCHA_SITE_KEY | 字符串 | 如果启用了 recaptcha,则 Recaptcha 服务的站点密钥 |
3.34. ACI 配置字段 复制链接链接已复制到粘贴板!
| 字段 | 类型 | 描述 |
|---|---|---|
| FEATURE_ACI_CONVERSION | 布尔值 |
是否启用到 ACI |
| GPG2_PRIVATE_KEY_FILENAME | 字符串 | 用于解密 ACI 的私钥的文件名 |
| GPG2_PRIVATE_KEY_NAME | 字符串 | 用于签署 ACI 的私钥的名称 |
| GPG2_PUBLIC_KEY_FILENAME | 字符串 | 用于加密 ACI 的公钥的文件名 |
3.35. JWT 配置字段 复制链接链接已复制到粘贴板!
| 字段 | 类型 | 描述 |
|---|---|---|
| JWT_AUTH_ISSUER | 字符串 |
JWT 用户的端点 |
| JWT_GETUSER_ENDPOINT | 字符串 |
JWT 用户的端点 |
| JWT_QUERY_ENDPOINT | 字符串 |
JWT 查询的端点 |
| JWT_VERIFY_ENDPOINT | 字符串 |
JWT 验证的端点 |
3.36. 应用程序令牌配置字段 复制链接链接已复制到粘贴板!
| 字段 | 类型 | 描述 |
|---|---|---|
| FEATURE_APP_SPECIFIC_TOKENS | 布尔值 |
如果启用,用户可以创建令牌以供 Docker CLI |
| APP_SPECIFIC_TOKEN_EXPIRATION | 字符串 |
外部应用程序令牌的过期时间。 |
| EXPIRED_APP_SPECIFIC_TOKEN_GC | 字符串 |
过期的外部应用程序令牌的持续时间将在垃圾回收前保留 |
3.37. 其它配置字段 复制链接链接已复制到粘贴板!
| 字段 | 类型 | 描述 |
|---|---|---|
| ALLOW_PULLS_WITHOUT_STRICT_LOGGING | 字符串 |
如果为 true,即使无法写入 pull audit 日志条目,也会成功拉取。如果数据库处于只读状态,这很有用,此时需要拉取(pull)以继续操作。 |
| AVATAR_KIND | 字符串 |
要显示的 avatars,可以是生成的内联(本地)或 Gravatar (gravatar) |
| BROWSER_API_CALLS_XHR_ONLY | 布尔值 |
如果启用,则只允许被标记为来自浏览器的、由 XHR 发出的 API 调用 |
| DEFAULT_NAMESPACE_MAXIMUM_BUILD_COUNT | Number |
可以在命名空间中排队的默认构建的最大数量。 |
| ENABLE_HEALTH_DEBUG_SECRET | 字符串 | 如果指定,可以向健康端点赋予一个 secret,以便在不作为超级用户进行身份验证时查看完整的调试信息 |
| EXTERNAL_TLS_TERMINATION | 布尔值 |
如果支持 TLS,则设为 |
| FRESH_LOGIN_TIMEOUT | 字符串 |
新登录需要用户重新输入其密码的时间 |
| HEALTH_CHECKER | 字符串 |
配置的健康检查 |
| PROMETHEUS_NAMESPACE | 字符串 |
应用到所有公开的 Prometheus metrics |
| PUBLIC_NAMESPACES | 字符串数组 | 如果命名空间定义在公共命名空间列表中,则它将在 所有 用户的存储库列表页上显示,无论用户是否是命名空间的成员。通常,这供企业客户用来配置一组"well-known"命名空间。 |
| REGISTRY_STATE | 字符串 |
registry 的状态 |
| SEARCH_MAX_RESULT_PAGE_COUNT | Number |
在用户限制前,用户可以在搜索中分页的最大页面数 |
| SEARCH_RESULTS_PER_PAGE | Number |
按搜索页面按页面返回的结果数 |
| V2_PAGINATION_SIZE | Number |
V2 registry API 中每个页面返回的结果数 |
| WEBHOOK_HOSTNAME_BLACKLIST | 字符串数组 | 验证超过 localhost 时禁止 Webhook 的主机名集合 |
| CREATE_PRIVATE_REPO_ON_PUSH | 布尔值 |
通过推送创建的新存储库是否设置为私有可见性 |
| CREATE_NAMESPACE_ON_PUSH | 布尔值 |
新推送到不存在的机构时是否创建它 |
| NON_RATE_LIMITED_NAMESPACES | 字符串数组 |
如果使用 |
| 布尔值 | 设置后,允许用户尝试 beta UI 环境。
Default: | |
| FEATURE_REQUIRE_TEAM_INVITE | 布尔值 |
在将用户添加到团队时是否需要邀请 |
| FEATURE_REQUIRE_ENCRYPTED_BASIC_AUTH | 布尔值 |
未加密的密码(而不是加密令牌)都可用于基本 auth |
| FEATURE_RATE_LIMITS | 布尔值 |
是否启用对 API 和 registry 端点的速率限制。将 FEATURE_RATE_LIMITS 设置为 |
| FEATURE_FIPS | 布尔值 |
如果设置为 true,Red Hat Quay 将使用 FIPS 兼容哈希功能运行 |
| FEATURE_AGGREGATED_LOG_COUNT_RETRIEVAL | 布尔值 |
是否允许检索聚合的日志计数 |
| FEATURE_ANONYMOUS_ACCESS | 布尔值 |
是否允许匿名用户浏览和拉取公共存储库 |
| FEATURE_DIRECT_LOGIN | 布尔值 |
用户是否可以直接登录到 UI |
| FEATURE_LIBRARY_SUPPORT | 布尔值 |
从 Docker |
| FEATURE_PARTIAL_USER_AUTOCOMPLETE | 布尔值 |
如果设置为 true,则自动完成将应用到部分 usernames+ |
| FEATURE_PERMANENT_SESSIONS | 布尔值 |
会话是永久的 |
| FEATURE_PUBLIC_CATALOG | 布尔值 |
如果设置为 true, |
3.38. 旧配置字段 复制链接链接已复制到粘贴板!
以下字段已弃用或过时。
| 字段 | 类型 | 描述 |
|---|---|---|
| FEATURE_BLACKLISTED_EMAILS | 布尔值 | 如果设置为 true,则在将电子邮件域列入黑名单时不会创建新的用户帐户 |
| BLACKLISTED_EMAIL_DOMAINS | 字符串数组 |
如果 FEATURE_BLACKLISTED_EMAILS 设置为 true 时使用的电子邮件地址域列表为 true |
| BLACKLIST_V2_SPEC | 字符串 |
Red Hat Quay 将响应的 Docker CLI 版本不支持 |
| DOCUMENTATION_ROOT | 字符串 | 文档链接的根 URL |
| SECURITY_SCANNER_V4_NAMESPACE_WHITELIST | 字符串 | 应该启用安全扫描程序的命名空间 |
| FEATURE_RESTRICTED_V1_PUSH | 布尔值 |
如果设置为 true,则只有 V1_PUSH_WHITELIST 中列出的命名空间支持 V1 push |
| V1_PUSH_WHITELIST | 字符串数组 | 如果 FEATURE_RESTRICTED_V1_PUSH 设置为 true,则支持 V1 push 的命名空间名称数组 |
| FEATURE_HELM_OCI_SUPPORT | 布尔值 |
启用对 Helm 工件的支持。 |
3.39. 用户界面 v2 配置字段 复制链接链接已复制到粘贴板!
| 字段 | 类型 | 描述 |
|---|---|---|
| FEATURE_UI_V2 | 布尔值 | 设置后,允许用户尝试 beta UI 环境。
+ 默认值: |
| FEATURE_UI_V2_REPO_SETTINGS | 布尔值 |
当设置为
+ 默认值: |
3.39.1. v2 用户界面配置 复制链接链接已复制到粘贴板!
启用 FEATURE_UI_V2 后,您可以在用户界面的当前版本和用户界面的新版本间切换。
- 这个 UI 目前处于 beta 阶段,可能会有变化。在其当前状态中,用户只能创建、查看和删除机构、存储库和镜像标签。
- 在旧 UI 中运行 Red Hat Quay 时,超时会话将在弹出窗口中再次输入其密码。使用新的 UI 时,用户将返回到主页面,并需要输入其用户名和密码凭证。这是一个已知问题,并将在以后的新 UI 版本中解决。
- 在传统 UI 和新 UI 之间如何报告镜像清单大小时,有一个差异。在传统 UI 中,镜像清单以兆字节为单位报告。在新 UI 中,Red Hat Quay 使用标准定义 megabyte (MB)来报告镜像清单大小。
流程
在部署的
config.yaml文件中,添加FEATURE_UI_V2参数并将其设置为true,例如:--- FEATURE_TEAM_SYNCING: false FEATURE_UI_V2: true FEATURE_USER_CREATION: true ---
--- FEATURE_TEAM_SYNCING: false FEATURE_UI_V2: true FEATURE_USER_CREATION: true ---Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 登录到您的 Red Hat Quay 部署。
在 Red Hat Quay 部署的导航窗格中,会给一个可以在 Current UI 和 New UI 之间切换的选项。点击切换按钮将其设置为新 UI,然后点 Use Beta Environment,例如:
3.40. IPv6 配置字段 复制链接链接已复制到粘贴板!
| 字段 | 类型 | 描述 |
|---|---|---|
| FEATURE_LISTEN_IP_VERSION | 字符串 | 启用 IPv4、IPv6 或双栈协议系列。必须正确设置此配置字段,否则 Red Hat Quay 无法启动。
默认:
其他配置: |
3.41. 品牌配置字段 复制链接链接已复制到粘贴板!
| 字段 | 类型 | Description |
|---|---|---|
| 品牌 | 对象 | Red Hat Quay UI 中的徽标和 URL 的自定义品牌。 |
|
.logo | 字符串 |
主徽标图像 URL.
标头徽标默认为 205x30 PX。Web UI 屏幕上的表单徽标默认为 356.5x39.7 PX。 |
| .footer_img | 字符串 |
UI footer 的徽标。默认为 144x34 PX. |
| .footer_url | 字符串 |
footer 镜像的链接。 |
3.41.1. Red Hat Quay 品牌配置示例 复制链接链接已复制到粘贴板!
品牌 config.yaml 示例
BRANDING:
logo: https://www.mend.io/wp-content/media/2020/03/5-tips_small.jpg
footer_img: https://www.mend.io/wp-content/media/2020/03/5-tips_small.jpg
footer_url: https://opensourceworld.org/
BRANDING:
logo: https://www.mend.io/wp-content/media/2020/03/5-tips_small.jpg
footer_img: https://www.mend.io/wp-content/media/2020/03/5-tips_small.jpg
footer_url: https://opensourceworld.org/
3.42. 会话超时配置字段 复制链接链接已复制到粘贴板!
以下配置字段依赖于相同名称的 Flask API 配置字段。
| 字段 | 类型 | 描述 |
|---|---|---|
| PERMANENT_SESSION_LIFETIME | 整数 |
用于设置永久会话的过期日期
默认: |
3.42.1. 会话超时配置示例 复制链接链接已复制到粘贴板!
以下 YAML 是启用会话生命周期时的建议配置。
不建议更改会话生命周期。在设置会话超时时,管理员应了解分配的时间。如果您设置的时间过早,它可能会中断您的工作流。
会话超时 YAML 配置
PERMANENT_SESSION_LIFETIME: 3000
PERMANENT_SESSION_LIFETIME: 3000
第 4 章 环境变量 复制链接链接已复制到粘贴板!
Red Hat Quay 支持有限的动态配置环境变量。
4.1. geo-replication 复制链接链接已复制到粘贴板!
除存储后端外,应该使用相同的配置,但可以使用 QUAY_DISTRIBUTED_STORAGE_PREFERENCE 环境变量明确配置。
| 变量 | 类型 | 描述 |
|---|---|---|
| QUAY_DISTRIBUTED_STORAGE_PREFERENCE | 字符串 | 首选存储引擎(通过 DISTRIBUTED_STORAGE_CONFIG 中的 ID)。 |
4.2. 数据库连接池 复制链接链接已复制到粘贴板!
Red Hat Quay 由许多不同进程组成,它们在同一容器中运行。其中许多进程与数据库交互。
如果启用,与数据库交互的每个进程都将包含一个连接池。这些每个进程的连接池配置为最多维护 20 个连接。在负载过重时,可以为 Red Hat Quay 容器中的每个进程填充连接池。在某些部署和负载下,可能需要分析以确保 Red Hat Quay 不超过配置的数据库的最大连接计数。
随着时间的推移,连接池将释放闲置连接。要立即释放所有连接,Red Hat Quay 需要重启。
可以通过将环境变量 DB_CONNECTION_POOLING 设置为 true 或 false 来切换数据库连接池。
| 变量 | 类型 | 描述 |
|---|---|---|
| DB_CONNECTION_POOLING | 布尔值 | 启用或禁用数据库连接池 |
如果启用了数据库连接池,则可以更改连接池的最大大小。这可以通过以下 config.yaml 选项完成:
config.yaml
... DB_CONNECTION_ARGS: max_connections: 10 ...
...
DB_CONNECTION_ARGS:
max_connections: 10
...
4.3. HTTP 连接数 复制链接链接已复制到粘贴板!
可以使用环境变量指定同时 HTTP 连接的数量。它们可以作为一个整体指定,也可以指定为一个特定的组件。每个进程的默认值为 50 个并行连接。
| 变量 | 类型 | 描述 |
|---|---|---|
| WORKER_CONNECTION_COUNT | Number |
同时 HTTP 连接 |
| WORKER_CONNECTION_COUNT_REGISTRY | Number |
同时 HTTP 连接 registry |
| WORKER_CONNECTION_COUNT_WEB | Number |
Web UI 同步 HTTP 连接 |
| WORKER_CONNECTION_COUNT_SECSCAN | Number |
Clair 的同步 HTTP 连接 |
4.4. worker 数量变量 复制链接链接已复制到粘贴板!
| 变量 | 类型 | 描述 |
|---|---|---|
| WORKER_COUNT | Number | 进程数量的通用覆盖 |
| WORKER_COUNT_REGISTRY | Number |
指定处理 |
| WORKER_COUNT_WEB | Number |
指定处理容器中的 UI/Web 请求的进程数量 |
| WORKER_COUNT_SECSCAN | Number |
指定处理容器中的安全扫描(如 Clair)集成的进程数量 |
4.5. 调试变量 复制链接链接已复制到粘贴板!
以下调试变量在 Red Hat Quay 上提供。
| 变量 | 类型 | 描述 |
|---|---|---|
| DEBUGLOG | 布尔值 | 是否启用或禁用调试日志。 |
| USERS_DEBUG |
整数. |
用于以明文形式调试 LDAP 操作,包括密码。必须与 重要
设置 |
第 5 章 Clair 安全扫描程序 复制链接链接已复制到粘贴板!
5.1. Clair 配置概述 复制链接链接已复制到粘贴板!
Clair 由一个结构化的 YAML 文件配置。每个 Clair 节点都需要指定它将在哪些模式下运行的模式,以及通过 CLI 标志或环境变量到配置文件的路径。例如:
clair -conf ./path/to/config.yaml -mode indexer
$ clair -conf ./path/to/config.yaml -mode indexer
或者
clair -conf ./path/to/config.yaml -mode matcher
$ clair -conf ./path/to/config.yaml -mode matcher
上述命令会使用相同的配置文件启动两个 Clair 节点。一个运行索引工具,另一个则运行匹配的设施。
如果您以 组合 模式运行 Clair,则必须在配置中提供索引器、匹配器和通知程序配置块。
5.1.1. 在代理环境中使用 Clair 的信息 复制链接链接已复制到粘贴板!
如果需要,可以指定 Go 标准库相关的环境变量,例如:
HTTP_PROXYexport HTTP_PROXY=http://<user_name>:<password>@<proxy_host>:<proxy_port>
$ export HTTP_PROXY=http://<user_name>:<password>@<proxy_host>:<proxy_port>Copy to Clipboard Copied! Toggle word wrap Toggle overflow HTTPS_PROXY.export HTTPS_PROXY=https://<user_name>:<password>@<proxy_host>:<proxy_port>
$ export HTTPS_PROXY=https://<user_name>:<password>@<proxy_host>:<proxy_port>Copy to Clipboard Copied! Toggle word wrap Toggle overflow SSL_CERT_DIRexport SSL_CERT_DIR=/<path>/<to>/<ssl>/<certificates>
$ export SSL_CERT_DIR=/<path>/<to>/<ssl>/<certificates>Copy to Clipboard Copied! Toggle word wrap Toggle overflow NO_PROXYexport NO_PROXY=<comma_separated_list_of_hosts_and_domains>
$ export NO_PROXY=<comma_separated_list_of_hosts_and_domains>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
如果您使用带有 Clair 更新器 URL 的环境中的代理服务器,您必须识别哪些 URL 需要添加到代理允许列表中,以确保 Clair 可以访问它们。例如: osv updater 需要访问 https://osv-vulnerabilities.storage.googleapis.com 来获取生态系统数据转储。在这种情况下,URL 必须添加到代理允许列表中。有关 updater URL 的完整列表,请参阅"Clair updater URL"。
您还必须确保将标准 Clair URL 添加到代理允许列表中:
-
https://search.maven.org/solrsearch/select -
https://catalog.redhat.com/api/containers/ -
https://access.redhat.com/security/data/metrics/repository-to-cpe.json -
https://access.redhat.com/security/data/metrics/container-name-repos-map.json
在配置代理服务器时,请考虑启用 Clair 和这些 URL 之间的无缝通信所需的任何身份验证要求或特定的代理设置。通过全面记录并解决这些注意事项,您可以确保在通过代理路由更新器流量的同时,有效处理 Clair 功能。
5.1.2. Clair 配置参考 复制链接链接已复制到粘贴板!
以下 YAML 显示了一个 Clair 配置示例:
为了完整,以上 YAML 文件列出了每个键。按照原样使用此配置文件将导致一些选项正常设置它们的默认值。
5.1.3. Clair 常规字段 复制链接链接已复制到粘贴板!
下表描述了 Clair 部署可用的常规配置字段。
| 字段 | Typhttp_listen_ae | 描述 |
|---|---|---|
| http_listen_addr | 字符串 | 配置公开 HTTP API 的位置。
默认: |
| introspection_addr | 字符串 | 配置 Clair 的指标和健康端点公开的位置。 |
| log_level | 字符串 | 设置日志记录级别。需要以下字符串之一: debug-color,debug,info,warn,error,fatal,panic |
| tls | 字符串 | 包含提供 TLS/SSL 和 HTTP/2 的 HTTP API 配置的映射。 |
| .cert | 字符串 | 要使用的 TLS 证书。必须是 full-chain 证书。 |
常规 Clair 字段的配置示例
以下示例显示了 Clair 配置。
常规 Clair 字段的配置示例
# ... http_listen_addr: 0.0.0.0:6060 introspection_addr: 0.0.0.0:8089 log_level: info # ...
# ...
http_listen_addr: 0.0.0.0:6060
introspection_addr: 0.0.0.0:8089
log_level: info
# ...
5.1.4. Clair indexer 配置字段 复制链接链接已复制到粘贴板!
下表描述了 Clair 的 indexer 组件的配置字段。
| 字段 | 类型 | 描述 |
|---|---|---|
| indexer | 对象 | 提供 Clair 索引节点配置。 |
| .airgap | 布尔值 | 为 indexers 和 fetchers 禁用对互联网的 HTTP 访问。允许私有 IPv4 和 IPv6 地址。数据库连接不受影响。 |
| .connstring | 字符串 | Postgres 连接字符串。接受格式作为 URL 或 libpq 连接字符串。 |
| .index_report_request_concurrency | 整数 |
速率限制索引报告创建请求的数量。把它设置为
如果超过并发,API 会返回 |
| .scanlock_retry | 整数 | 一个正整数,代表秒。并发索引器锁定在清单扫描上,以避免冲突。这个值调整等待索引器轮询锁定的频率。 |
| .layer_scan_concurrency | 整数 | 正整数限制并发层扫描的数量。Indexers 将同时匹配清单的层。这个值调整索引程序并行扫描的层数。 |
| .migrations | 布尔值 | 索引节点是否处理到其数据库的迁移。 |
| .scanner | 字符串 | 索引器配置。 扫描程序允许将配置选项传递给层扫描程序。如果设计这样做,扫描程序会将此配置传递给它。 |
| .scanner.dist | 字符串 | 带有特定扫描程序名称和任意 YAML 作为值的映射。 |
| .scanner.package | 字符串 | 带有特定扫描程序名称和任意 YAML 作为值的映射。 |
| .scanner.repo | 字符串 | 带有特定扫描程序名称和任意 YAML 作为值的映射。 |
indexer 配置示例
以下示例显示了 Clair 的 hypothetical indexer 配置。
indexer 配置示例
5.1.5. Clair matcher 配置字段 复制链接链接已复制到粘贴板!
下表描述了 Clair 的 matcher 组件的配置字段。
与 匹配器 配置字段不同。
| 字段 | 类型 | 描述 |
|---|---|---|
| matcher | 对象 | 提供 Clair 匹配节点配置。 |
| .cache_age | 字符串 | 控制提示用户缓存响应的时长。 |
| .connstring | 字符串 | Postgres 连接字符串。接受格式作为 URL 或 libpq 连接字符串。 |
| .max_conn_pool | 整数 | 限制数据库连接池大小。 Clair 允许自定义连接池大小。这个数字直接设定同时允许的活跃数据库连接的数量。 以后的版本将忽略此参数。用户应该通过连接字符串进行配置。 |
| .indexer_addr | 字符串 | 匹配者联系索引程序来创建漏洞报告。需要此索引器的位置。
默认值为 |
| .migrations | 布尔值 | 匹配节点是否处理到其数据库的迁移。 |
| .period | 字符串 | 决定新安全公告的更新频率。
默认值为 |
| .disable_updaters | 布尔值 | 是否运行后台更新。
Default: |
| .update_retention | 整数 | 设置在垃圾回收周期之间保留的更新操作数量。这应该根据数据库大小限制设置为安全 MAX 值。
默认值为
如果提供了小于 |
matcher 配置示例
matcher 配置示例
5.1.6. Clair matchers 配置字段 复制链接链接已复制到粘贴板!
下表描述了 Clair 的 matchers 组件的配置字段。
与 匹配配置字段 不同。
| 字段 | 类型 | 描述 |
|---|---|---|
| matchers | 字符串数组 |
为树内 |
| .names | 字符串 |
一个字符串值列表,用于告知匹配者工厂关于启用的匹配者信息。如果值设为 |
| .config | 字符串 | 为特定匹配器提供配置。 一个映射键是包含子对象的 matcher 名称键,该对象将提供给匹配者工厂构造器。例如: |
matchers 配置示例
以下示例显示了一个假设的 Clair 部署,它只需要 alpine,aws,debian,oracle matchers。
matchers 配置示例
5.1.7. Clair updaters 配置字段 复制链接链接已复制到粘贴板!
下表描述了 Clair 的 updaters 组件 的配置字段。
| 字段 | 类型 | 描述 |
|---|---|---|
| updaters | 对象 | 为 matcher 的更新管理器提供配置。 |
| .sets | 字符串 | 一个值列表,告知更新管理器要运行的更新程序。
如果值设为 如果留空,则运行零更新程序。 |
| .config | 字符串 | 为特定更新器集提供配置。 由 updater 集名称的映射键包含子对象,该对象将提供给 updater 设置的构造器。有关每个 updater 的子对象列表,请参阅"高级更新器配置"。 |
updaters 配置示例
在以下配置中,仅配置 rhel 集。也定义了特定于 rhel 更新器的 ignore_unpatched 变量。
updaters 配置示例
5.1.8. Clair 通知程序配置字段 复制链接链接已复制到粘贴板!
Clair 的一般通知程序配置字段如下。
| 字段 | 类型 | 描述 |
|---|---|---|
| 通知程序 | 对象 | 提供 Clair 通知程序节点配置。 |
| .connstring | 字符串 | postgres 连接字符串。接受格式为 URL 或 libpq 连接字符串。 |
| .migrations | 布尔值 | 通知节点是否处理到其数据库的迁移。 |
| .indexer_addr | 字符串 | 通知程序联系一个索引程序,以创建或获取受漏洞影响的清单。需要此索引器的位置。 |
| .matcher_addr | 字符串 | 通知程序联系一个匹配程序,以列出更新操作并获得 diffs。需要此匹配器的位置。 |
| .poll_interval | 字符串 | 通知程序将查询匹配者更新操作的频率。 |
| .delivery_interval | 字符串 | 通知程序尝试发送创建或之前失败的通知的频率。 |
| .disable_summary | 布尔值 | 控制是否应将通知总结为每个清单中的一个。 |
通知程序配置示例
以下 通知程序 片断用于最小配置。
通知程序配置示例
5.1.8.1. Clair Webhook 配置字段 复制链接链接已复制到粘贴板!
以下 Webhook 字段可用于 Clair 通知程序环境。
| .webhook | 对象 | 配置用于 Webhook 发送的通知程序。 |
| .webhook.target | 字符串 | 提供 webhook 的 URL。 |
| .webhook.callback | 字符串 | 可以检索通知的回调 URL。通知 ID 将附加到此 URL 中。 这通常是托管 Clair 通知程序的位置。 |
| .webhook.headers | 字符串 | 将标头名称与值列表关联的映射。 |
Webhook 配置示例
Webhook 配置示例
5.1.8.2. Clair amqp 配置字段 复制链接链接已复制到粘贴板!
以下高级消息队列协议(AMQP)字段可用于 Clair 通知程序环境。
| .amqp | 对象 | 配置用于 AMQP 发送的通知程序。 [NOTE] ==== Clair 不自行声明任何 AMQP 组件。所有尝试使用交换或队列的尝试都是仅被动的,并将失败。代理管理员应提前设置交换和队列。=== |
| .amqp.direct | 布尔值 |
如果为 |
| .amqp.rollup | 整数 |
当将 |
| .amqp.exchange | 对象 | 要连接的 AMQP 交换。 |
| .amqp.exchange.name | 字符串 | 要连接的交换的名称。 |
| .amqp.exchange.type | 字符串 | 交换的类型。通常,以下之一: 直接、发出、主题、标题. |
| .amqp.exchange.durability | 布尔值 | 配置的队列是否持久。 |
| .amqp.exchange.auto_delete | 布尔值 |
配置的队列是否使用 |
| .amqp.routing_key | 字符串 | 每个通知发送的路由密钥的名称。 |
| .amqp.callback | 字符串 |
如果 |
| .amqp.uris | 字符串 | 要连接的一个或多个 AMQP 代理的列表,按优先级顺序连接。 |
| .amqp.tls | 对象 | 配置 TLS/SSL 连接到 AMQP 代理。 |
| .amqp.tls.root_ca | 字符串 | 可以读取 root CA 的文件系统路径。 |
| .amqp.tls.cert | 字符串 | 可读取 TLS/SSL 证书的文件系统路径。
[NOTE] ==== Clair 还允许 |
| .amqp.tls.key | 字符串 | 可以读取 TLS/SSL 私钥的文件系统路径。 |
AMQP 配置示例
以下示例显示了 Clair 的 hypothetical AMQP 配置。
AMQP 配置示例
5.1.8.3. Clair STOMP 配置字段 复制链接链接已复制到粘贴板!
Clair 通知程序环境提供了以下简单文本导向型消息协议(STOMP)字段。
| .stomp | 对象 | 为 STOMP 交付配置通知。 |
|---|---|---|
| .stomp.direct | 布尔值 |
如果为 |
| .stomp.rollup | 整数 |
如果 |
| .stomp.callback | 字符串 |
如果 |
| .stomp.destination | 字符串 | 将通知发送到的 STOMP 目的地。 |
| .stomp.uris | 字符串 | 要以优先级顺序连接到的一个或多个 STOMP 代理的列表。 |
| .stomp.tls | 对象 | 配置 TLS/SSL 连接到 STOMP 代理。 |
| .stomp.tls.root_ca | 字符串 | 可以读取 root CA 的文件系统路径。
[NOTE] ==== Clair 还尊重 |
| .stomp.tls.cert | 字符串 | 可读取 TLS/SSL 证书的文件系统路径。 |
| .stomp.tls.key | 字符串 | 可以读取 TLS/SSL 私钥的文件系统路径。 |
| .stomp.user | 字符串 | 配置 STOMP 代理的登录详情。 |
| .stomp.user.login | 字符串 | 要连接的 STOMP 登录。 |
| .stomp.user.passcode | 字符串 | 要连接的 STOMP passcode。 |
STOMP 配置示例
以下示例显示了 Clair 的 hypothetical STOMP 配置。
STOMP 配置示例
5.1.9. Clair 授权配置字段 复制链接链接已复制到粘贴板!
以下授权配置字段可用于 Clair。
| 字段 | 类型 | 描述 |
|---|---|---|
| auth | 对象 |
定义 Clair 的外部和基于服务 JWT 的身份验证。如果定义了多个 |
| .psk | 字符串 | 定义预共享密钥身份验证。 |
| .psk.key | 字符串 | 在所有方签名和验证 JWT 之间的共享 base64 编码密钥。 |
| .psk.iss | 字符串 | 要验证的 JWT 签发者列表。空列表接受 JWT 声明中的任何签发者。 |
授权配置示例
以下 授权 片断用于最小配置。
授权配置示例
5.1.10. Clair trace 配置字段 复制链接链接已复制到粘贴板!
以下 trace 配置字段可用于 Clair。
| 字段 | 类型 | 描述 |
|---|---|---|
| trace | 对象 | 基于 OpenTelemetry 定义分布式追踪配置。 |
| .name | 字符串 | 应用程序跟踪的名称将属于。 |
| .probability | 整数 | 可能会出现 trace 的概率。 |
| .jaeger | 对象 | 为 Jaeger tracing 定义值。 |
| .jaeger.agent | 对象 | 定义用于配置发送到 Jaeger 代理的值。 |
| .jaeger.agent.endpoint | 字符串 |
可提交 trace 的 & |
| .jaeger.collector | 对象 | 为配置发送到 Jaeger 收集器定义值。 |
| .jaeger.collector.endpoint | 字符串 |
可提交 trace 的 & |
| .jaeger.collector.username | 字符串 | Jaeger 用户名。 |
| .jaeger.collector.password | 字符串 | Jaeger 密码。 |
| .jaeger.service_name | 字符串 | 在 Jaeger 中注册的服务名称。 |
| .jaeger.tags | 字符串 | 用于提供额外的元数据的键值对。 |
| .jaeger.buffer_max | 整数 | 在发送到 Jaeger 后端以进行存储和分析前可以缓冲的最大 span 数量。 |
trace 配置示例
以下示例显示了 Clair 的 hypothetical trace 配置。
trace 配置示例
5.1.11. Clair 指标配置字段 复制链接链接已复制到粘贴板!
以下指标配置字段可用于 Clair。
| 字段 | 类型 | 描述 |
|---|---|---|
| metrics | 对象 | 基于 OpenTelemetry 定义分布式追踪配置。 |
| .name | 字符串 | 使用的指标的名称。 |
| .prometheus | 字符串 | 配置 Prometheus 指标导出器。 |
| .prometheus.endpoint | 字符串 | 定义提供指标的路径。 |
指标配置示例
以下示例显示了 Clair 的 hypothetical 指标配置。
指标配置示例