Move getPatchType logic back to main function

This commit is contained in:
Arda Güçlü 2022-06-22 09:35:49 +03:00
parent d336f7df87
commit 4ed5653a0b

View File

@ -115,9 +115,13 @@ func (p *Patcher) patchSimple(obj runtime.Object, modified []byte, namespace, na
var patch []byte
patchType, err := p.getPatchType(p.Mapping.GroupVersionKind)
patchType := types.StrategicMergePatchType
_, err = scheme.Scheme.New(p.Mapping.GroupVersionKind)
if err != nil {
return nil, nil, fmt.Sprintf("getting patch type for %v:", p.Mapping.GroupVersionKind), err
if !runtime.IsNotRegisteredError(err) {
return nil, nil, fmt.Sprintf("getting instance of versioned object for %v:", p.Mapping.GroupVersionKind), err
}
patchType = types.MergePatchType
}
switch patchType {
@ -160,19 +164,6 @@ func (p *Patcher) patchSimple(obj runtime.Object, modified []byte, namespace, na
return patch, patchedObj, "", err
}
// getPatchType returns correct PatchType for the given GVK.
func (p *Patcher) getPatchType(gvk schema.GroupVersionKind) (types.PatchType, error) {
_, err := scheme.Scheme.New(gvk)
if err == nil {
return types.StrategicMergePatchType, nil
}
if runtime.IsNotRegisteredError(err) {
return types.MergePatchType, nil
}
return types.MergePatchType, err
}
// buildMergePatch builds patch according to the JSONMergePatch which is used for
// custom resource definitions.
func (p *Patcher) buildMergePatch(original, modified, current []byte) ([]byte, error) {