8.13. 在 GCP 上为 Red Hat OpenShift 验证 cert-manager Operator
您可以在 GCP 集群中为 Red Hat OpenShift 配置云凭证。云凭证由 Cloud Credential Operator 生成。
8.13.1. 为 GCP 上的 Red Hat OpenShift 配置 cert-manager Operator 的云凭证
要为 GCP 集群上的 Red Hat OpenShift 配置 cert-manager Operator 云凭证,您必须创建一个 CredentialsRequest
对象,并允许 Cloud Credential Operator 生成云凭证 secret。
先决条件
- 您已为 Red Hat OpenShift 安装了 cert-manager Operator 版本 1.11.1 或更高版本。
- 您已将 Cloud Credential Operator 配置为以 mint 或 passthrough 模式运行。
流程
通过应用以下 yaml 创建
CredentialsRequest
资源 YAML 文件,如sample-credential-request.yaml
:apiVersion: cloudcredential.openshift.io/v1 kind: CredentialsRequest metadata: name: cert-manager namespace: openshift-cloud-credential-operator spec: providerSpec: apiVersion: cloudcredential.openshift.io/v1 kind: GCPProviderSpec predefinedRoles: - roles/dns.admin secretRef: name: gcp-credentials namespace: cert-manager serviceAccountNames: - cert-manager
运行以下命令来创建
CredentialsRequest
资源:$ oc create -f sample-credential-request.yaml
运行以下命令,为 Red Hat OpenShift 更新 cert-manager Operator 的订阅对象:
$ oc -n cert-manager-operator patch subscription openshift-cert-manager-operator --type=merge -p '{"spec":{"config":{"env":[{"name":"CLOUD_CREDENTIALS_SECRET_NAME","value":"gcp-credentials"}]}}}'
验证
运行以下命令,获取重新部署的 cert-manager 控制器 pod 的名称:
$ oc get pods -l app.kubernetes.io/name=cert-manager -n cert-manager
输出示例
NAME READY STATUS RESTARTS AGE cert-manager-bd7fbb9fc-wvbbt 1/1 Running 0 15m39s
运行以下命令,验证 cert-manager 控制器 pod 是否已使用挂载到
mountPath
中指定的路径下的 GCP 工作负载身份凭证卷更新:$ oc get -n cert-manager pod/<cert-manager_controller_pod_name> -o yaml
输出示例
spec: containers: - args: ... volumeMounts: ... - mountPath: /.config/gcloud name: cloud-credentials .... volumes: ... - name: cloud-credentials secret: ... items: - key: service_account.json path: application_default_credentials.json secretName: gcp-credentials