add changelog

Signed-off-by: lou <alex1988@outlook.com>
This commit is contained in:
lou
2023-10-04 16:02:23 +08:00
parent d8b9328310
commit 06ed9dcc71
4 changed files with 5 additions and 9 deletions

View File

@@ -0,0 +1 @@
Support JSON Merge Patch and Strategic Merge Patch in Resource Modifiers

2
go.mod
View File

@@ -58,6 +58,7 @@ require (
k8s.io/metrics v0.25.6
k8s.io/utils v0.0.0-20220728103510-ee6ede2d64ed
sigs.k8s.io/controller-runtime v0.12.2
sigs.k8s.io/json v0.0.0-20220713155537-f223a00ba0e2
sigs.k8s.io/yaml v1.3.0
)
@@ -163,7 +164,6 @@ require (
gopkg.in/yaml.v2 v2.4.0 // indirect
k8s.io/component-base v0.24.2 // indirect
k8s.io/kube-openapi v0.0.0-20220803162953-67bda5d908f1 // indirect
sigs.k8s.io/json v0.0.0-20220713155537-f223a00ba0e2 // indirect
sigs.k8s.io/structured-merge-diff/v4 v4.2.3 // indirect
)

View File

@@ -23,21 +23,20 @@ func (p *JSONMergePatcher) Patch(u *unstructured.Unstructured, _ logrus.FieldLog
return nil, fmt.Errorf("error in marshaling object %s", err)
}
var modifiedObjBytes []byte
for _, patch := range p.patches {
patchBytes, err := yaml.YAMLToJSON(patch.PatchBytes)
if err != nil {
return nil, fmt.Errorf("error in converting YAML to JSON %s", err)
}
modifiedObjBytes, err = jsonpatch.MergePatch(objBytes, patchBytes)
objBytes, err = jsonpatch.MergePatch(objBytes, patchBytes)
if err != nil {
return nil, fmt.Errorf("error in applying JSON Patch %s", err.Error())
}
}
updated := &unstructured.Unstructured{}
err = updated.UnmarshalJSON(modifiedObjBytes)
err = updated.UnmarshalJSON(objBytes)
if err != nil {
return nil, fmt.Errorf("error in unmarshalling modified object %s", err.Error())
}

View File

@@ -33,10 +33,6 @@ func (p *StrategicMergePatcher) Patch(u *unstructured.Unstructured, _ logrus.Fie
return nil, err
}
if err != nil {
return nil, fmt.Errorf("error in unmarshaling object %s", err.Error())
}
origin := u.DeepCopy()
updated := u.DeepCopy()
for _, patch := range p.patches {
@@ -47,7 +43,7 @@ func (p *StrategicMergePatcher) Patch(u *unstructured.Unstructured, _ logrus.Fie
err = strategicPatchObject(origin, patchBytes, updated, schemaReferenceObj, metav1.FieldValidationStrict)
if err != nil {
return nil, fmt.Errorf("error in applying JSON Patch %s", err.Error())
return nil, fmt.Errorf("error in applying Strategic Patch %s", err.Error())
}
origin = updated.DeepCopy()