8.11. AWS でのcert-manager Operator for Red Hat OpenShift 認証
AWS クラスターで、cert-manager Operator for Red Hat OpenShift のクラウド認証情報を設定できます。クラウド認証情報は Cloud Credential Operator によって生成されます。
8.11.1. AWS での the cert-manager Operator for Red Hat OpenShift クラウド認証情報の設定
AWS クラスターで cert-manager Operator for Red Hat OpenShift のクラウド認証情報を設定するには、CredentialsRequest
オブジェクトを作成してクラウド認証情報シークレットを生成し、Cloud Credential Operator を許可する必要があります。
前提条件
- cert-manager Operator for Red Hat OpenShift 1.11.1 以降がインストールされている。
- mint モードまたは passthrough モードで動作するように Cloud Credential Operator を設定している。
手順
以下のように
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
次のコマンドを実行して、cert-manager Operator for Red Hat OpenShift のサブスクリプションオブジェクトを更新します。
$ 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