Cleanup kusttarget.

This commit is contained in:
Jeffrey Regan
2019-05-21 10:40:25 -07:00
parent e801b3a75d
commit f621543d9c
2 changed files with 56 additions and 66 deletions

View File

@@ -18,7 +18,6 @@ import (
"sigs.k8s.io/kustomize/pkg/pgmconfig" "sigs.k8s.io/kustomize/pkg/pgmconfig"
"sigs.k8s.io/kustomize/pkg/plugins" "sigs.k8s.io/kustomize/pkg/plugins"
"sigs.k8s.io/kustomize/pkg/resmap" "sigs.k8s.io/kustomize/pkg/resmap"
"sigs.k8s.io/kustomize/pkg/resource"
"sigs.k8s.io/kustomize/pkg/transformers" "sigs.k8s.io/kustomize/pkg/transformers"
"sigs.k8s.io/kustomize/pkg/transformers/config" "sigs.k8s.io/kustomize/pkg/transformers/config"
"sigs.k8s.io/kustomize/pkg/types" "sigs.k8s.io/kustomize/pkg/types"
@@ -200,29 +199,15 @@ func (kt *KustTarget) AccumulateTarget() (
return nil, errors.Wrapf( return nil, errors.Wrapf(
err, "merging CRDs %v", crdTc) err, "merging CRDs %v", crdTc)
} }
err = kt.generateFromPlugins(ra) err = kt.runGenerators(ra)
if err != nil { if err != nil {
return nil, err return nil, err
} }
patches, err := kt.rFactory.RF().SliceFromPatches( err = kt.runTransformers(ra)
kt.ldr, kt.kustomization.PatchesStrategicMerge) return ra, err
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
} }
func (kt *KustTarget) generateFromPlugins( func (kt *KustTarget) runGenerators(
ra *accumulator.ResAccumulator) error { ra *accumulator.ResAccumulator) error {
generators, err := kt.configureBuiltinGenerators() generators, err := kt.configureBuiltinGenerators()
if err != nil { if err != nil {
@@ -239,7 +224,7 @@ func (kt *KustTarget) generateFromPlugins(
return errors.Wrapf(err, "merging from generator %v", g) return errors.Wrapf(err, "merging from generator %v", g)
} }
} }
generators, err = kt.loadGeneratorPlugins() generators, err = kt.configureExternalGenerators()
if err != nil { if err != nil {
return errors.Wrap(err, "loading generator plugins") return errors.Wrap(err, "loading generator plugins")
} }
@@ -256,6 +241,55 @@ func (kt *KustTarget) generateFromPlugins(
return nil 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 // accumulateResources fills the given resourceAccumulator
// with resources read from the given list of paths. // with resources read from the given list of paths.
func (kt *KustTarget) accumulateResources( func (kt *KustTarget) accumulateResources(
@@ -310,47 +344,3 @@ func (kt *KustTarget) accumulateFile(
} }
return nil 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())
}

View File

@@ -62,8 +62,8 @@ func (kt *KustTarget) configureBuiltinTransformers(
[]transformers.Transformer, error) { []transformers.Transformer, error) {
// TODO: Convert remaining legacy transformers to plugins // TODO: Convert remaining legacy transformers to plugins
// with tests: // with tests:
// patch SMP // - patch SMP
// patch JSON // - namespace
configurators := []transformerConfigurator{ configurators := []transformerConfigurator{
kt.configureBuiltinNameTransformer, kt.configureBuiltinNameTransformer,
kt.configureBuiltinImageTagTransformer, kt.configureBuiltinImageTagTransformer,