11.7.5. external-secrets リソースにカスタムアノテーションを追加する
リソースをカスタマイズするには、カスタムリソース (CR) 内で最大 20 個のカスタムアノテーションを定義できます。Operator は、アノテーションをデフォルト値と統合し、優先順位を付け、外部システムによって設定されたアノテーションを安全に保持します。
CR からアノテーションが削除されると、Operator は次回のリコンシリエーション時に、管理対象のすべてのリソースから自動的にそのアノテーションを削除します。Kubernetes システムのアノテーションや他のコントローラーによって追加されたアノテーションなど、外部ソースによって設定されたアノテーションは保持され、Operator の影響を受けません。
以下の予約済みドメインプレフィックスを含むアノテーションキーは許可されておらず、適用された場合は検証によって拒否されます。
-
kubernetes.io/(*.kubernetes.io/などのサブドメインを含む) -
k8s.io/(*.k8s.io/などのサブドメインを含む) -
openshift.io/(*.openshift.io/などのサブドメインを含む) -
cert-manager.io/
前提条件
-
cluster-admin権限でクラスターにアクセスできる。 -
ExternalSecretsConfigカスタムリソースを作成した。
手順
次のコマンドを実行して、
ExternalSecretsConfigCR を編集します。$ oc edit externalsecretsconfigs.operator.openshift.io clusterspec.controllerConfigの下に、以下のようにannotationsフィールドを追加します。apiVersion: operator.openshift.io/v1alpha1 kind: ExternalSecretsConfig metadata: name: cluster spec: controllerConfig: annotations: prometheus.io/scrape: "true" example.com/environment: "production"
検証
以下のコマンドを実行して、external-secrets のデプロイメントにアノテーションが適用されていることを確認してください。
$ oc get deployment external-secrets -n external-secrets -o jsonpath='{.metadata.annotations}' | jq .出力には、指定したカスタムアノテーションが含まれるはずです。
以下のコマンドを実行して、アノテーションが Pod テンプレートに適用されていることを確認してください。
$ oc get deployment external-secrets -n external-secrets -o jsonpath='{.spec.template.metadata.annotations}' | jq .出力には、指定したカスタムアノテーションが含まれるはずです。
以下のコマンドを実行して、アノテーションがサービスなどの他の管理対象リソースに適用されていることを確認します。
$ oc get service external-secrets-webhook -n external-secrets -o jsonpath='{.metadata.annotations}' | jq .出力には、指定したカスタムアノテーションが含まれるはずです。