@@ -830,3 +830,59 @@ func TestApplyConvertsManagedFieldsVersion(t *testing.T) {
830
830
t .Fatalf ("expected:\n %v\n but got:\n %v" , expected , actual )
831
831
}
832
832
}
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