9.12. 为 AWS 上的 Red Hat OpenShift 验证 cert-manager Operator
您可以为 AWS 集群上的 Red Hat OpenShift 配置 cert-manager Operator 的云凭证。云凭证由 Cloud Credential Operator 生成。
9.12.1. 为 AWS 上的 Red Hat OpenShift 配置 cert-manager Operator 的云凭证
要为 AWS 上的 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 模式运行。
流程
创建一个
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: AWSProviderSpec statementEntries: - action: - "route53:GetChange" effect: Allow resource: "arn:aws:route53:::change/*" - action: - "route53:ChangeResourceRecordSets" - "route53:ListResourceRecordSets" effect: Allow resource: "arn:aws:route53:::hostedzone/*" - action: - "route53:ListHostedZonesByName" effect: Allow resource: "*" secretRef: name: aws-creds 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":"aws-creds"}]}}}'
验证
运行以下命令,获取重新部署的 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
中指定的路径下的 AWS 凭证卷更新:$ oc get -n cert-manager pod/<cert-manager_controller_pod_name> -o yaml
输出示例
... spec: containers: - args: ... - mountPath: /.aws name: cloud-credentials ... volumes: ... - name: cloud-credentials secret: ... secretName: aws-creds