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

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…