9.12. GCP Workload Identity を使用した cert-manager Operator for Red Hat OpenShift の認証
クラウド認証情報を使用して、GCP Workload Identity クラスターで cert-manager Operator for Red Hat OpenShift を認証できます。クラウド認証情報は、ccoctl
バイナリーを使用して設定できます。
9.12.1. GCP Workload Identity を使用して cert-manager Operator for Red Hat OpenShift のクラウド認証情報を設定 リンクのコピーリンクがクリップボードにコピーされました!
ccoctl
バイナリーを使用して、cert-manager Operator for Red Hat OpenShift のクラウド認証情報を生成します。次に、それらを GCP Workload Identity クラスターに適用します。
前提条件
-
ccoctl
バイナリーを展開して準備した。 - cert-manager Operator for Red Hat OpenShift のバージョン 1.11.1 以降がインストールされている。
- Cloud Credential Operator を手動モードで使用し、GCP Workload Identity で OpenShift Container Platform クラスターを設定している。
手順
次のコマンドを実行して、
CredentialsRequest
リソース YAML ファイルを保存するディレクトリーを作成します。mkdir credentials-request
$ mkdir credentials-request
Copy to Clipboard Copied! Toggle word wrap Toggle overflow credentials-request
ディレクトリーに、次のCredentialsRequest
マニフェストを含む YAML ファイルを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記dns.admin
ロールは、Google Cloud DNS リソースを管理するための管理者権限をサービスアカウントに付与します。最小限の権限を持つサービスアカウントで cert-manager が実行されるようにするには、次の権限を持つカスタムロールを作成できます。-
dns.resourceRecordSets.*
-
dns.changes.*
-
dns.managedZones.list
-
次のコマンドを実行し、
ccoctl
ツールを使用してCredentialsRequest
オブジェクトを処理します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow コマンドの例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、クラスターのマニフェストディレクトリーに生成されたシークレットを適用します。
ls <path_to_output_dir>/manifests/*-credentials.yaml | xargs -I{} oc apply -f {}
$ ls <path_to_output_dir>/manifests/*-credentials.yaml | xargs -I{} oc apply -f {}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、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":"gcp-credentials"}]}}}'
$ 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"}]}}}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
次のコマンドを実行して、再デプロイされた cert-manager コントローラー Pod の名前を取得します。
oc get pods -l app.kubernetes.io/name=cert-manager -n cert-manager
$ oc get pods -l app.kubernetes.io/name=cert-manager -n cert-manager
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME READY STATUS RESTARTS AGE cert-manager-bd7fbb9fc-wvbbt 1/1 Running 0 15m39s
NAME READY STATUS RESTARTS AGE cert-manager-bd7fbb9fc-wvbbt 1/1 Running 0 15m39s
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、cert-manager コントローラー Pod が、
mountPath
で指定されたパスの下にマウントされている GCP ワークロードアイデンティティー認証情報ボリュームで更新されていることを確認します。oc get -n cert-manager pod/<cert-manager_controller_pod_name> -o yaml
$ oc get -n cert-manager pod/<cert-manager_controller_pod_name> -o yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow