From f621543d9c0e064f7c4fb99cfe0dfa16536bf702 Mon Sep 17 00:00:00 2001 From: Jeffrey Regan Date: Tue, 21 May 2019 10:40:25 -0700 Subject: [PATCH] Cleanup kusttarget. --- pkg/target/kusttarget.go | 118 ++++++++++++-------------- pkg/target/kusttarget_configplugin.go | 4 +- 2 files changed, 56 insertions(+), 66 deletions(-) diff --git a/pkg/target/kusttarget.go b/pkg/target/kusttarget.go index bf00e191f..c576c9824 100644 --- a/pkg/target/kusttarget.go +++ b/pkg/target/kusttarget.go @@ -18,7 +18,6 @@ import ( "sigs.k8s.io/kustomize/pkg/pgmconfig" "sigs.k8s.io/kustomize/pkg/plugins" "sigs.k8s.io/kustomize/pkg/resmap" - "sigs.k8s.io/kustomize/pkg/resource" "sigs.k8s.io/kustomize/pkg/transformers" "sigs.k8s.io/kustomize/pkg/transformers/config" "sigs.k8s.io/kustomize/pkg/types" @@ -200,29 +199,15 @@ func (kt *KustTarget) AccumulateTarget() ( return nil, errors.Wrapf( err, "merging CRDs %v", crdTc) } - err = kt.generateFromPlugins(ra) + err = kt.runGenerators(ra) if err != nil { return nil, err } - patches, err := kt.rFactory.RF().SliceFromPatches( - kt.ldr, kt.kustomization.PatchesStrategicMerge) - if err != nil { - return nil, errors.Wrapf( - err, "reading strategic merge patches %v", - kt.kustomization.PatchesStrategicMerge) - } - t, err := kt.newTransformer(patches, ra.GetTransformerConfig()) - if err != nil { - return nil, err - } - err = ra.Transform(t) - if err != nil { - return nil, err - } - return ra, nil + err = kt.runTransformers(ra) + return ra, err } -func (kt *KustTarget) generateFromPlugins( +func (kt *KustTarget) runGenerators( ra *accumulator.ResAccumulator) error { generators, err := kt.configureBuiltinGenerators() if err != nil { @@ -239,7 +224,7 @@ func (kt *KustTarget) generateFromPlugins( return errors.Wrapf(err, "merging from generator %v", g) } } - generators, err = kt.loadGeneratorPlugins() + generators, err = kt.configureExternalGenerators() if err != nil { return errors.Wrap(err, "loading generator plugins") } @@ -256,6 +241,55 @@ func (kt *KustTarget) generateFromPlugins( return nil } +func (kt *KustTarget) configureExternalGenerators() ([]transformers.Generator, error) { + ra := accumulator.MakeEmptyAccumulator() + err := kt.accumulateResources(ra, kt.kustomization.Generators) + if err != nil { + return nil, err + } + return kt.pLdr.LoadGenerators(kt.ldr, ra.ResMap()) +} + +func (kt *KustTarget) runTransformers(ra *accumulator.ResAccumulator) error { + patches, err := kt.rFactory.RF().SliceFromPatches( + kt.ldr, kt.kustomization.PatchesStrategicMerge) + if err != nil { + return errors.Wrapf( + err, "reading strategic merge patches %v", + kt.kustomization.PatchesStrategicMerge) + } + var r []transformers.Transformer + t, err := kt.tFactory.MakePatchTransformer(patches, kt.rFactory.RF()) + if err != nil { + return err + } + r = append(r, t) + tConfig := ra.GetTransformerConfig() + r = append(r, transformers.NewNamespaceTransformer( + string(kt.kustomization.Namespace), tConfig.NameSpace)) + lts, err := kt.configureBuiltinTransformers(tConfig) + if err != nil { + return err + } + r = append(r, lts...) + lts, err = kt.configureExternalTransformers() + if err != nil { + return err + } + r = append(r, lts...) + t = transformers.NewMultiTransformer(r) + return ra.Transform(t) +} + +func (kt *KustTarget) configureExternalTransformers() ([]transformers.Transformer, error) { + ra := accumulator.MakeEmptyAccumulator() + err := kt.accumulateResources(ra, kt.kustomization.Transformers) + if err != nil { + return nil, err + } + return kt.pLdr.LoadTransformers(kt.ldr, ra.ResMap()) +} + // accumulateResources fills the given resourceAccumulator // with resources read from the given list of paths. func (kt *KustTarget) accumulateResources( @@ -310,47 +344,3 @@ func (kt *KustTarget) accumulateFile( } return nil } - -// newTransformer makes a Transformer that does a collection -// of object transformations. -func (kt *KustTarget) newTransformer( - patches []*resource.Resource, tConfig *config.TransformerConfig) ( - transformers.Transformer, error) { - var r []transformers.Transformer - t, err := kt.tFactory.MakePatchTransformer(patches, kt.rFactory.RF()) - if err != nil { - return nil, err - } - r = append(r, t) - r = append(r, transformers.NewNamespaceTransformer( - string(kt.kustomization.Namespace), tConfig.NameSpace)) - lts, err := kt.configureBuiltinTransformers(tConfig) - if err != nil { - return nil, err - } - r = append(r, lts...) - tp, err := kt.loadTransformerPlugins() - if err != nil { - return nil, err - } - r = append(r, tp...) - return transformers.NewMultiTransformer(r), nil -} - -func (kt *KustTarget) loadTransformerPlugins() ([]transformers.Transformer, error) { - ra := accumulator.MakeEmptyAccumulator() - err := kt.accumulateResources(ra, kt.kustomization.Transformers) - if err != nil { - return nil, err - } - return kt.pLdr.LoadTransformers(kt.ldr, ra.ResMap()) -} - -func (kt *KustTarget) loadGeneratorPlugins() ([]transformers.Generator, error) { - ra := accumulator.MakeEmptyAccumulator() - err := kt.accumulateResources(ra, kt.kustomization.Generators) - if err != nil { - return nil, err - } - return kt.pLdr.LoadGenerators(kt.ldr, ra.ResMap()) -} diff --git a/pkg/target/kusttarget_configplugin.go b/pkg/target/kusttarget_configplugin.go index ff3a79023..6f7e862f3 100644 --- a/pkg/target/kusttarget_configplugin.go +++ b/pkg/target/kusttarget_configplugin.go @@ -62,8 +62,8 @@ func (kt *KustTarget) configureBuiltinTransformers( []transformers.Transformer, error) { // TODO: Convert remaining legacy transformers to plugins // with tests: - // patch SMP - // patch JSON + // - patch SMP + // - namespace configurators := []transformerConfigurator{ kt.configureBuiltinNameTransformer, kt.configureBuiltinImageTagTransformer,