6.5.2. リファレンス設定へのパッチ適用
場合によっては、予想されるクラスター設定の逸脱を処理するために、リファレンス設定にパッチを適用する必要があります。パッチはプラグインによって比較プロセス中に適用され、指定されたリソースフィールドがパッチファイルの定義のとおりに変更されます。
たとえば、最新のリファレンス設定では非推奨になっている古いフィールドをクラスターで使用しているため、テンプレートに一時的にパッチを適用する必要がある場合があります。パッチが適用されたファイルは、比較出力の概要に報告されます。
パッチファイルは次の 2 つの方法で作成できます。
-
cluster-compareプラグインを使用してパッチ YAML ファイルを生成する。 - 独自のパッチファイルを作成する。
6.5.2.1. cluster-compare プラグインを使用したパッチの生成 リンクのコピーリンクがクリップボードにコピーされました!
cluster-compare プラグインを使用して、特定のテンプレートファイル用のパッチを生成できます。プラグインは、クラスターのカスタムリソース (CR) と一致するようにテンプレートを調整します。パッチが適用されたテンプレートに含まれる以前に有効だった差異は報告されません。プラグインは、パッチが適用されたファイルを出力で強調表示します。
手順
次のコマンドを実行して、テンプレートのパッチを生成します。
$ oc cluster-compare -r <path_to_reference_config>/metadata.yaml -o 'generate-patches' --override-reason "A valid reason for the override" --generate-override-for "<template1_path>" --generate-override-for "<template2_path>" > <path_to_patches_file>-
-rは、リファレンス設定の metadata.yaml ファイルへのパスを指定します。 -
-oは、出力形式を指定します。パッチ出力を生成するには、generate-patches値を使用する必要があります。 -
--override-reasonは、パッチの理由を説明します。 --generate-override-forは、パッチが必要なテンプレートへのパスを指定します。注記metadata.yamlファイルを基準とした対象テンプレートのファイルパスを使用する必要があります。たとえば、metadata.yamlファイルのファイルパスが./compare/metadata.yamlの場合、テンプレートの相対ファイルパスはoptional/my-template.yamlです。-
<path_to_patches_file>は、パッチのファイル名とパスを指定します。
-
オプション: リファレンス設定に適用する前にパッチファイルを確認します。
patch-configファイルの例- apiVersion: storage.k8s.io/v1 kind: StorageClass name: crc-csi-hostpath-provisioner patch: '{"provisioner":"kubevirt.io.hostpath-provisioner"}'1 reason: A valid reason for the override templatePath: optional/local-storage-operator/StorageClass.yaml2 type: mergepatch3 次のコマンドを実行して、リファレンス設定にパッチを適用します。
$ oc cluster-compare -r <referenceConfigurationDirectory> -p <path_to_patches_file>-
-rは、リファレンス設定の metadata.yaml ファイルへのパスを指定します。 -pは、パッチファイルへのパスを指定します。出力例
... Cluster CR: storage.k8s.io/v1_StorageClass_crc-csi-hostpath-provisioner Reference File: optional/local-storage-operator/StorageClass.yaml Description: Component description Diff Output: None Patched with patch Patch Reasons: - A valid reason for the override ... No CRs are unmatched to reference CRs Metadata Hash: bb2165004c496b32e0c8509428fb99c653c3cf4fba41196ea6821bd05c3083ab Cluster CRs with patches applied: 1
-