func createObjectMeta(name string, labels map[string]string) api.ObjectMeta { objectMeta := api.ObjectMeta{Name: name, Namespace: "default"} if labels != nil { objectMeta.Labels = labels } return objectMeta }
/* ObjectMetaIsEquivalent determines whether two ObjectMeta's (typically one from a federated API object, and the other from a cluster object) are equivalent. */ func ObjectMetaIsEquivalent(m1, m2 v1.ObjectMeta) bool { // First make all of the read-only fields equal, then perform a deep equality comparison m1.SelfLink = m2.SelfLink // Might be different in different cluster contexts. m1.UID = m2.UID // Definitely different in different cluster contexts m1.ResourceVersion = m2.ResourceVersion // Definitely different in different cluster contexts m1.Generation = m2.Generation // Might be different in different cluster contexts. m1.CreationTimestamp = m2.CreationTimestamp // Definitely different in different cluster contexts. m1.DeletionTimestamp = m2.DeletionTimestamp // Might be different in different cluster contexts. m1.OwnerReferences = nil // Might be different in different cluster contexts. m2.OwnerReferences = nil m1.Finalizers = nil // Might be different in different cluster contexts. m2.Finalizers = nil return reflect.DeepEqual(m1, m2) }
func SetMasterTaintTolerations(meta *v1.ObjectMeta) { tolerationsAnnotation, _ := json.Marshal([]v1.Toleration{{Key: "dedicated", Value: "master", Effect: "NoSchedule"}}) if meta.Annotations == nil { meta.Annotations = map[string]string{} } meta.Annotations[v1.TolerationsAnnotationKey] = string(tolerationsAnnotation) }
// SetNodeAffinity is a basic helper to set meta.Annotations[v1.AffinityAnnotationKey] for one or more v1.NodeSelectorRequirement(s) func SetNodeAffinity(meta *v1.ObjectMeta, expr ...v1.NodeSelectorRequirement) { nodeAffinity := &v1.NodeAffinity{ RequiredDuringSchedulingIgnoredDuringExecution: &v1.NodeSelector{ NodeSelectorTerms: []v1.NodeSelectorTerm{{MatchExpressions: expr}}, }, } affinityAnnotation, _ := json.Marshal(v1.Affinity{NodeAffinity: nodeAffinity}) if meta.Annotations == nil { meta.Annotations = map[string]string{} } meta.Annotations[v1.AffinityAnnotationKey] = string(affinityAnnotation) }
func deepCopy_v1_ObjectMeta(in v1.ObjectMeta, out *v1.ObjectMeta, c *conversion.Cloner) error { out.Name = in.Name out.GenerateName = in.GenerateName out.Namespace = in.Namespace out.SelfLink = in.SelfLink out.UID = in.UID out.ResourceVersion = in.ResourceVersion out.Generation = in.Generation if err := deepCopy_unversioned_Time(in.CreationTimestamp, &out.CreationTimestamp, c); err != nil { return err } if in.DeletionTimestamp != nil { out.DeletionTimestamp = new(unversioned.Time) if err := deepCopy_unversioned_Time(*in.DeletionTimestamp, out.DeletionTimestamp, c); err != nil { return err } } else { out.DeletionTimestamp = nil } if in.DeletionGracePeriodSeconds != nil { out.DeletionGracePeriodSeconds = new(int64) *out.DeletionGracePeriodSeconds = *in.DeletionGracePeriodSeconds } else { out.DeletionGracePeriodSeconds = nil } if in.Labels != nil { out.Labels = make(map[string]string) for key, val := range in.Labels { out.Labels[key] = val } } else { out.Labels = nil } if in.Annotations != nil { out.Annotations = make(map[string]string) for key, val := range in.Annotations { out.Annotations[key] = val } } else { out.Annotations = nil } return nil }
func convert_api_ObjectMeta_To_v1_ObjectMeta(in *api.ObjectMeta, out *v1.ObjectMeta, s conversion.Scope) error { if defaulting, found := s.DefaultingInterface(reflect.TypeOf(*in)); found { defaulting.(func(*api.ObjectMeta))(in) } out.Name = in.Name out.GenerateName = in.GenerateName out.Namespace = in.Namespace out.SelfLink = in.SelfLink out.UID = in.UID out.ResourceVersion = in.ResourceVersion out.Generation = in.Generation if err := s.Convert(&in.CreationTimestamp, &out.CreationTimestamp, 0); err != nil { return err } if in.DeletionTimestamp != nil { if err := s.Convert(&in.DeletionTimestamp, &out.DeletionTimestamp, 0); err != nil { return err } } else { out.DeletionTimestamp = nil } if in.DeletionGracePeriodSeconds != nil { out.DeletionGracePeriodSeconds = new(int64) *out.DeletionGracePeriodSeconds = *in.DeletionGracePeriodSeconds } else { out.DeletionGracePeriodSeconds = nil } if in.Labels != nil { out.Labels = make(map[string]string) for key, val := range in.Labels { out.Labels[key] = val } } else { out.Labels = nil } if in.Annotations != nil { out.Annotations = make(map[string]string) for key, val := range in.Annotations { out.Annotations[key] = val } } else { out.Annotations = nil } return nil }