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 クラスターにアクセスできます。

手順

  1. 次のコマンドを実行して、CertManager リソースを編集します。

    $ oc edit certmanager cluster
  2. 次のオーバーライド引数を指定して、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
    1 2
    <proxy_url> をプロキシーサーバーの URL に置き換えます。
    3
    <ignore_proxy_domains> をドメインのコンマ区切りリストに置き換えます。これらのドメインは、プロキシーサーバーにより無視されます。
  3. 変更を保存してテキストエディターを終了し、変更を適用します。

検証

  1. 次のコマンドを実行して、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

  2. 次のコマンドを実行して、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 クラスターにアクセスできます。

手順

  1. 次のコマンドを実行して、CertManager リソースを編集します。

    $ oc edit certmanager cluster
  2. 次のオーバーライド引数を指定して、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 引数を使用する必要があります。
  3. 変更を保存してテキストエディターを終了し、変更を適用します。

検証

  • 次のコマンドを実行して、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