Skip to content

Commit 08afeb8

Browse files
authored
Merge pull request kubernetes#77821 from kwiesmueller/clear-managed-fields
add test to make sure managedFields can be reset
2 parents 0b6ad8b + fe3c9c8 commit 08afeb8

File tree

1 file changed

+56
-0
lines changed

1 file changed

+56
-0
lines changed

test/integration/apiserver/apply/apply_test.go

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -830,3 +830,59 @@ func TestApplyConvertsManagedFieldsVersion(t *testing.T) {
830830
t.Fatalf("expected:\n%v\nbut got:\n%v", expected, actual)
831831
}
832832
}
833+
834+
// TestClearManagedFields verifies it's possible to clear the managedFields
835+
func TestClearManagedFields(t *testing.T) {
836+
defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, genericfeatures.ServerSideApply, true)()
837+
838+
_, client, closeFn := setup(t)
839+
defer closeFn()
840+
841+
_, err := client.CoreV1().RESTClient().Patch(types.ApplyPatchType).
842+
Namespace("default").
843+
Resource("configmaps").
844+
Name("test-cm").
845+
Param("fieldManager", "apply_test").
846+
Body([]byte(`{
847+
"apiVersion": "v1",
848+
"kind": "ConfigMap",
849+
"metadata": {
850+
"name": "test-cm",
851+
"namespace": "default",
852+
"labels": {
853+
"test-label": "test"
854+
}
855+
},
856+
"data": {
857+
"key": "value"
858+
}
859+
}`)).
860+
Do().
861+
Get()
862+
if err != nil {
863+
t.Fatalf("Failed to create object using Apply patch: %v", err)
864+
}
865+
866+
_, err = client.CoreV1().RESTClient().Patch(types.MergePatchType).
867+
Namespace("default").
868+
Resource("configmaps").
869+
Name("test-cm").
870+
Body([]byte(`{"metadata":{"managedFields": [{}]}}`)).Do().Get()
871+
if err != nil {
872+
t.Fatalf("Failed to patch object: %v", err)
873+
}
874+
875+
object, err := client.CoreV1().RESTClient().Get().Namespace("default").Resource("configmaps").Name("test-cm").Do().Get()
876+
if err != nil {
877+
t.Fatalf("Failed to retrieve object: %v", err)
878+
}
879+
880+
accessor, err := meta.Accessor(object)
881+
if err != nil {
882+
t.Fatalf("Failed to get meta accessor: %v", err)
883+
}
884+
885+
if managedFields := accessor.GetManagedFields(); len(managedFields) != 0 {
886+
t.Fatalf("Failed to clear managedFields, got: %v", managedFields)
887+
}
888+
}

0 commit comments

Comments
 (0)