6.5. リファレンス設定の高度なカスタマイズ
リファレンス設計からの一時的な逸脱を許可する場合は、より高度なカスタマイズを適用できます。
このカスタマイズでは、比較時に cluster-compare プラグインが使用するデフォルトのマッチングプロセスをオーバーライドします。このような高度なカスタマイズを適用する場合は、cluster-compare から重要な情報が除外されるなど、意図しない結果が発生する可能性があるため、注意してください。
リファレンス設定を動的にカスタマイズするための高度なタスクには、次のようなものがあります。
- 手動マッチング: クラスターのカスタムリソースをリファレンス設定のテンプレートと手動でマッチするようにユーザー設定ファイルを設定します。
-
リファレンスへのパッチ適用:
cluster-compareコマンドでパッチオプションを使用してリファレンスにパッチを適用し、リファレンス設定を指定します。
6.5.1. CR とテンプレート間の手動マッチングの設定 リンクのコピーリンクがクリップボードにコピーされました!
場合によっては、cluster-compare プラグインのデフォルトのマッチングが期待どおりに機能しないことがあります。ユーザー設定ファイルを使用すると、カスタムリソース (CR) をテンプレートにマッピングする方法を手動で定義できます。
デフォルトでは、プラグインは apiversion、kind、name、namespace フィールドに基づいて CR をテンプレートにマッピングします。ただし、複数のテンプレートが 1 つの CR とマッチする場合もあります。たとえば、これは次のような状況で発生する可能性があります。
-
同じ
apiversion、kind、name、およびnamespaceフィールドを持つテンプレートが複数存在する。 -
テンプレートが、CR の
namespaceやnameに関係なく、特定のapiversionとkindを持ついずれかの CR とマッチする。
CR が複数のテンプレートとマッチする場合、プラグインはタイブレークメカニズムを使用して、差異が最も少ないテンプレートを選択します。プラグインが選択するテンプレートを明示的に制御するには、手動のマッチングルールを定義するユーザー設定 YAML ファイルを作成します。この設定ファイルを cluster-compare コマンドに渡すことで、必要なテンプレートの選択を適用できます。
手順
手動マッチングの条件を定義するユーザー設定ファイルを作成します。
user-config.yamlファイルの例correlationSettings:1 manualCorrelation:2 correlationPairs:3 ptp.openshift.io/v1_PtpConfig_openshift-ptp_grandmaster: optional/ptp-config/PtpOperatorConfig.yaml4 ptp.openshift.io/v1_PtpOperatorConfig_openshift-ptp_default: optional/ptp-config/PtpOperatorConfig.yaml- 1
correlationSettingsセクションには、手動による相関付け設定を含めます。- 2
manualCorrelationセクションでは、手動による相関付けが有効であることを指定します。- 3
correlationPairsセクションには、手動でマッチする CR とテンプレートのペアをリストします。- 4
- マッチする CR とテンプレートのペアを指定します。CR 仕様では、
<apiversion>_<kind>_<namespace>_<name>という形式を使用します。namespace がないクラスタースコープの CR の場合は、<apiversion>_<kind>_<name>という形式を使用します。テンプレートへのパスは、metadata.yamlファイルからの相対パスである必要があります。
次のコマンドを実行して、
cluster-compareコマンドでユーザー設定ファイルを参照します。$ oc cluster-compare -r <path_to_reference_config>/metadata.yaml -c <path_to_user_config>/user-config.yaml1 - 1
-cオプションを使用してuser-config.yamlファイルを指定します。