8.7. cert-manager Operator API フィールドのカスタマイズ
環境変数と引数をオーバーライドすることで、Red Hat OpenShift API フィールドの cert-manager Operator をカスタマイズできます。
サポートされていない引数をオーバーライドするには、CertManager リソースに spec.unsupportedConfigOverrides セクションを追加しますが、spec.unsupportedConfigOverrides の使用はサポートされていません。
8.7.1. cert-manager Operator API から環境変数をオーバーライドして cert-manager をカスタマイズ
CertManager リソースに spec.controllerConfig セクションを追加することで、Red Hat OpenShift の cert-manager Operator でサポートされている環境変数をオーバーライドできます。
前提条件
-
cluster-adminロールを持つユーザーとして OpenShift Container Platform クラスターにアクセスできます。
手順
次のコマンドを実行して、
CertManagerリソースを編集します。$ oc edit certmanager cluster
次のオーバーライド引数を指定して、
spec.controllerConfigセクションを追加します。apiVersion: operator.openshift.io/v1alpha1 kind: CertManager metadata: name: cluster ... spec: ... controllerConfig: overrideEnv: - name: HTTP_PROXY value: http://<proxy_url> 1 - name: HTTPS_PROXY value: https://<proxy_url> 2 - name: NO_PROXY value: <ignore_proxy_domains> 3- 変更を保存してテキストエディターを終了し、変更を適用します。
検証
次のコマンドを実行して、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 39s
次のコマンドを実行して、cert-manager Pod の環境変数が更新されているか確認します。
$ oc get pod <redeployed_cert-manager_controller_pod> -n cert-manager -o yaml
出力例
env: ... - name: HTTP_PROXY value: http://<PROXY_URL> - name: HTTPS_PROXY value: https://<PROXY_URL> - name: NO_PROXY value: <IGNORE_PROXY_DOMAINS>
8.7.2. cert-manager Operator API からの引数をオーバーライドして cert-manager をカスタマイズ
CertManager リソースに spec.controllerConfig セクションを追加することで、Red Hat OpenShift の cert-manager Operator でサポートされる引数をオーバーライドできます。
前提条件
-
cluster-adminロールを持つユーザーとして OpenShift Container Platform クラスターにアクセスできます。
手順
次のコマンドを実行して、
CertManagerリソースを編集します。$ oc edit certmanager cluster
次のオーバーライド引数を指定して、
spec.controllerConfigセクションを追加します。apiVersion: operator.openshift.io/v1alpha1 kind: CertManager metadata: name: cluster ... spec: ... controllerConfig: overrideArgs: - '--dns01-recursive-nameservers=<host>:<port>' 1 - '--dns01-recursive-nameservers-only' 2 - '--acme-http01-solver-nameservers=<host>:<port>' 3 - '--v=<verbosity_level>' 4 - '--metrics-listen-address=<host>:<port>' 5 - '--issuer-ambient-credentials' 6 webhookConfig: overrideArgs: - '--v=4' 7 cainjectorConfig: overrideArgs: - '--v=2' 8- 1
- DNS-01 セルフチェックをクエリーする
<host>:<port>ネームサーバーのコンマ区切りリストを提供します。たとえば、--dns01-recursive-nameservers=1.1.1.1:53です。 - 2
- そのドメインに関連付けられた権限のあるネームサーバーをチェックする代わりに、再帰的なネームサーバーのみを使用するように指定します。
- 3
- Automated Certificate Management Environment (ACME) HTTP01 セルフチェックをクエリーするための
<host>:<port>ネームサーバーをコンマ区切りのリストで指定します。たとえば--acme-http01-solver-nameservers=1.1.1.1:53です。 - 4 7 8
- ログの詳細レベルを設定するように設定し、ログメッセージの詳細レベルを決定します。
- 5
- メトリクスエンドポイントのホストとポートを指定します。デフォルト値は
--metrics-listen-address=0.0.0.0:9402です。 - 6
- アンビエント認証情報を使用して DNS-01 チャレンジを解決するように ACME Issuer を設定する場合は、
--issuer-ambient-credentials引数を使用する必要があります。
- 変更を保存してテキストエディターを終了し、変更を適用します。
検証
次のコマンドを実行して、cert-manager Pod の引数が更新されているか確認します。
$ oc get pods -n cert-manager -o yaml
出力例
... metadata: name: cert-manager-6d4b5d4c97-kldwl namespace: cert-manager ... spec: containers: - args: - --acme-http01-solver-nameservers=1.1.1.1:53 - --cluster-resource-namespace=$(POD_NAMESPACE) - --dns01-recursive-nameservers=1.1.1.1:53 - --dns01-recursive-nameservers-only - --leader-election-namespace=kube-system - --max-concurrent-challenges=60 - --metrics-listen-address=0.0.0.0:9042 - --v=6 ... metadata: name: cert-manager-cainjector-866c4fd758-ltxxj namespace: cert-manager ... spec: containers: - args: - --leader-election-namespace=kube-system - --v=2 ... metadata: name: cert-manager-webhook-6d48f88495-c88gd namespace: cert-manager ... spec: containers: - args: ... - --v=4