このトピックでは、システムで TKr イメージを解決する方法について説明します。
TKr の解決
クラスタ オブジェクトが作成または更新される場合、Kubernetes API サーバは Webhook を変更する TKr リゾルバを呼び出します。クラスタ(またはその ClusterClass)には run.tanzu.vmware.com/resolve-tkr
注釈が必要です。これがない場合、TKr の解決は完全にスキップされます。TKr リゾルバでは run.tanzu.vmware.com/resolve-tkr
注釈の値をラベル クエリとして使用して、候補の TKr のセットを制約します。空の文字列を指定すると、すべての TKr が選択されます。
クラスタ トポロジ controlPlain および machineDeployments の run.tanzu.vmware.com/resolve-os-image
注釈の値は、controlPlain と machineDeployments でそれぞれ使用する OSImage オブジェクトのラベル セレクタとして使用されます。解決された TKr によって提供される 1 つの OSImage が、controlPlane またはいずれかの machineDeployments のクエリを満たす必要があります。
指定されたクラスタの spec.topology.version はバージョンのプリフィックスとして使用されます。TKr リゾルバ Webhook では、上記の制約を満たす最新の使用可能な TKR を検索します。見つからない場合は、クラスタの作成/更新要求が拒否されます。
TKR リゾルバ Webhook では、クラスタが次のように変更されます。
- run.tanzu.vmware.com/tkr ラベルが、解決された TKR の名前に設定されます。
- クラスタの spec.topology.version が、解決された TKR の Kubernetes バージョンに設定されます。
- Kubernetes バージョンから controlPlane の TKR および OSImage の値のセットへのマッピングを含めるようにクラスタ変数 TKR_DATA が更新されます。
- Kubernetes バージョンから machineDeployment の TKR および OSImage の値のセットへのマッピングを含めるように、個々の machineDeployments の TKR_DATA 変数のオーバーライドが更新されます。