@@ -66,6 +66,7 @@ import (
66
66
"k8s.io/client-go/kubernetes/scheme"
67
67
"k8s.io/client-go/testing"
68
68
"k8s.io/utils/ptr"
69
+ kjson "sigs.k8s.io/json"
69
70
70
71
"sigs.k8s.io/controller-runtime/pkg/client"
71
72
"sigs.k8s.io/controller-runtime/pkg/client/apiutil"
@@ -377,7 +378,7 @@ func convertFromUnstructuredIfNecessary(s *runtime.Scheme, o runtime.Object) (ru
377
378
if err != nil {
378
379
return nil , fmt .Errorf ("failed to serialize %T: %w" , unstructuredSerialized , err )
379
380
}
380
- if err := json . Unmarshal (unstructuredSerialized , typed ); err != nil {
381
+ if err := kjson . UnmarshalCaseSensitivePreserveInts (unstructuredSerialized , typed ); err != nil {
381
382
return nil , fmt .Errorf ("failed to unmarshal the content of %T into %T: %w" , u , typed , err )
382
383
}
383
384
@@ -556,7 +557,7 @@ func (c *fakeClient) Get(ctx context.Context, key client.ObjectKey, obj client.O
556
557
return err
557
558
}
558
559
zero (obj )
559
- return json . Unmarshal (j , obj )
560
+ return kjson . UnmarshalCaseSensitivePreserveInts (j , obj )
560
561
}
561
562
562
563
func (c * fakeClient ) Watch (ctx context.Context , list client.ObjectList , opts ... client.ListOption ) (watch.Interface , error ) {
@@ -620,7 +621,7 @@ func (c *fakeClient) List(ctx context.Context, obj client.ObjectList, opts ...cl
620
621
}
621
622
zero (obj )
622
623
objCopy := obj .DeepCopyObject ().(client.ObjectList )
623
- if err := json . Unmarshal (j , objCopy ); err != nil {
624
+ if err := kjson . UnmarshalCaseSensitivePreserveInts (j , objCopy ); err != nil {
624
625
return err
625
626
}
626
627
@@ -995,7 +996,7 @@ func (c *fakeClient) patch(obj client.Object, patch client.Patch, opts ...client
995
996
return err
996
997
}
997
998
zero (obj )
998
- return json . Unmarshal (j , obj )
999
+ return kjson . UnmarshalCaseSensitivePreserveInts (j , obj )
999
1000
}
1000
1001
1001
1002
// Applying a patch results in a deletionTimestamp that is truncated to the nearest second.
@@ -1047,7 +1048,7 @@ func dryPatch(action testing.PatchActionImpl, tracker testing.ObjectTracker) (ru
1047
1048
return nil , err
1048
1049
}
1049
1050
1050
- if err = json . Unmarshal (modified , obj ); err != nil {
1051
+ if err = kjson . UnmarshalCaseSensitivePreserveInts (modified , obj ); err != nil {
1051
1052
return nil , err
1052
1053
}
1053
1054
case types .MergePatchType :
@@ -1056,15 +1057,15 @@ func dryPatch(action testing.PatchActionImpl, tracker testing.ObjectTracker) (ru
1056
1057
return nil , err
1057
1058
}
1058
1059
1059
- if err := json . Unmarshal (modified , obj ); err != nil {
1060
+ if err := kjson . UnmarshalCaseSensitivePreserveInts (modified , obj ); err != nil {
1060
1061
return nil , err
1061
1062
}
1062
1063
case types .StrategicMergePatchType :
1063
1064
mergedByte , err := strategicpatch .StrategicMergePatch (old , action .GetPatch (), obj )
1064
1065
if err != nil {
1065
1066
return nil , err
1066
1067
}
1067
- if err = json . Unmarshal (mergedByte , obj ); err != nil {
1068
+ if err = kjson . UnmarshalCaseSensitivePreserveInts (mergedByte , obj ); err != nil {
1068
1069
return nil , err
1069
1070
}
1070
1071
case types .ApplyPatchType :
@@ -1121,7 +1122,7 @@ func toMapStringAny(obj runtime.Object) (map[string]any, error) {
1121
1122
}
1122
1123
1123
1124
u := map [string ]any {}
1124
- return u , json . Unmarshal (serialized , & u )
1125
+ return u , kjson . UnmarshalCaseSensitivePreserveInts (serialized , & u )
1125
1126
}
1126
1127
1127
1128
func fromMapStringAny (u map [string ]any , target runtime.Object ) error {
@@ -1136,7 +1137,7 @@ func fromMapStringAny(u map[string]any, target runtime.Object) error {
1136
1137
}
1137
1138
1138
1139
zero (target )
1139
- if err := json . Unmarshal (serialized , & target ); err != nil {
1140
+ if err := kjson . UnmarshalCaseSensitivePreserveInts (serialized , & target ); err != nil {
1140
1141
return fmt .Errorf ("failed to deserialize: %w" , err )
1141
1142
}
1142
1143
0 commit comments