INNER CODE UNIT · Go
MergeKubeUpgradePathDefaults
kubesphere/kubekey · builtin/core/upgrade_path.go:52
func MergeKubeUpgradePathDefaults(cfg map[string]interface{}, def KubeUpgradePath) error {
cur, _, err := unstructured.NestedStringMap(cfg, "cluster_require", "kube_upgrade_path")
if err != nil {
return fmt.Errorf("read cluster_require.kube_upgrade_path from config: %w", err)
}
merged := make(map[string]string, len(def)+len(cur))
for k, v := range cur {
merged[k] = v
}
for minor, patch := range def {
key := fmt.Sprintf("v1.%d", minor)
if _, ok := merged[key]; !ok {
merged[key] = patch
}
}
return unstructured.SetNestedStringMap(cfg, merged, "cluster_require", "kube_upgrade_path")
}