diff --git a/pkg/target/kusttarget.go b/pkg/target/kusttarget.go index 035bed892..63cdac8ee 100644 --- a/pkg/target/kusttarget.go +++ b/pkg/target/kusttarget.go @@ -32,7 +32,6 @@ import ( "sigs.k8s.io/kustomize/pkg/fs" interror "sigs.k8s.io/kustomize/pkg/internal/error" "sigs.k8s.io/kustomize/pkg/loader" - "sigs.k8s.io/kustomize/pkg/patch" patchtransformer "sigs.k8s.io/kustomize/pkg/patch/transformer" "sigs.k8s.io/kustomize/pkg/resmap" "sigs.k8s.io/kustomize/pkg/resource" @@ -60,13 +59,14 @@ func NewKustTarget( return nil, err } - var m types.Kustomization - err = unmarshal(content, &m) + var k types.Kustomization + err = unmarshal(content, &k) if err != nil { return nil, err } + k.DealWithDeprecatedFields() return &KustTarget{ - kustomization: &m, + kustomization: &k, ldr: ldr, fSys: fSys, tcfg: tcfg, @@ -157,9 +157,6 @@ func (kt *KustTarget) loadCustomizedResMap() (resmap.ResMap, error) { return nil, err } - kt.kustomization.PatchesStrategicMerge = patch.Append( - kt.kustomization.PatchesStrategicMerge, - kt.kustomization.Patches...) patches, err := resource.NewResourceSliceFromPatches( kt.ldr, kt.kustomization.PatchesStrategicMerge, kt.decoder) if err != nil { diff --git a/pkg/types/kustomization.go b/pkg/types/kustomization.go index 3e00325dc..1aa35540e 100644 --- a/pkg/types/kustomization.go +++ b/pkg/types/kustomization.go @@ -91,6 +91,18 @@ type Kustomization struct { ImageTags []ImageTag `json:"imageTags,omitempty" yaml:"imageTags,omitempty"` } +// DealWithDeprecatedFields should be called immediately after +// loading from storage. +func (k *Kustomization) DealWithDeprecatedFields() { + // The Patches field, meant to hold StrategicMerge patches, + // is deprecated. Append anything found there to the + // PatchesStrategicMerge field. + // This happened when the PatchesJson6902 field was introduced. + k.PatchesStrategicMerge = patch.Append( + k.PatchesStrategicMerge, k.Patches...) + k.Patches = []string{} +} + // ConfigMapArgs contains the metadata of how to generate a configmap. type ConfigMapArgs struct { // Name of the configmap.