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/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())
}

View File

@@ -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,