func AddLabel()

in gke-deploy/core/resource/resource.go [609:632]


func AddLabel(ctx context.Context, obj *Object, key, value string, override bool) error {
	if key == "" || value == "" {
		return fmt.Errorf("key and value cannot be empty")
	}

	if err := addToNestedMap(obj, key, value, override, "metadata", "labels"); err != nil {
		return err
	}

	var nestedFields []string
	switch kind := ObjectKind(obj); kind {
	case "CronJob":
		nestedFields = []string{"spec", "jobTemplate", "spec", "template", "metadata", "labels"}
	case "DaemonSet", "Deployment", "Job", "ReplicaSet", "ReplicationController", "StatefulSet":
		nestedFields = []string{"spec", "template", "metadata", "labels"}
	default:
		return nil
	}
	if err := addToNestedMap(obj, key, value, override, nestedFields...); err != nil {
		return err
	}

	return nil
}