このトピックでは、システムで 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 変数のオーバーライドが更新されます。