6.5.2. リファレンス設定へのパッチ適用


場合によっては、予想されるクラスター設定の逸脱を処理するために、リファレンス設定にパッチを適用する必要があります。パッチはプラグインによって比較プロセス中に適用され、指定されたリソースフィールドがパッチファイルの定義のとおりに変更されます。

たとえば、最新のリファレンス設定では非推奨になっている古いフィールドをクラスターで使用しているため、テンプレートに一時的にパッチを適用する必要がある場合があります。パッチが適用されたファイルは、比較出力の概要に報告されます。

パッチファイルは次の 2 つの方法で作成できます。

  • cluster-compare プラグインを使用してパッチ YAML ファイルを生成する。
  • 独自のパッチファイルを作成する。

6.5.2.1. cluster-compare プラグインを使用したパッチの生成

cluster-compare プラグインを使用して、特定のテンプレートファイル用のパッチを生成できます。プラグインは、クラスターのカスタムリソース (CR) と一致するようにテンプレートを調整します。パッチが適用されたテンプレートに含まれる以前に有効だった差異は報告されません。プラグインは、パッチが適用されたファイルを出力で強調表示します。

手順

  1. 次のコマンドを実行して、テンプレートのパッチを生成します。

    $ 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> は、パッチのファイル名とパスを指定します。
  2. オプション: リファレンス設定に適用する前にパッチファイルを確認します。

    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.yaml 
    2
    
      type: mergepatch 
    3

    1
    プラグインは、CR と一致するようにテンプレート内のフィールドを修正します。
    2
    テンプレートへのパス。
    3
    mergepath オプションは、JSON を対象テンプレートにマージします。指定されていないフィールドは変更されません。
  3. 次のコマンドを実行して、リファレンス設定にパッチを適用します。

    $ 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

Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2026 Red Hat
トップに戻る