3.2. 在 OpenShift Container Platform 上的 Red Hat Quay 中添加额外的证书颁发机构
在 OpenShift Container Platform 上的 Red Hat Quay 中,使用 extra_ca_certs
配置字段将额外证书颁发机构(CA)填充到 CA 目录中,然后将 CA 添加到系统信任捆绑包中。Red Hat Quay 使用这些证书来验证与 LDAP、OIDC 和存储系统等外部服务的 SSL/TLS 连接。
在 OpenShift Container Platform 上部署或重新部署 Red Hat Quay 时,您可以将一个或多个 CA 添加到 CA 目录中,以确保外部服务被正确保护并验证。在 OpenShift Container Platform 部署的 Red Hat Quay 中,您必须手动将 extra_ca_certs
配置字段添加到 config.yaml
文件中,并将 config.yaml
重新上传到 OpenShift Container Platform。
以下流程演示了如何下载现有配置文件,将额外的 CA 添加到 OpenShift Container Platform 部署的 Red Hat Quay 中,然后重新上传配置文件。
3.2.1. 使用 CLI 修改配置文件 复制链接链接已复制到粘贴板!
您可以使用 CLI 下载现有配置来修改 configBundleSecret
存储的 config.yaml
文件。进行更改后,您可以重新上传 configBundleSecret
资源,以更改 Red Hat Quay registry。
修改 configBundleSecret
资源存储的 config.yaml
文件是一个多步骤,需要 base64 解码现有配置文件,然后上传更改。在大多数情况下,使用 OpenShift Container Platform Web 控制台对 config.yaml
文件进行更改更为简单。
先决条件
- 以具有 admin 权限的用户身份登录 OpenShift Container Platform 集群。
流程
输入以下命令描述
QuayRegistry
资源:oc describe quayregistry -n <quay_namespace>
$ oc describe quayregistry -n <quay_namespace>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ... ...
# ... Config Bundle Secret: example-registry-config-bundle-v123x # ...
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输入以下命令来获取 secret 数据:
oc get secret -n <quay_namespace> <example-registry-config-bundle-v123x> -o jsonpath='{.data}'
$ oc get secret -n <quay_namespace> <example-registry-config-bundle-v123x> -o jsonpath='{.data}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
{ "config.yaml": "RkVBVFVSRV9VU0 ... MDAwMAo=" }
{ "config.yaml": "RkVBVFVSRV9VU0 ... MDAwMAo=" }
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 通过传递 >>
config.yaml 标志,将数据
解码到当前目录中。例如:echo 'RkVBVFVSRV9VU0 ... MDAwMAo=' | base64 --decode >> config.yaml
$ echo 'RkVBVFVSRV9VU0 ... MDAwMAo=' | base64 --decode >> config.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
对
config.yaml
文件进行所需的更改,然后将该文件保存为config.yaml
。 输入以下命令创建新的
configBundleSecret
YAML。touch <new_configBundleSecret_name>.yaml
$ touch <new_configBundleSecret_name>.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输入以下命令来创建新的
configBundleSecret
资源,传递config.yaml
文件':oc -n <namespace> create secret generic <secret_name> \ --from-file=config.yaml=</path/to/config.yaml> \ --dry-run=client -o yaml > <new_configBundleSecret_name>.yaml
$ oc -n <namespace> create secret generic <secret_name> \ --from-file=config.yaml=</path/to/config.yaml> \
1 --dry-run=client -o yaml > <new_configBundleSecret_name>.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 其中
<config.yaml&
gt; 是您的base64 解码
的config.yaml
文件。
输入以下命令来创建
configBundleSecret
资源:oc create -n <namespace> -f <new_configBundleSecret_name>.yaml
$ oc create -n <namespace> -f <new_configBundleSecret_name>.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
secret/config-bundle created
secret/config-bundle created
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输入以下命令更新
QuayRegistry
YAML 文件来引用新的configBundleSecret
对象:oc patch quayregistry <registry_name> -n <namespace> --type=merge -p '{"spec":{"configBundleSecret":"<new_configBundleSecret_name>"}}'
$ oc patch quayregistry <registry_name> -n <namespace> --type=merge -p '{"spec":{"configBundleSecret":"<new_configBundleSecret_name>"}}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
quayregistry.quay.redhat.com/example-registry patched
quayregistry.quay.redhat.com/example-registry patched
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
验证
QuayRegistry
CR 已使用新的configBundleSecret
更新:oc describe quayregistry -n <quay_namespace>
$ oc describe quayregistry -n <quay_namespace>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
... ...
# ... Config Bundle Secret: <new_configBundleSecret_name> # ...
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 修补 registry 后,Red Hat Quay Operator 会自动协调更改。
以下示例演示了如何在 OpenShift Container Platform 部署的 Red Hat Quay 中添加额外的证书颁发机构。
先决条件
-
您有 base64 将原始配置捆绑包解码为一个
config.yaml
文件。如需更多信息 ,请参阅下载现有配置。 - 您有一个证书颁发机构(CA)文件或文件。
流程
创建新的 YAML 文件,如
extra-ca-certificate-config-bundle-secret.yaml
:touch extra-ca-certificate-config-bundle-secret.yaml
$ touch extra-ca-certificate-config-bundle-secret.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建
extra-ca-certificate-config-bundle-secret
资源。可选。您可以输入以下命令来检查
extra-ca-certificate-config-bundle-secret.yaml
文件的内容:cat extra-ca-certificate-config-bundle-secret.yaml
$ cat extra-ca-certificate-config-bundle-secret.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输入以下命令来创建
configBundleSecret
资源:oc create -n <namespace> -f extra-ca-certificate-config-bundle-secret.yaml
$ oc create -n <namespace> -f extra-ca-certificate-config-bundle-secret.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
secret/extra-ca-certificate-config-bundle-secret created
secret/extra-ca-certificate-config-bundle-secret created
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输入以下命令更新
QuayRegistry
YAML 文件,以引用extra-ca-certificate-config-bundle-secret
对象:oc patch quayregistry <registry_name> -n <namespace> --type=merge -p '{"spec":{"configBundleSecret":"extra-ca-certificate-config-bundle-secret"}}'
$ oc patch quayregistry <registry_name> -n <namespace> --type=merge -p '{"spec":{"configBundleSecret":"extra-ca-certificate-config-bundle-secret"}}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
quayregistry.quay.redhat.com/example-registry patched
quayregistry.quay.redhat.com/example-registry patched
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输入以下命令来确保
QuayRegistry
YAML 文件已更新为使用额外的 CA 证书configBundleSecret
资源:oc get quayregistry <registry_name> -n <namespace> -o yaml
$ oc get quayregistry <registry_name> -n <namespace> -o yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
... ...
# ... configBundleSecret: extra-ca-certificate-config-bundle-secret # ...
Copy to Clipboard Copied! Toggle word wrap Toggle overflow