INNER CODE UNIT · Go
UpgradeVersionOverlay
kubesphere/kubekey · builtin/core/upgrade_path.go:178
func UpgradeVersionOverlay(vfs fs.FS, minor int) (map[string]interface{}, error) {
data, err := fs.ReadFile(vfs, fmt.Sprintf("roles/defaults/vars/v1.%d.yaml", minor))
if err != nil {
return nil, fmt.Errorf("read embedded roles/defaults/vars/v1.%d.yaml: %w", minor, err)
}
var vars map[string]interface{}
if err := yaml.Unmarshal(data, &vars); err != nil {
return nil, fmt.Errorf("parse embedded roles/defaults/vars/v1.%d.yaml: %w", minor, err)
}
overlay := make(map[string]interface{})
for _, path := range upgradeVersionFieldPaths {
v, found, err := unstructured.NestedFieldNoCopy(vars, path...)
if err != nil {
return nil, fmt.Errorf("read version field %q from v1.%d.yaml: %w", strings.Join(path, "."), minor, err)
}
if !found {
continue // field may be absent (e.g. commented out) in some minors