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 配置对象提前配置完全权限。例如:

# ...
SERVER_HOSTNAME: quay-server.example.com
SETUP_COMPLETE: true
SUPER_USERS:
  - quayadmin
# ...
Copy to Clipboard Toggle word wrap

3.13.4. 限制用户创建

配置超级用户后,您可以通过将 FEATURE_USER_CREATION 设置为 false 来限制新用户到超级用户组。例如:

# ...
FEATURE_USER_INITIALIZE: true
BROWSER_API_CALLS_XHR_ONLY: false
SUPER_USERS:
- quayadmin
FEATURE_USER_CREATION: false
# ...
Copy to Clipboard Toggle word wrap

3.13.5. 在 Red Hat Quay 3.13 中启用新功能

要使用新的 Red Hat Quay 3.13 功能,请启用部分或全部功能:

# ...
FEATURE_UI_V2: true
FEATURE_UI_V2_REPO_SETTINGS: true
FEATURE_AUTO_PRUNE: true
ROBOTS_DISALLOW: false
# ...
Copy to Clipboard Toggle word wrap

3.13.6. 推荐的自动化配置

建议对自动化使用以下 config.yaml 参数:

# ...
FEATURE_USER_INITIALIZE: true
BROWSER_API_CALLS_XHR_ONLY: false
SUPER_USERS:
- quayadmin
FEATURE_USER_CREATION: false
# ...
Copy to Clipboard Toggle word wrap

3.13.7. 使用初始配置部署 Red Hat Quay Operator

使用以下步骤使用初始配置在 OpenShift Container Platform 上部署 Red Hat Quay。

先决条件

  • 已安装 oc CLI。

流程

  1. 使用配置文件创建 secret:

    $ oc create secret generic -n quay-enterprise --from-file config.yaml=./config.yaml init-config-bundle-secret
    Copy to Clipboard Toggle word wrap
  2. 创建 quayregistry.yaml 文件。识别非受管组件并引用创建的 secret,例如:

    apiVersion: quay.redhat.com/v1
    kind: QuayRegistry
    metadata:
      name: example-registry
      namespace: quay-enterprise
    spec:
      configBundleSecret: init-config-bundle-secret
    Copy to Clipboard Toggle word wrap
  3. 部署 Red Hat Quay registry:

    $ oc create -n quay-enterprise -f quayregistry.yaml
    Copy to Clipboard Toggle word wrap

3.13.8. 使用 API 创建第一个用户

使用以下步骤在 Red Hat Quay 组织中创建第一个用户。

先决条件

  • 配置选项 FEATURE_USER_INITIALIZE 必须设为 true
  • 数据库中不存在任何用户。
流程

此流程通过指定 "access_token": true 来请求 OAuth 令牌。

  1. 打开 Red Hat Quay 配置文件并更新以下配置字段:

    FEATURE_USER_INITIALIZE: true
    SUPER_USERS:
         -  quayadmin
    Copy to Clipboard Toggle word wrap
  2. 输入以下命令停止 Red Hat Quay 服务:

    $ sudo podman stop quay
    Copy to Clipboard Toggle word wrap
  3. 输入以下命令启动 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}
    Copy to Clipboard Toggle word wrap
  4. 运行以下 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}'
    Copy to Clipboard Toggle word wrap

    如果成功,命令会返回带有用户名、电子邮件和加密密码的对象。例如:

    {"access_token":"6B4QTRSTSD1HMIG915VPX7BMEZBVB9GPNY2FC2ED", "email":"quayadmin@example.com","encrypted_password":"1nZMLH57RIE5UGdL/yYpDOHLqiNCgimb6W9kfF8MjZ1xrfDpRyRs9NUnUuNuAitW","username":"quayadmin"} # gitleaks:allow
    Copy to Clipboard Toggle word wrap

    如果用户存在于数据库中,则返回错误:

    {"message":"Cannot initialize user in a non-empty database"}
    Copy to Clipboard Toggle word wrap

    如果您的密码至少没有 8 个字符或包含空格,则返回错误:

    {"message":"Failed to initialize user: Invalid password, password must be at least 8 characters and contain no whitespace."}
    Copy to Clipboard Toggle word wrap
  5. 输入以下命令登录到 Red Hat Quay 部署:

    $ sudo podman login -u quayadmin -p quaypass12345 http://quay-server.example.com --tls-verify=false
    Copy to Clipboard Toggle word wrap

    输出示例

    Login Succeeded!
    Copy to Clipboard Toggle word wrap

3.13.8.1. 使用 OAuth 令牌

调用 API 后,您可以通过指定返回的 OAuth 代码来调用 Red Hat Quay API 的其余部分。

先决条件

  • 您已调用 /api/v1/user/initialize API,并传递用户名、密码和电子邮件地址。

流程

  • 输入以下命令来获取当前用户列表:

    $ 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 Toggle word wrap

    输出示例:

    {
        "users": [
            {
                "kind": "user",
                "name": "quayadmin",
                "username": "quayadmin",
                "email": "quayadmin@example.com",
                "verified": true,
                "avatar": {
                    "name": "quayadmin",
                    "hash": "3e82e9cbf62d25dec0ed1b4c66ca7c5d47ab9f1f271958298dea856fb26adc4c",
                    "color": "#e7ba52",
                    "kind": "user"
                },
                "super_user": true,
                "enabled": true
            }
        ]
    }
    Copy to Clipboard Toggle word wrap

    在本例中,quayadmin 用户的详细信息将返回,因为它是到目前为止创建的唯一用户。

3.13.8.2. 使用 API 创建机构

以下过程详细介绍了如何使用 API 创建 Red Hat Quay 组织。

先决条件

  • 您已调用 /api/v1/user/initialize API,并传递用户名、密码和电子邮件地址。
  • 您已通过指定返回的 OAuth 代码来调用 Red Hat Quay API 的其余部分。

流程

  1. 要创建机构,请使用对 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"}'
    Copy to Clipboard Toggle word wrap

    输出示例:

    "Created"
    Copy to Clipboard Toggle word wrap
  2. 您可以输入以下命令来检索您创建的机构的详情:

    $ 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
    Copy to Clipboard Toggle word wrap

    输出示例:

    {
        "name": "testorg",
        "email": "testorg@example.com",
        "avatar": {
            "name": "testorg",
            "hash": "5f113632ad532fc78215c9258a4fb60606d1fa386c91b141116a1317bf9c53c8",
            "color": "#a55194",
            "kind": "user"
        },
        "is_admin": true,
        "is_member": true,
        "teams": {
            "owners": {
                "name": "owners",
                "description": "",
                "role": "admin",
                "avatar": {
                    "name": "owners",
                    "hash": "6f0e3a8c0eb46e8834b43b03374ece43a030621d92a7437beb48f871e90f8d90",
                    "color": "#c7c7c7",
                    "kind": "team"
                },
                "can_view": true,
                "repo_count": 0,
                "member_count": 1,
                "is_synced": false
            }
        },
        "ordered_teams": [
            "owners"
        ],
        "invoice_email": false,
        "invoice_email_address": null,
        "tag_expiration_s": 1209600,
        "is_free_account": true
    }
    Copy to Clipboard Toggle word wrap
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat