9.9. cert-manager Operator API フィールドのカスタマイズ
環境変数と引数をオーバーライドすることで、cert-manager Operator for Red Hat OpenShift API のフィールドをカスタマイズできます。
					サポートされていない引数をオーバーライドするには、CertManager リソースに spec.unsupportedConfigOverrides セクションを追加しますが、spec.unsupportedConfigOverrides の使用はサポートされていません。
				
9.9.1. cert-manager Operator API から環境変数をオーバーライドして cert-manager をカスタマイズ リンクのコピーリンクがクリップボードにコピーされました!
					CertManager リソースに spec.controllerConfig セクションを追加することで、cert-manager Operator for Red Hat OpenShift でサポートされている環境変数をオーバーライドできます。
				
前提条件
- 
							
cluster-adminロールを持つユーザーとして OpenShift Container Platform クラスターにアクセスできる。 
手順
次のコマンドを実行して、
CertManagerリソースを編集します。oc edit certmanager cluster
$ oc edit certmanager clusterCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のオーバーライド引数を指定して、
spec.controllerConfigセクションを追加します。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-managerCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME READY STATUS RESTARTS AGE cert-manager-bd7fbb9fc-wvbbt 1/1 Running 0 39s
NAME READY STATUS RESTARTS AGE cert-manager-bd7fbb9fc-wvbbt 1/1 Running 0 39sCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、cert-manager Pod の環境変数が更新されているか確認します。
oc get pod <redeployed_cert-manager_controller_pod> -n cert-manager -o yaml
$ oc get pod <redeployed_cert-manager_controller_pod> -n cert-manager -o yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 
9.9.2. cert-manager Operator API からの引数をオーバーライドして cert-manager をカスタマイズ リンクのコピーリンクがクリップボードにコピーされました!
					CertManager リソースに spec.controllerConfig セクションを追加することで、cert-manager Operator for Red Hat OpenShift でサポートされる引数をオーバーライドできます。
				
前提条件
- 
							
cluster-adminロールを持つユーザーとして OpenShift Container Platform クラスターにアクセスできる。 
手順
次のコマンドを実行して、
CertManagerリソースを編集します。oc edit certmanager cluster
$ oc edit certmanager clusterCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のオーバーライド引数を指定して、
spec.controllerConfigセクションを追加します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 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
$ oc get pods -n cert-manager -o yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 
9.9.3. 証明書の削除時に TLS シークレットを自動的に削除する リンクのコピーリンクがクリップボードにコピーされました!
					CertManager リソースに spec.controllerConfig セクションを追加することで、cert-manager Operator for Red Hat OpenShift の --enable-certificate-owner-ref フラグを有効にできます。--enable-certificate-owner-ref フラグは、TLS 証明書が保存されているシークレットの所有者として証明書リソースを設定します。
				
cert-manager Operator for Red Hat OpenShift をアンインストールするか、クラスターから証明書リソースを削除すると、シークレットは自動的に削除されます。証明書 TLS シークレットが使用されている場所によっては、これが原因でネットワーク接続の問題が発生する可能性があります。
前提条件
- 
							
cluster-adminロールを持つユーザーとして OpenShift Container Platform クラスターにアクセスできる。 - cert-manager Operator for Red Hat OpenShift のバージョン 1.12.0 以降がインストールされている。
 
手順
次のコマンドを実行して、
Certificateオブジェクトとそのシークレットが利用可能であることを確認します。oc get certificate
$ oc get certificateCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME READY SECRET AGE certificate-from-clusterissuer-route53-ambient True certificate-from-clusterissuer-route53-ambient 8h
NAME READY SECRET AGE certificate-from-clusterissuer-route53-ambient True certificate-from-clusterissuer-route53-ambient 8hCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、
CertManagerリソースを編集します。oc edit certmanager cluster
$ oc edit certmanager clusterCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のオーバーライド引数を指定して、
spec.controllerConfigセクションを追加します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 変更を保存してテキストエディターを終了し、変更を適用します。
 
検証
次のコマンドを実行して、cert-manager コントローラー Pod の
--enable-certificate-owner-refフラグが更新されていることを確認します。oc get pods -l app.kubernetes.io/name=cert-manager -n cert-manager -o yaml
$ oc get pods -l app.kubernetes.io/name=cert-manager -n cert-manager -o yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 
9.9.4. cert-manager コンポーネントの CPU およびメモリー制限をオーバーライドする リンクのコピーリンクがクリップボードにコピーされました!
cert-manager Operator for Red Hat OpenShift をインストールした後、cert-manager コントローラー、CA インジェクター、Webhook などの cert-manager コンポーネントの cert-manager Operator for Red Hat OpenShift API から CPU およびメモリーの制限を設定できます。
前提条件
- 
							
cluster-adminロールを持つユーザーとして OpenShift Container Platform クラスターにアクセスできる。 - cert-manager Operator for Red Hat OpenShift のバージョン 1.12.0 以降がインストールされている。
 
手順
次のコマンドを入力して、cert-manager コントローラー、CA インジェクター、および Webhook のデプロイメントが使用可能であることを確認します。
oc get deployment -n cert-manager
$ oc get deployment -n cert-managerCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME READY UP-TO-DATE AVAILABLE AGE cert-manager 1/1 1 1 53m cert-manager-cainjector 1/1 1 1 53m cert-manager-webhook 1/1 1 1 53m
NAME READY UP-TO-DATE AVAILABLE AGE cert-manager 1/1 1 1 53m cert-manager-cainjector 1/1 1 1 53m cert-manager-webhook 1/1 1 1 53mCopy to Clipboard Copied! Toggle word wrap Toggle overflow CPU とメモリーの制限を設定する前に、次のコマンドを入力して cert-manager コントローラー、CA インジェクター、および Webhook の既存の設定を確認します。
oc get deployment -n cert-manager -o yaml
$ oc get deployment -n cert-manager -o yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow cert-manager コントローラー、CA インジェクター、Webhook の CPU およびメモリー制限を設定するには、次のコマンドを入力します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
 - cert-manager コントローラー Pod 内の 1 つのコンテナーが要求できる CPU とメモリーの最大量を定義します。
 - 2 5
 - cert-manager コントローラー Pod が要求できる CPU 制限を指定できます。デフォルト値は
10mです。 - 3 6
 - cert-manager コントローラー Pod が要求できるメモリー制限を指定できます。デフォルト値は
32Miです。 - 4
 - cert-manager コントローラー Pod のスケジューラーによって設定される CPU とメモリーの量を定義します。
 - 7
 - CA インジェクター Pod 内の 1 つのコンテナーが要求できる CPU とメモリーの最大量を定義します。
 - 8 11
 - CA インジェクター Pod が要求できる CPU 制限を指定できます。デフォルト値は
10mです。 - 9 12
 - CA インジェクター Pod が要求できるメモリー制限を指定できます。デフォルト値は
32Miです。 - 10
 - CA インジェクター Pod のスケジューラーによって設定される CPU とメモリーの量を定義します。
 - 13
 - Webhook Pod 内の 1 つのコンテナーが要求できる CPU とメモリーの最大量を定義します。
 - 14 17
 - Webhook Pod が要求できる CPU 制限を指定できます。デフォルト値は
10mです。 - 15 18
 - Webhook Pod が要求できるメモリー制限を指定できます。デフォルト値は
32Miです。 - 16
 - Webhook Pod のスケジューラーによって設定される CPU とメモリーの量を定義します。
 
出力例
certmanager.operator.openshift.io/cluster patched
certmanager.operator.openshift.io/cluster patchedCopy to Clipboard Copied! Toggle word wrap Toggle overflow 
検証
cert-manager コンポーネントの CPU とメモリーの制限が更新されていることを確認します。
oc get deployment -n cert-manager -o yaml
$ oc get deployment -n cert-manager -o yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 
9.9.5. cert-manager コンポーネントのスケジュールオーバーライドを設定する リンクのコピーリンクがクリップボードにコピーされました!
cert-manager コントローラー、CA インジェクター、Webhook などの cert-manager Operator for Red Hat OpenShift コンポーネントの Pod スケジューリングを、cert-manager Operator for Red Hat OpenShift API から設定できます。
前提条件
- 
							
cluster-adminロールを持つユーザーとして OpenShift Container Platform クラスターにアクセスできる。 - cert-manager Operator for Red Hat OpenShift のバージョン 1.15.0 以降がインストールされている。
 
手順
次のコマンドを実行して
certmanager.operatorカスタムリソースを更新し、目的のコンポーネントの Pod スケジューリングオーバーライドを設定します。nodeSelectorおよびtolerations設定を定義するには、controllerConfig、webhookConfig、またはcainjectorConfigセクションのoverrideSchedulingフィールドを使用します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
 - cert-manager コントローラーデプロイメントの
nodeSelectorを定義します。 - 2
 - cert-manager コントローラーデプロイメントの
tolerationsを定義します。 - 3
 - cert-manager webhook デプロイメントの
nodeSelectorを定義します。 - 4
 - cert-manager webhook デプロイメントの
tolerationsを定義します。 - 5
 - cert-manager cainjector デプロイメントの
nodeSelectorを定義します。 - 6
 - cert-manager cainjector デプロイメントの
tolerationsを定義します。 
検証
cert-managerPod の Pod スケジューリング設定を検証します。次のコマンドを実行して、
cert-managernamespace のデプロイメントをチェックし、正しいnodeSelectorとtolerationsがあることを確認します。oc get pods -n cert-manager -o wide
$ oc get pods -n cert-manager -o wideCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES cert-manager-58d9c69db4-78mzp 1/1 Running 0 10m 10.129.0.36 ip-10-0-1-106.ec2.internal <none> <none> cert-manager-cainjector-85b6987c66-rhzf7 1/1 Running 0 11m 10.128.0.39 ip-10-0-1-136.ec2.internal <none> <none> cert-manager-webhook-7f54b4b858-29bsp 1/1 Running 0 11m 10.129.0.35 ip-10-0-1-106.ec2.internal <none> <none>
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES cert-manager-58d9c69db4-78mzp 1/1 Running 0 10m 10.129.0.36 ip-10-0-1-106.ec2.internal <none> <none> cert-manager-cainjector-85b6987c66-rhzf7 1/1 Running 0 11m 10.128.0.39 ip-10-0-1-136.ec2.internal <none> <none> cert-manager-webhook-7f54b4b858-29bsp 1/1 Running 0 11m 10.129.0.35 ip-10-0-1-106.ec2.internal <none> <none>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、デプロイメントに適用されている
nodeSelectorとtolerationsの設定を確認します。oc get deployments -n cert-manager -o jsonpath='{range .items[*]}{.metadata.name}{"\n"}{.spec.template.spec.nodeSelector}{"\n"}{.spec.template.spec.tolerations}{"\n\n"}{end}'$ oc get deployments -n cert-manager -o jsonpath='{range .items[*]}{.metadata.name}{"\n"}{.spec.template.spec.nodeSelector}{"\n"}{.spec.template.spec.tolerations}{"\n\n"}{end}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 
次のコマンドを実行して、
cert-managernamespace 内の Pod スケジューリングイベントを検証します。oc get events -n cert-manager --field-selector reason=Scheduled
$ oc get events -n cert-manager --field-selector reason=ScheduledCopy to Clipboard Copied! Toggle word wrap Toggle overflow