mirror of
https://github.com/kubernetes-sigs/kustomize.git
synced 2026-07-17 17:52:12 +00:00
Remove some duped code.
This commit is contained in:
@@ -14,17 +14,14 @@ limitations under the License.
|
||||
package target_test
|
||||
|
||||
import (
|
||||
"os"
|
||||
"path/filepath"
|
||||
"testing"
|
||||
|
||||
"sigs.k8s.io/kustomize/pkg/pgmconfig"
|
||||
"sigs.k8s.io/kustomize/pkg/types"
|
||||
"sigs.k8s.io/kustomize/k8sdeps/kv/plugin"
|
||||
)
|
||||
|
||||
func writeGenerator(th *KustTestHarness, path string) {
|
||||
th.writeF(path, `
|
||||
apiVersion: strings.microwoosh.com/v1
|
||||
apiVersion: someteam.example.com/v1
|
||||
kind: ServiceGenerator
|
||||
metadata:
|
||||
name: myServiceGenerator
|
||||
@@ -34,20 +31,14 @@ port: "12345"
|
||||
}
|
||||
|
||||
func TestGeneratorPlugin(t *testing.T) {
|
||||
dir, err := filepath.Abs("../../..")
|
||||
if err != nil {
|
||||
t.Errorf("unexpected error %v", err)
|
||||
}
|
||||
os.Setenv(pgmconfig.XDG_CONFIG_HOME, dir)
|
||||
defer os.Unsetenv(pgmconfig.XDG_CONFIG_HOME)
|
||||
tc := NewTestEnvController(t).Set()
|
||||
defer tc.Reset()
|
||||
|
||||
err = buildGoPlugins(dir, "ServiceGenerator")
|
||||
if err != nil {
|
||||
t.Errorf("unexpected error %v", err)
|
||||
}
|
||||
tc.BuildGoPlugin(
|
||||
"someteam.example.com", "v1", "ServiceGenerator")
|
||||
|
||||
th := NewKustTestHarnessWithPluginConfig(
|
||||
t, "/app", types.PluginConfig{GoEnabled: true})
|
||||
t, "/app", plugin.ActivePluginConfig())
|
||||
th.writeK("/app", `
|
||||
generators:
|
||||
- serviceGenerator.yaml
|
||||
|
||||
@@ -173,17 +173,6 @@ func (kt *KustTarget) AccumulateTarget() ( // nolint: gocyclo
|
||||
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 {
|
||||
@@ -213,6 +202,12 @@ func (kt *KustTarget) AccumulateTarget() ( // nolint: gocyclo
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if kt.pluginConfig.GoEnabled {
|
||||
kt.generateFromPlugins(ra, errs)
|
||||
if len(errs.Get()) > 0 {
|
||||
return ra, errs
|
||||
}
|
||||
}
|
||||
patches, err := kt.rFactory.RF().SliceFromPatches(
|
||||
kt.ldr, kt.kustomization.PatchesStrategicMerge)
|
||||
if err != nil {
|
||||
@@ -232,6 +227,26 @@ func (kt *KustTarget) AccumulateTarget() ( // nolint: gocyclo
|
||||
return ra, nil
|
||||
}
|
||||
|
||||
func (kt *KustTarget) generateFromPlugins(
|
||||
ra *accumulator.ResAccumulator,
|
||||
errs *interror.KustomizationErrors) {
|
||||
generators, err := kt.loadGeneratorPlugins()
|
||||
if err != nil {
|
||||
errs.Append(err)
|
||||
}
|
||||
for _, g := range generators {
|
||||
resMap, err := g.Generate()
|
||||
if err != nil {
|
||||
errs.Append(err)
|
||||
} else {
|
||||
err = ra.MergeResourcesWithErrorOnIdCollision(resMap)
|
||||
if err != nil {
|
||||
errs.Append(errors.Wrap(err, "from plugin"))
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func (kt *KustTarget) generateConfigMapsAndSecrets(
|
||||
errs *interror.KustomizationErrors) (resmap.ResMap, error) {
|
||||
cms, err := kt.rFactory.NewResMapFromConfigMapArgs(
|
||||
@@ -345,20 +360,19 @@ func (kt *KustTarget) newTransformer(
|
||||
}
|
||||
|
||||
func (kt *KustTarget) loadTransformerPlugins() ([]transformers.Transformer, error) {
|
||||
transformerPluginConfigs, err := kt.rFactory.FromFiles(
|
||||
configs, err := kt.rFactory.FromFiles(
|
||||
kt.ldr, kt.kustomization.Transformers)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return plugins.NewTransformerLoader(kt.pluginConfig).Load(transformerPluginConfigs)
|
||||
return plugins.NewTransformerLoader(kt.pluginConfig).Load(configs)
|
||||
}
|
||||
|
||||
func (kt *KustTarget) loadGeneratorPlugins() (resmap.ResMap, error) {
|
||||
generatorPluginConfigs, err := kt.rFactory.FromFiles(
|
||||
func (kt *KustTarget) loadGeneratorPlugins() ([]transformers.Generator, error) {
|
||||
configs, 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)
|
||||
return plugins.NewGeneratorLoader(kt.pluginConfig).Load(configs)
|
||||
}
|
||||
|
||||
@@ -105,7 +105,7 @@ func (x *TestEnvController) BuildGoPlugin(plugin ...string) {
|
||||
// ObjectRoot is the objRoot dir for plugin object files.
|
||||
func (x *TestEnvController) ObjectRoot() string {
|
||||
return filepath.Join(
|
||||
x.xdgConfigHome, pgmconfig.PgmName, plugin.PluginsDir)
|
||||
x.xdgConfigHome, pgmconfig.PgmName, plugin.PluginRoot)
|
||||
}
|
||||
|
||||
// SrcRoot is a objRoot directory for plugin source code
|
||||
@@ -120,7 +120,7 @@ func (x *TestEnvController) ObjectRoot() string {
|
||||
func (x *TestEnvController) SrcRoot() string {
|
||||
dir := filepath.Join(
|
||||
os.Getenv("GOPATH"), "src",
|
||||
pgmconfig.Repo, pgmconfig.PgmName, plugin.PluginsDir)
|
||||
pgmconfig.Repo, pgmconfig.PgmName, plugin.PluginRoot)
|
||||
if _, err := os.Stat(dir); err != nil {
|
||||
x.t.Errorf("plugin source objRoot '%s' not found", dir)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user