From 3a85fcd365d314d1bcae40ee4db5bd68268b24f2 Mon Sep 17 00:00:00 2001 From: Jeffrey Regan Date: Fri, 17 May 2019 14:51:00 -0700 Subject: [PATCH] Simplify some of the plugin testing code. --- pkg/kusttest/kusttestharness.go | 22 ++++-------- pkg/plugins/compiler.go | 15 +++----- pkg/plugins/loader_test.go | 25 ++++--------- pkg/target/chartinflatorplugin_test.go | 25 +++---------- pkg/target/plugindir_test.go | 29 +++++---------- pkg/target/transformerplugin_test.go | 35 +++++-------------- plugin/builtin/ConfigMapGenerator.go | 21 +++-------- plugin/builtin/ConfigMapGenerator_test.go | 26 +++----------- plugin/builtin/ImageTagTransformer.go | 28 ++++----------- plugin/builtin/ImageTagTransformer_test.go | 28 ++++----------- plugin/builtin/NameTransformer_test.go | 11 ++---- plugin/builtin/SecretGenerator.go | 17 ++------- plugin/builtin/SecretGenerator_test.go | 26 +++----------- plugin/builtingen/ConfigMapGenerator.go | 6 ++-- plugin/builtingen/ImageTagTransformer.go | 13 ++++--- plugin/builtingen/NameTransformer.go | 2 +- plugin/builtingen/SecretGenerator.go | 2 +- .../plugintest => plugin}/plugintestenv.go | 32 ++++------------- .../v1/ChartInflator_test.go | 25 +++---------- .../v1/SedTransformer_test.go | 23 +++--------- .../v1/SomeServiceGenerator.go | 17 ++------- .../v1/SomeServiceGenerator_test.go | 25 +++---------- .../someteam.example.com/v1/StringPrefixer.go | 19 ++-------- 23 files changed, 110 insertions(+), 362 deletions(-) rename {internal/plugintest => plugin}/plugintestenv.go (73%) diff --git a/pkg/kusttest/kusttestharness.go b/pkg/kusttest/kusttestharness.go index e4ff488de..c22c93841 100644 --- a/pkg/kusttest/kusttestharness.go +++ b/pkg/kusttest/kusttestharness.go @@ -1,18 +1,5 @@ -/* -Copyright 2018 The Kubernetes Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ +// Copyright 2019 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 package kusttest_test @@ -49,6 +36,11 @@ func NewKustTestHarness(t *testing.T, path string) *KustTestHarness { t, path, plugin.DefaultPluginConfig()) } +func NewKustTestPluginHarness(t *testing.T, path string) *KustTestHarness { + return NewKustTestHarnessWithPluginConfig( + t, path, plugin.ActivePluginConfig()) +} + func NewKustTestHarnessWithPluginConfig( t *testing.T, path string, pc *types.PluginConfig) *KustTestHarness { diff --git a/pkg/plugins/compiler.go b/pkg/plugins/compiler.go index f8b030e74..f156f1969 100644 --- a/pkg/plugins/compiler.go +++ b/pkg/plugins/compiler.go @@ -20,9 +20,7 @@ import ( "fmt" "os" "os/exec" - "path" "path/filepath" - "runtime" "time" "sigs.k8s.io/kustomize/k8sdeps/kv/plugin" @@ -51,15 +49,7 @@ func DefaultSrcRoot() (string, error) { os.Getenv("GOPATH"), "src", pgmconfig.DomainName, pgmconfig.ProgramName, pgmconfig.PluginRoot) - if FileExists(root) { - return root, nil - } - nope = append(nope, root) - // get the root kustomize source directory when - // GOPATH is not set - _, filename, _, _ := runtime.Caller(1) - root = path.Join(path.Dir(filename), "../..", pgmconfig.PluginRoot) if FileExists(root) { return root, nil } @@ -93,6 +83,11 @@ func (b *Compiler) ObjRoot() string { return b.objRoot } +// SrcRoot is where to find src. +func (b *Compiler) SrcRoot() string { + return b.srcRoot +} + func goBin() string { return filepath.Join(os.Getenv("GOROOT"), "bin", "go") } diff --git a/pkg/plugins/loader_test.go b/pkg/plugins/loader_test.go index 52ed82107..7b6ae2f9c 100644 --- a/pkg/plugins/loader_test.go +++ b/pkg/plugins/loader_test.go @@ -1,18 +1,5 @@ -/* -Copyright 2019 The Kubernetes Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ +// Copyright 2019 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 package plugins_test @@ -20,12 +7,12 @@ import ( "testing" "sigs.k8s.io/kustomize/internal/loadertest" - "sigs.k8s.io/kustomize/internal/plugintest" "sigs.k8s.io/kustomize/k8sdeps/kunstruct" - "sigs.k8s.io/kustomize/k8sdeps/kv/plugin" + kvplugin "sigs.k8s.io/kustomize/k8sdeps/kv/plugin" "sigs.k8s.io/kustomize/pkg/plugins" "sigs.k8s.io/kustomize/pkg/resmap" "sigs.k8s.io/kustomize/pkg/resource" + "sigs.k8s.io/kustomize/plugin" ) const ( @@ -56,7 +43,7 @@ port: "12345" ) func TestLoader(t *testing.T) { - tc := plugintest_test.NewPluginTestEnv(t).Set() + tc := plugin.NewPluginTestEnv(t).Set() defer tc.Reset() tc.BuildGoPlugin( @@ -67,7 +54,7 @@ func TestLoader(t *testing.T) { rmF := resmap.NewFactory(resource.NewFactory( kunstruct.NewKunstructuredFactoryImpl())) - l := plugins.NewLoader(plugin.ActivePluginConfig(), rmF) + l := plugins.NewLoader(kvplugin.ActivePluginConfig(), rmF) if l == nil { t.Fatal("expect non-nil loader") } diff --git a/pkg/target/chartinflatorplugin_test.go b/pkg/target/chartinflatorplugin_test.go index c32cf0943..585529da4 100644 --- a/pkg/target/chartinflatorplugin_test.go +++ b/pkg/target/chartinflatorplugin_test.go @@ -1,20 +1,7 @@ // +build notravis -/* -Copyright 2019 The Kubernetes Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ +// Copyright 2019 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 // Disabled on travis, because don't want to install helm on travis. @@ -23,9 +10,8 @@ package target_test import ( "testing" - "sigs.k8s.io/kustomize/internal/plugintest" - "sigs.k8s.io/kustomize/k8sdeps/kv/plugin" "sigs.k8s.io/kustomize/pkg/kusttest" + "sigs.k8s.io/kustomize/plugin" ) // This is an example of using a helm chart as a base, @@ -42,14 +28,13 @@ import ( // TODO: Download and inflate the chart, and check that // in for the test. func TestChartInflatorPlugin(t *testing.T) { - tc := plugintest_test.NewPluginTestEnv(t).Set() + tc := plugin.NewPluginTestEnv(t).Set() defer tc.Reset() tc.BuildExecPlugin( "someteam.example.com", "v1", "ChartInflator") - th := kusttest_test.NewKustTestHarnessWithPluginConfig( - t, "/app", plugin.ActivePluginConfig()) + th := kusttest_test.NewKustTestPluginHarness(t, "/app") th.WriteK("/app", ` generators: - chartInflator.yaml diff --git a/pkg/target/plugindir_test.go b/pkg/target/plugindir_test.go index 56a879a19..5cd427c65 100644 --- a/pkg/target/plugindir_test.go +++ b/pkg/target/plugindir_test.go @@ -1,18 +1,5 @@ -/* -Copyright 2019 The Kubernetes Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ +// Copyright 2019 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 package target_test @@ -22,9 +9,8 @@ import ( "path/filepath" "testing" - "sigs.k8s.io/kustomize/internal/plugintest" "sigs.k8s.io/kustomize/k8sdeps/kunstruct" - "sigs.k8s.io/kustomize/k8sdeps/kv/plugin" + kvplugin "sigs.k8s.io/kustomize/k8sdeps/kv/plugin" "sigs.k8s.io/kustomize/k8sdeps/transformer" "sigs.k8s.io/kustomize/pkg/fs" "sigs.k8s.io/kustomize/pkg/kusttest" @@ -34,10 +20,11 @@ import ( "sigs.k8s.io/kustomize/pkg/resource" "sigs.k8s.io/kustomize/pkg/target" "sigs.k8s.io/kustomize/pkg/types" + "sigs.k8s.io/kustomize/plugin" ) func TestPluginDir(t *testing.T) { - tc := plugintest_test.NewPluginTestEnv(t).Set() + tc := plugin.NewPluginTestEnv(t).Set() defer tc.Reset() tc.BuildExecPlugin( @@ -77,9 +64,11 @@ metadata: } rf := resmap.NewFactory(resource.NewFactory( kunstruct.NewKunstructuredFactoryWithGeneratorArgs( - &types.GeneratorMetaArgs{PluginConfig: plugin.ActivePluginConfig()}))) + &types.GeneratorMetaArgs{ + PluginConfig: kvplugin.ActivePluginConfig(), + }))) - pl := plugins.NewLoader(plugin.ActivePluginConfig(), rf) + pl := plugins.NewLoader(kvplugin.ActivePluginConfig(), rf) tg, err := target.NewKustTarget(ldr, rf, transformer.NewFactoryImpl(), pl) if err != nil { t.Fatalf("err %v", err) diff --git a/pkg/target/transformerplugin_test.go b/pkg/target/transformerplugin_test.go index 745390311..4f586cbb8 100644 --- a/pkg/target/transformerplugin_test.go +++ b/pkg/target/transformerplugin_test.go @@ -1,27 +1,13 @@ -/* -Copyright 2019 The Kubernetes Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ +// Copyright 2019 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 package target_test import ( "testing" - "sigs.k8s.io/kustomize/internal/plugintest" - "sigs.k8s.io/kustomize/k8sdeps/kv/plugin" "sigs.k8s.io/kustomize/pkg/kusttest" + "sigs.k8s.io/kustomize/plugin" ) func writeDeployment(th *kusttest_test.KustTestHarness, path string) { @@ -61,7 +47,7 @@ metadata: } func TestOrderedTransformers(t *testing.T) { - tc := plugintest_test.NewPluginTestEnv(t).Set() + tc := plugin.NewPluginTestEnv(t).Set() defer tc.Reset() tc.BuildGoPlugin( @@ -70,8 +56,7 @@ func TestOrderedTransformers(t *testing.T) { tc.BuildGoPlugin( "someteam.example.com", "v1", "DatePrefixer") - th := kusttest_test.NewKustTestHarnessWithPluginConfig( - t, "/app", plugin.ActivePluginConfig()) + th := kusttest_test.NewKustTestPluginHarness(t, "/app") th.WriteK("/app", ` resources: - deployment.yaml @@ -107,14 +92,13 @@ spec: } func TestSedTransformer(t *testing.T) { - tc := plugintest_test.NewPluginTestEnv(t).Set() + tc := plugin.NewPluginTestEnv(t).Set() defer tc.Reset() tc.BuildExecPlugin( "someteam.example.com", "v1", "SedTransformer") - th := kusttest_test.NewKustTestHarnessWithPluginConfig( - t, "/app", plugin.ActivePluginConfig()) + th := kusttest_test.NewKustTestPluginHarness(t, "/app") th.WriteK("/app", ` resources: - configmap.yaml @@ -177,7 +161,7 @@ metadata: } func TestTransformedTransformers(t *testing.T) { - tc := plugintest_test.NewPluginTestEnv(t).Set() + tc := plugin.NewPluginTestEnv(t).Set() defer tc.Reset() tc.BuildGoPlugin( @@ -186,8 +170,7 @@ func TestTransformedTransformers(t *testing.T) { tc.BuildGoPlugin( "someteam.example.com", "v1", "DatePrefixer") - th := kusttest_test.NewKustTestHarnessWithPluginConfig( - t, "/app/overlay", plugin.ActivePluginConfig()) + th := kusttest_test.NewKustTestPluginHarness(t, "/app/overlay") th.WriteK("/app/base", ` resources: diff --git a/plugin/builtin/ConfigMapGenerator.go b/plugin/builtin/ConfigMapGenerator.go index ea895a20b..52683df58 100644 --- a/plugin/builtin/ConfigMapGenerator.go +++ b/plugin/builtin/ConfigMapGenerator.go @@ -1,20 +1,7 @@ // +build plugin -/* -Copyright 2019 The Kubernetes Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ +// Copyright 2019 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 //go:generate go run sigs.k8s.io/kustomize/cmd/pluginator package main @@ -27,8 +14,8 @@ import ( ) type plugin struct { - ldr ifc.Loader - rf *resmap.Factory + ldr ifc.Loader + rf *resmap.Factory types.GeneratorOptions types.ConfigMapArgs } diff --git a/plugin/builtin/ConfigMapGenerator_test.go b/plugin/builtin/ConfigMapGenerator_test.go index 17f8f70a4..44bb4bc47 100644 --- a/plugin/builtin/ConfigMapGenerator_test.go +++ b/plugin/builtin/ConfigMapGenerator_test.go @@ -1,39 +1,23 @@ -/* -Copyright 2018 The Kubernetes Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ +// Copyright 2019 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 package main_test import ( "testing" - "sigs.k8s.io/kustomize/internal/plugintest" - "sigs.k8s.io/kustomize/k8sdeps/kv/plugin" "sigs.k8s.io/kustomize/pkg/kusttest" - "sigs.k8s.io/kustomize/pkg/loader" + "sigs.k8s.io/kustomize/plugin" ) func TestConfigMapGenerator(t *testing.T) { - tc := plugintest_test.NewPluginTestEnv(t).Set() + tc := plugin.NewPluginTestEnv(t).Set() defer tc.Reset() tc.BuildGoPlugin( "builtin", "", "ConfigMapGenerator") - th := kusttest_test.NewKustTestHarnessFull( - t, "/app", loader.RestrictionRootOnly, plugin.ActivePluginConfig()) + th := kusttest_test.NewKustTestPluginHarness(t, "/app") th.WriteF("/app/devops.env", ` SERVICE_PORT=32 diff --git a/plugin/builtin/ImageTagTransformer.go b/plugin/builtin/ImageTagTransformer.go index 14d835e91..07998c904 100644 --- a/plugin/builtin/ImageTagTransformer.go +++ b/plugin/builtin/ImageTagTransformer.go @@ -1,20 +1,7 @@ // +build plugin -/* -Copyright 2019 The Kubernetes Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ +// Copyright 2019 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 //go:generate go run sigs.k8s.io/kustomize/cmd/pluginator package main @@ -46,11 +33,10 @@ func (p *plugin) Config( func (p *plugin) Transform(m resmap.ResMap) error { argsList := make([]image.Image, 1) - argsList[0] = p.ImageTag - t, err := transformers.NewImageTransformer(argsList, p.FieldSpecs) - if err != nil { - return err + argsList[0] = p.ImageTag + t, err := transformers.NewImageTransformer(argsList, p.FieldSpecs) + if err != nil { + return err } - return t.Transform(m) + return t.Transform(m) } - diff --git a/plugin/builtin/ImageTagTransformer_test.go b/plugin/builtin/ImageTagTransformer_test.go index 9320e42d9..fabf15599 100644 --- a/plugin/builtin/ImageTagTransformer_test.go +++ b/plugin/builtin/ImageTagTransformer_test.go @@ -1,39 +1,23 @@ -/* -Copyright 2018 The Kubernetes Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ +// Copyright 2019 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 package main_test import ( "testing" - "sigs.k8s.io/kustomize/internal/plugintest" - "sigs.k8s.io/kustomize/k8sdeps/kv/plugin" "sigs.k8s.io/kustomize/pkg/kusttest" - "sigs.k8s.io/kustomize/pkg/loader" + "sigs.k8s.io/kustomize/plugin" ) func TestImageTagTransformer(t *testing.T) { - tc := plugintest_test.NewPluginTestEnv(t).Set() + tc := plugin.NewPluginTestEnv(t).Set() defer tc.Reset() tc.BuildGoPlugin( "builtin", "", "ImageTagTransformer") - th := kusttest_test.NewKustTestHarnessFull( - t, "/app", loader.RestrictionRootOnly, plugin.ActivePluginConfig()) + th := kusttest_test.NewKustTestPluginHarness(t, "/app") rm := th.LoadAndRunTransformer(` apiVersion: builtin @@ -43,7 +27,7 @@ metadata: imageTag: name: nginx newTag: v2 -`,` +`, ` group: apps apiVersion: v1 kind: Deployment diff --git a/plugin/builtin/NameTransformer_test.go b/plugin/builtin/NameTransformer_test.go index 067826f72..d89a49a23 100644 --- a/plugin/builtin/NameTransformer_test.go +++ b/plugin/builtin/NameTransformer_test.go @@ -6,23 +6,18 @@ package main_test import ( "testing" - "sigs.k8s.io/kustomize/internal/plugintest" - "sigs.k8s.io/kustomize/k8sdeps/kv/plugin" "sigs.k8s.io/kustomize/pkg/kusttest" - "sigs.k8s.io/kustomize/pkg/loader" + "sigs.k8s.io/kustomize/plugin" ) func TestNameTransformer(t *testing.T) { - tc := plugintest_test.NewPluginTestEnv(t).Set() + tc := plugin.NewPluginTestEnv(t).Set() defer tc.Reset() tc.BuildGoPlugin( "builtin", "", "NameTransformer") - th := kusttest_test.NewKustTestHarnessFull( - t, "/app", loader.RestrictionRootOnly, - plugin.ActivePluginConfig()) - + th := kusttest_test.NewKustTestPluginHarness(t, "/app") rm := th.LoadAndRunTransformer(` apiVersion: builtin kind: NameTransformer diff --git a/plugin/builtin/SecretGenerator.go b/plugin/builtin/SecretGenerator.go index e0c5f87b6..1490d4c2a 100644 --- a/plugin/builtin/SecretGenerator.go +++ b/plugin/builtin/SecretGenerator.go @@ -1,20 +1,7 @@ // +build plugin -/* -Copyright 2019 The Kubernetes Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ +// Copyright 2019 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 //go:generate go run sigs.k8s.io/kustomize/cmd/pluginator package main diff --git a/plugin/builtin/SecretGenerator_test.go b/plugin/builtin/SecretGenerator_test.go index 9e7ecf714..bb2b7ae33 100644 --- a/plugin/builtin/SecretGenerator_test.go +++ b/plugin/builtin/SecretGenerator_test.go @@ -1,39 +1,23 @@ -/* -Copyright 2018 The Kubernetes Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ +// Copyright 2019 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 package main_test import ( "testing" - "sigs.k8s.io/kustomize/internal/plugintest" - "sigs.k8s.io/kustomize/k8sdeps/kv/plugin" "sigs.k8s.io/kustomize/pkg/kusttest" - "sigs.k8s.io/kustomize/pkg/loader" + "sigs.k8s.io/kustomize/plugin" ) func TestSecretGenerator(t *testing.T) { - tc := plugintest_test.NewPluginTestEnv(t).Set() + tc := plugin.NewPluginTestEnv(t).Set() defer tc.Reset() tc.BuildGoPlugin( "builtin", "", "SecretGenerator") - th := kusttest_test.NewKustTestHarnessFull( - t, "/app", loader.RestrictionRootOnly, plugin.ActivePluginConfig()) + th := kusttest_test.NewKustTestPluginHarness(t, "/app") th.WriteF("/app/a.env", ` ROUTER_PASSWORD=admin diff --git a/plugin/builtingen/ConfigMapGenerator.go b/plugin/builtingen/ConfigMapGenerator.go index 027345c9b..d06833f8c 100644 --- a/plugin/builtingen/ConfigMapGenerator.go +++ b/plugin/builtingen/ConfigMapGenerator.go @@ -9,14 +9,14 @@ import ( ) type ConfigMapGeneratorPlugin struct { - ldr ifc.Loader - rf *resmap.Factory + ldr ifc.Loader + rf *resmap.Factory types.GeneratorOptions types.ConfigMapArgs } func NewConfigMapGeneratorPlugin() *ConfigMapGeneratorPlugin { - return &ConfigMapGeneratorPlugin{} + return &ConfigMapGeneratorPlugin{} } func (p *ConfigMapGeneratorPlugin) Config( diff --git a/plugin/builtingen/ImageTagTransformer.go b/plugin/builtingen/ImageTagTransformer.go index 660197f5c..11946547f 100644 --- a/plugin/builtingen/ImageTagTransformer.go +++ b/plugin/builtingen/ImageTagTransformer.go @@ -18,7 +18,7 @@ type ImageTagTransformerPlugin struct { } func NewImageTagTransformerPlugin() *ImageTagTransformerPlugin { - return &ImageTagTransformerPlugin{} + return &ImageTagTransformerPlugin{} } func (p *ImageTagTransformerPlugin) Config( @@ -30,11 +30,10 @@ func (p *ImageTagTransformerPlugin) Config( func (p *ImageTagTransformerPlugin) Transform(m resmap.ResMap) error { argsList := make([]image.Image, 1) - argsList[0] = p.ImageTag - t, err := transformers.NewImageTransformer(argsList, p.FieldSpecs) - if err != nil { - return err + argsList[0] = p.ImageTag + t, err := transformers.NewImageTransformer(argsList, p.FieldSpecs) + if err != nil { + return err } - return t.Transform(m) + return t.Transform(m) } - diff --git a/plugin/builtingen/NameTransformer.go b/plugin/builtingen/NameTransformer.go index 3d0ce731d..1d218fe52 100644 --- a/plugin/builtingen/NameTransformer.go +++ b/plugin/builtingen/NameTransformer.go @@ -17,7 +17,7 @@ type NameTransformerPlugin struct { } func NewNameTransformerPlugin() *NameTransformerPlugin { - return &NameTransformerPlugin{} + return &NameTransformerPlugin{} } func (p *NameTransformerPlugin) Config( diff --git a/plugin/builtingen/SecretGenerator.go b/plugin/builtingen/SecretGenerator.go index 4e660c310..cdf33f5f5 100644 --- a/plugin/builtingen/SecretGenerator.go +++ b/plugin/builtingen/SecretGenerator.go @@ -16,7 +16,7 @@ type SecretGeneratorPlugin struct { } func NewSecretGeneratorPlugin() *SecretGeneratorPlugin { - return &SecretGeneratorPlugin{} + return &SecretGeneratorPlugin{} } func (p *SecretGeneratorPlugin) Config( diff --git a/internal/plugintest/plugintestenv.go b/plugin/plugintestenv.go similarity index 73% rename from internal/plugintest/plugintestenv.go rename to plugin/plugintestenv.go index 7daac18bc..dbd0d346f 100644 --- a/internal/plugintest/plugintestenv.go +++ b/plugin/plugintestenv.go @@ -1,20 +1,7 @@ -/* -Copyright 2019 The Kubernetes Authors. +// Copyright 2019 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package plugintest_test +package plugin import ( "io/ioutil" @@ -62,23 +49,16 @@ func (x *PluginTestEnv) BuildGoPlugin(g, v, k string) { func (x *PluginTestEnv) BuildExecPlugin(name ...string) { obj := filepath.Join( - append([]string{x.workDir, pgmconfig.ProgramName, pgmconfig.PluginRoot}, name...)...) - - srcRoot, err := plugins.DefaultSrcRoot() - if err != nil { - x.t.Error(err) - } - + append([]string{x.compiler.ObjRoot()}, name...)...) src := filepath.Join( - append([]string{srcRoot}, name...)...) - + append([]string{x.compiler.SrcRoot()}, name...)...) if err := os.MkdirAll(filepath.Dir(obj), 0755); err != nil { x.t.Errorf("error making directory: %s", filepath.Dir(obj)) } cmd := exec.Command("cp", src, obj) cmd.Env = os.Environ() if err := cmd.Run(); err != nil { - x.t.Errorf("error copying %s: %v", src, err) + x.t.Errorf("error copying %s to %s: %v", src, obj, err) } } diff --git a/plugin/someteam.example.com/v1/ChartInflator_test.go b/plugin/someteam.example.com/v1/ChartInflator_test.go index 1b866a9a0..ffbc5cab1 100644 --- a/plugin/someteam.example.com/v1/ChartInflator_test.go +++ b/plugin/someteam.example.com/v1/ChartInflator_test.go @@ -1,20 +1,7 @@ // +build notravis -/* -Copyright 2019 The Kubernetes Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ +// Copyright 2019 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 // Disabled on travis, because don't want to install helm on travis. @@ -23,9 +10,8 @@ package main_test import ( "testing" - "sigs.k8s.io/kustomize/internal/plugintest" - "sigs.k8s.io/kustomize/k8sdeps/kv/plugin" "sigs.k8s.io/kustomize/pkg/kusttest" + "sigs.k8s.io/kustomize/plugin" ) // This test requires having the helm binary on the PATH. @@ -33,14 +19,13 @@ import ( // TODO: Download and inflate the chart, and check that // in for the test. func TestChartInflator(t *testing.T) { - tc := plugintest_test.NewPluginTestEnv(t).Set() + tc := plugin.NewPluginTestEnv(t).Set() defer tc.Reset() tc.BuildExecPlugin( "someteam.example.com", "v1", "ChartInflator") - th := kusttest_test.NewKustTestHarnessWithPluginConfig( - t, "/app", plugin.ActivePluginConfig()) + th := kusttest_test.NewKustTestPluginHarness(t, "/app") m := th.LoadAndRunGenerator(` apiVersion: someteam.example.com/v1 diff --git a/plugin/someteam.example.com/v1/SedTransformer_test.go b/plugin/someteam.example.com/v1/SedTransformer_test.go index e54ccac3c..04b2f6529 100644 --- a/plugin/someteam.example.com/v1/SedTransformer_test.go +++ b/plugin/someteam.example.com/v1/SedTransformer_test.go @@ -1,34 +1,21 @@ -/* -Copyright 2019 The Kubernetes Authors. - Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - http://www.apache.org/licenses/LICENSE-2.0 - Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ +// Copyright 2019 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 package main_test import ( "testing" - "sigs.k8s.io/kustomize/internal/plugintest" - "sigs.k8s.io/kustomize/k8sdeps/kv/plugin" "sigs.k8s.io/kustomize/pkg/kusttest" - "sigs.k8s.io/kustomize/pkg/loader" + "sigs.k8s.io/kustomize/plugin" ) func TestSedTransformer(t *testing.T) { - tc := plugintest_test.NewPluginTestEnv(t).Set() + tc := plugin.NewPluginTestEnv(t).Set() defer tc.Reset() tc.BuildExecPlugin("someteam.example.com", "v1", "SedTransformer") - th := kusttest_test.NewKustTestHarnessFull( - t, "/app", loader.RestrictionRootOnly, plugin.ActivePluginConfig()) + th := kusttest_test.NewKustTestPluginHarness(t, "/app") th.WriteF("/app/sed-input.txt", ` s/$FRUIT/orange/g diff --git a/plugin/someteam.example.com/v1/SomeServiceGenerator.go b/plugin/someteam.example.com/v1/SomeServiceGenerator.go index 20f6a2edf..d40792aa0 100644 --- a/plugin/someteam.example.com/v1/SomeServiceGenerator.go +++ b/plugin/someteam.example.com/v1/SomeServiceGenerator.go @@ -1,20 +1,7 @@ // +build plugin -/* -Copyright 2019 The Kubernetes Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ +// Copyright 2019 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 package main diff --git a/plugin/someteam.example.com/v1/SomeServiceGenerator_test.go b/plugin/someteam.example.com/v1/SomeServiceGenerator_test.go index 7f94c83c7..c6c10dda6 100644 --- a/plugin/someteam.example.com/v1/SomeServiceGenerator_test.go +++ b/plugin/someteam.example.com/v1/SomeServiceGenerator_test.go @@ -1,38 +1,23 @@ -/* -Copyright 2019 The Kubernetes Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ +// Copyright 2019 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 package main_test import ( "testing" - "sigs.k8s.io/kustomize/internal/plugintest" - "sigs.k8s.io/kustomize/k8sdeps/kv/plugin" "sigs.k8s.io/kustomize/pkg/kusttest" + "sigs.k8s.io/kustomize/plugin" ) func TestSomeServiceGeneratorPlugin(t *testing.T) { - tc := plugintest_test.NewPluginTestEnv(t).Set() + tc := plugin.NewPluginTestEnv(t).Set() defer tc.Reset() tc.BuildGoPlugin( "someteam.example.com", "v1", "SomeServiceGenerator") - th := kusttest_test.NewKustTestHarnessWithPluginConfig( - t, "/app", plugin.ActivePluginConfig()) + th := kusttest_test.NewKustTestPluginHarness(t, "/app") m := th.LoadAndRunGenerator(` apiVersion: someteam.example.com/v1 diff --git a/plugin/someteam.example.com/v1/StringPrefixer.go b/plugin/someteam.example.com/v1/StringPrefixer.go index db8049b4e..5cd3adc5b 100644 --- a/plugin/someteam.example.com/v1/StringPrefixer.go +++ b/plugin/someteam.example.com/v1/StringPrefixer.go @@ -1,20 +1,7 @@ // +build plugin -/* -Copyright 2019 The Kubernetes Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ +// Copyright 2019 The Kubernetes Authors. +// SPDX-License-Identifier: Apache-2.0 package main @@ -43,7 +30,7 @@ func (p *plugin) Config( func (p *plugin) Transform(m resmap.ResMap) error { tr, err := transformers.NewNamePrefixSuffixTransformer( - p.Metadata.Name + "-", "", + p.Metadata.Name+"-", "", config.MakeDefaultConfig().NamePrefix) if err != nil { return err