mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-27 13:37:30 +00:00
make sure managedFields are written
This commit is contained in:
parent
40a65577c7
commit
7a6afe7989
@ -2216,6 +2216,7 @@ func TestDedupOwnerReferences(t *testing.T) {
|
|||||||
}
|
}
|
||||||
klog.Infof("creating dependent with duplicate owner references")
|
klog.Infof("creating dependent with duplicate owner references")
|
||||||
dependent := c.createDependentWithOwners([]metav1.OwnerReference{fakeRefA, fakeRefA})
|
dependent := c.createDependentWithOwners([]metav1.OwnerReference{fakeRefA, fakeRefA})
|
||||||
|
assertManagedFields(t, dependent)
|
||||||
expectedWarning := fmt.Sprintf(handlers.DuplicateOwnerReferencesWarningFormat, fakeRefA.UID)
|
expectedWarning := fmt.Sprintf(handlers.DuplicateOwnerReferencesWarningFormat, fakeRefA.UID)
|
||||||
assertOwnerReferences(t, dependent, []metav1.OwnerReference{fakeRefA})
|
assertOwnerReferences(t, dependent, []metav1.OwnerReference{fakeRefA})
|
||||||
assertWarningCount(t, warningWriter, previousWarningCount+1)
|
assertWarningCount(t, warningWriter, previousWarningCount+1)
|
||||||
@ -2223,12 +2224,18 @@ func TestDedupOwnerReferences(t *testing.T) {
|
|||||||
|
|
||||||
klog.Infof("updating dependent with duplicate owner references")
|
klog.Infof("updating dependent with duplicate owner references")
|
||||||
dependent = c.updateDependentWithOwners(dependent, []metav1.OwnerReference{fakeRefA, fakeRefA})
|
dependent = c.updateDependentWithOwners(dependent, []metav1.OwnerReference{fakeRefA, fakeRefA})
|
||||||
|
assertManagedFields(t, dependent)
|
||||||
assertOwnerReferences(t, dependent, []metav1.OwnerReference{fakeRefA})
|
assertOwnerReferences(t, dependent, []metav1.OwnerReference{fakeRefA})
|
||||||
assertWarningCount(t, warningWriter, previousWarningCount+2)
|
assertWarningCount(t, warningWriter, previousWarningCount+2)
|
||||||
assertWarningMessage(t, b, expectedWarning)
|
assertWarningMessage(t, b, expectedWarning)
|
||||||
|
|
||||||
klog.Infof("patching dependent with duplicate owner reference")
|
klog.Infof("patching dependent with duplicate owner reference")
|
||||||
dependent = c.patchDependentWithOwner(dependent, fakeRefA)
|
dependent = c.patchDependentWithOwner(dependent, fakeRefA)
|
||||||
|
// TODO: currently a patch request that duplicates owner references can still
|
||||||
|
// wipe out managed fields. Note that this happens to built-in resources but
|
||||||
|
// not custom resources. In future we should either dedup before writing manage
|
||||||
|
// fields, or stop deduping and reject the request.
|
||||||
|
// assertManagedFields(t, dependent)
|
||||||
expectedPatchWarning := fmt.Sprintf(handlers.DuplicateOwnerReferencesAfterMutatingAdmissionWarningFormat, fakeRefA.UID)
|
expectedPatchWarning := fmt.Sprintf(handlers.DuplicateOwnerReferencesAfterMutatingAdmissionWarningFormat, fakeRefA.UID)
|
||||||
assertOwnerReferences(t, dependent, []metav1.OwnerReference{fakeRefA})
|
assertOwnerReferences(t, dependent, []metav1.OwnerReference{fakeRefA})
|
||||||
assertWarningCount(t, warningWriter, previousWarningCount+3)
|
assertWarningCount(t, warningWriter, previousWarningCount+3)
|
||||||
@ -2332,3 +2339,9 @@ func assertWarningMessage(t *testing.T, b *bytes.Buffer, expected string) {
|
|||||||
t.Errorf("unexpected warning message, expected: %v, got: %v", expected, actual)
|
t.Errorf("unexpected warning message, expected: %v, got: %v", expected, actual)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func assertManagedFields(t *testing.T, obj *unstructured.Unstructured) {
|
||||||
|
if len(obj.GetManagedFields()) == 0 {
|
||||||
|
t.Errorf("unexpected empty managed fields in object: %v", obj)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user