INNER CODE UNIT · Go
EffectiveKubeUpgradePath
kubesphere/kubekey · builtin/core/upgrade_path.go:74
func EffectiveKubeUpgradePath(cfg map[string]interface{}) (KubeUpgradePath, error) {
m, _, err := unstructured.NestedStringMap(cfg, "cluster_require", "kube_upgrade_path")
if err != nil {
return nil, fmt.Errorf("read cluster_require.kube_upgrade_path from config: %w", err)
}
path := make(KubeUpgradePath, len(m))
for minorStr, patch := range m {
minor, err := parseMinor(minorStr)
if err != nil {
return nil, fmt.Errorf("invalid minor key %q in kube_upgrade_path: %w", minorStr, err)
}
path[minor] = patch
}
return path, nil
}
// ComputeUpgradeSteps returns the ordered list of target versions the cluster
// must pass through to upgrade from currentMinor to targetMinor.