/* 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) }