// metaDefaults applies a set of defaults on a KubeObject. Non-empty fields on object override defaults. func setMetaDefaults(obj deploy.KubeObject, defaults kube.ObjectMeta) { meta := obj.GetObjectMeta() // if namespace is not set, use default namespace := kube.NamespaceDefault if len(defaults.Namespace) > 0 { namespace = defaults.Namespace } if len(meta.GetNamespace()) == 0 { meta.SetNamespace(namespace) } // if name and generateName are not set use default generateName if len(defaults.GenerateName) > 0 && len(meta.GetName()) == 0 && len(meta.GetGenerateName()) == 0 { meta.SetGenerateName(defaults.GenerateName) } // set default labels labels := map[string]string{} if defaults.Labels != nil { labels = defaults.Labels } for k, v := range meta.GetLabels() { labels[k] = v } meta.SetLabels(labels) // set default annotations annotations := map[string]string{} if defaults.Annotations != nil { annotations = defaults.Annotations } for k, v := range meta.GetAnnotations() { annotations[k] = v } meta.SetAnnotations(annotations) }
func testClearTypeInfo(obj deploy.KubeObject) { obj.GetObjectKind().SetGroupVersionKind(nil) }