Merge pull request #951 from Liujingfang1/generatorplugins

add support for generator go-plugins
This commit is contained in:
Kubernetes Prow Robot
2019-04-06 13:40:26 -07:00
committed by GitHub
4 changed files with 250 additions and 1 deletions

View File

@@ -155,7 +155,7 @@ func (kt *KustTarget) shouldAddHashSuffixesToGeneratedResources() bool {
// holding customized resources and the data/rules used
// to do so. The name back references and vars are
// not yet fixed.
func (kt *KustTarget) AccumulateTarget() (
func (kt *KustTarget) AccumulateTarget() ( // nolint: gocyclo
ra *accumulator.ResAccumulator, err error) {
// TODO(monopole): Get rid of the KustomizationErrors accumulator.
// It's not consistently used, and complicates tests.
@@ -173,6 +173,17 @@ func (kt *KustTarget) AccumulateTarget() (
if err != nil {
errs.Append(errors.Wrap(err, "MergeResourcesWithErrorOnIdCollision"))
}
resourceFromGenerators, err := kt.loadGeneratorPlugins()
if err != nil {
errs.Append(errors.Wrap(err, "failed to load resources from generators"))
}
if len(errs.Get()) > 0 {
return ra, errs
}
err = ra.MergeResourcesWithErrorOnIdCollision(resourceFromGenerators)
if err != nil {
errs.Append(errors.Wrap(err, "MergeResourcesWithErrorOnIdCollision"))
}
tConfig, err := config.MakeTransformerConfig(
kt.ldr, kt.kustomization.Configurations)
if err != nil {
@@ -341,3 +352,13 @@ func (kt *KustTarget) loadTransformerPlugins() ([]transformers.Transformer, erro
}
return plugins.NewTransformerLoader(kt.pluginConfig).Load(transformerPluginConfigs)
}
func (kt *KustTarget) loadGeneratorPlugins() (resmap.ResMap, error) {
generatorPluginConfigs, err := kt.rFactory.FromFiles(
kt.ldr, kt.kustomization.Generators)
if err != nil {
return nil, err
}
gl := plugins.NewGeneratorLoader(kt.goPluginEnabled, kt.rFactory)
return gl.Load(generatorPluginConfigs)
}