11.7.3. external-secrets の証明書要件を満たすための cert-manager の設定
cert-manager を設定して、external-secrets ウェブフックとプラグインの証明書管理を処理するようにします。このオプション設定により、プラグインの証明書生成が自動化され、手動設定が不要になります。
cert-manager が使用されない場合、external-secrets はデフォルトで独自の証明書管理を使用します。このモードでは、Webhook に必要な証明書は自動で生成されますが、プラグインの証明書は手動で設定する必要があります。
前提条件
-
cluster-admin権限でクラスターにアクセスできる。 -
ExternalSecretsConfigカスタムリソースを作成した。 - cert-manager Operator for Red Hat OpenShift がインストールされている。詳細は、「cert-manager Operator for Red Hat OpenShift のインストール」を参照してください。
手順
次のコマンドを実行して、
ExternalSecretsConfigカスタムリソースを編集します。$ oc edit externalsecretsconfigs.operator.openshift.io cluster次のように
spec.controllerConfig.certProvider.certManagerセクションを編集して、cert-managerを設定します。apiVersion: operator.openshift.io/v1alpha1 kind: ExternalSecretsConfig ... spec: controllerConfig: certProvider: certManager: injectAnnotations: "true" issuerRef: name: <issuer_name> kind: <issuer_kind> group: <issuer_group> mode: Enabledここでは、以下のようになります。
- injectAnnotation
-
有効にする場合は
trueに設定する必要があります。 - name
-
ExternalSecretsConfigで参照される発行者オブジェクトの名前を指定します。 - kind
-
API 発行者を指定します。
IssuerまたはClusterIssuerのいずれかに設定できます。 - group
-
API 発行者グループを指定します。グループ名は
cert-manager.ioにする必要があります。 - mode
-
Enabledに設定する必要があります。これはイミュータブルなフィールドであり、一度設定すると変更できません。
- 変更を保存します。
externalsecretsconfig.operator.openshift.ioオブジェクト内のcert-manager設定を更新した後、次のコマンドを実行してexternal-secrets-cert-controllerデプロイメントを手動で削除する必要があります。これにより、external-secretsアプリケーションのパフォーマンスのデグレードを防ぎます。$ oc delete deployments.apps external-secrets-cert-controller -n external-secrets必要に応じて、次のコマンドを実行して、
cert-controller用に作成された他のリソースを削除できます。$ oc delete clusterrolebindings.rbac.authorization.k8s.io external-secrets-cert-controller$ oc delete clusterroles.rbac.authorization.k8s.io external-secrets-cert-controller$ oc delete serviceaccounts external-secrets-cert-controller -n external-secrets$ oc delete secrets external-secrets-webhook -n external-secrets