Simplify some of the plugin testing code.

This commit is contained in:
Jeffrey Regan
2019-05-17 14:51:00 -07:00
parent f9c631e9ee
commit 3a85fcd365
23 changed files with 110 additions and 362 deletions

View File

@@ -1,18 +1,5 @@
/* // Copyright 2019 The Kubernetes Authors.
Copyright 2018 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 kusttest_test package kusttest_test
@@ -49,6 +36,11 @@ func NewKustTestHarness(t *testing.T, path string) *KustTestHarness {
t, path, plugin.DefaultPluginConfig()) t, path, plugin.DefaultPluginConfig())
} }
func NewKustTestPluginHarness(t *testing.T, path string) *KustTestHarness {
return NewKustTestHarnessWithPluginConfig(
t, path, plugin.ActivePluginConfig())
}
func NewKustTestHarnessWithPluginConfig( func NewKustTestHarnessWithPluginConfig(
t *testing.T, path string, t *testing.T, path string,
pc *types.PluginConfig) *KustTestHarness { pc *types.PluginConfig) *KustTestHarness {

View File

@@ -20,9 +20,7 @@ import (
"fmt" "fmt"
"os" "os"
"os/exec" "os/exec"
"path"
"path/filepath" "path/filepath"
"runtime"
"time" "time"
"sigs.k8s.io/kustomize/k8sdeps/kv/plugin" "sigs.k8s.io/kustomize/k8sdeps/kv/plugin"
@@ -51,15 +49,7 @@ func DefaultSrcRoot() (string, error) {
os.Getenv("GOPATH"), "src", os.Getenv("GOPATH"), "src",
pgmconfig.DomainName, pgmconfig.DomainName,
pgmconfig.ProgramName, pgmconfig.PluginRoot) 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) { if FileExists(root) {
return root, nil return root, nil
} }
@@ -93,6 +83,11 @@ func (b *Compiler) ObjRoot() string {
return b.objRoot return b.objRoot
} }
// SrcRoot is where to find src.
func (b *Compiler) SrcRoot() string {
return b.srcRoot
}
func goBin() string { func goBin() string {
return filepath.Join(os.Getenv("GOROOT"), "bin", "go") return filepath.Join(os.Getenv("GOROOT"), "bin", "go")
} }

View File

@@ -1,18 +1,5 @@
/* // 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 plugins_test package plugins_test
@@ -20,12 +7,12 @@ import (
"testing" "testing"
"sigs.k8s.io/kustomize/internal/loadertest" "sigs.k8s.io/kustomize/internal/loadertest"
"sigs.k8s.io/kustomize/internal/plugintest"
"sigs.k8s.io/kustomize/k8sdeps/kunstruct" "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/plugins"
"sigs.k8s.io/kustomize/pkg/resmap" "sigs.k8s.io/kustomize/pkg/resmap"
"sigs.k8s.io/kustomize/pkg/resource" "sigs.k8s.io/kustomize/pkg/resource"
"sigs.k8s.io/kustomize/plugin"
) )
const ( const (
@@ -56,7 +43,7 @@ port: "12345"
) )
func TestLoader(t *testing.T) { func TestLoader(t *testing.T) {
tc := plugintest_test.NewPluginTestEnv(t).Set() tc := plugin.NewPluginTestEnv(t).Set()
defer tc.Reset() defer tc.Reset()
tc.BuildGoPlugin( tc.BuildGoPlugin(
@@ -67,7 +54,7 @@ func TestLoader(t *testing.T) {
rmF := resmap.NewFactory(resource.NewFactory( rmF := resmap.NewFactory(resource.NewFactory(
kunstruct.NewKunstructuredFactoryImpl())) kunstruct.NewKunstructuredFactoryImpl()))
l := plugins.NewLoader(plugin.ActivePluginConfig(), rmF) l := plugins.NewLoader(kvplugin.ActivePluginConfig(), rmF)
if l == nil { if l == nil {
t.Fatal("expect non-nil loader") t.Fatal("expect non-nil loader")
} }

View File

@@ -1,20 +1,7 @@
// +build notravis // +build notravis
/* // 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.
*/
// Disabled on travis, because don't want to install helm on travis. // Disabled on travis, because don't want to install helm on travis.
@@ -23,9 +10,8 @@ package target_test
import ( import (
"testing" "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/kusttest"
"sigs.k8s.io/kustomize/plugin"
) )
// This is an example of using a helm chart as a base, // 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 // TODO: Download and inflate the chart, and check that
// in for the test. // in for the test.
func TestChartInflatorPlugin(t *testing.T) { func TestChartInflatorPlugin(t *testing.T) {
tc := plugintest_test.NewPluginTestEnv(t).Set() tc := plugin.NewPluginTestEnv(t).Set()
defer tc.Reset() defer tc.Reset()
tc.BuildExecPlugin( tc.BuildExecPlugin(
"someteam.example.com", "v1", "ChartInflator") "someteam.example.com", "v1", "ChartInflator")
th := kusttest_test.NewKustTestHarnessWithPluginConfig( th := kusttest_test.NewKustTestPluginHarness(t, "/app")
t, "/app", plugin.ActivePluginConfig())
th.WriteK("/app", ` th.WriteK("/app", `
generators: generators:
- chartInflator.yaml - chartInflator.yaml

View File

@@ -1,18 +1,5 @@
/* // 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 target_test package target_test
@@ -22,9 +9,8 @@ import (
"path/filepath" "path/filepath"
"testing" "testing"
"sigs.k8s.io/kustomize/internal/plugintest"
"sigs.k8s.io/kustomize/k8sdeps/kunstruct" "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/k8sdeps/transformer"
"sigs.k8s.io/kustomize/pkg/fs" "sigs.k8s.io/kustomize/pkg/fs"
"sigs.k8s.io/kustomize/pkg/kusttest" "sigs.k8s.io/kustomize/pkg/kusttest"
@@ -34,10 +20,11 @@ import (
"sigs.k8s.io/kustomize/pkg/resource" "sigs.k8s.io/kustomize/pkg/resource"
"sigs.k8s.io/kustomize/pkg/target" "sigs.k8s.io/kustomize/pkg/target"
"sigs.k8s.io/kustomize/pkg/types" "sigs.k8s.io/kustomize/pkg/types"
"sigs.k8s.io/kustomize/plugin"
) )
func TestPluginDir(t *testing.T) { func TestPluginDir(t *testing.T) {
tc := plugintest_test.NewPluginTestEnv(t).Set() tc := plugin.NewPluginTestEnv(t).Set()
defer tc.Reset() defer tc.Reset()
tc.BuildExecPlugin( tc.BuildExecPlugin(
@@ -77,9 +64,11 @@ metadata:
} }
rf := resmap.NewFactory(resource.NewFactory( rf := resmap.NewFactory(resource.NewFactory(
kunstruct.NewKunstructuredFactoryWithGeneratorArgs( 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) tg, err := target.NewKustTarget(ldr, rf, transformer.NewFactoryImpl(), pl)
if err != nil { if err != nil {
t.Fatalf("err %v", err) t.Fatalf("err %v", err)

View File

@@ -1,27 +1,13 @@
/* // 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 target_test package target_test
import ( import (
"testing" "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/kusttest"
"sigs.k8s.io/kustomize/plugin"
) )
func writeDeployment(th *kusttest_test.KustTestHarness, path string) { func writeDeployment(th *kusttest_test.KustTestHarness, path string) {
@@ -61,7 +47,7 @@ metadata:
} }
func TestOrderedTransformers(t *testing.T) { func TestOrderedTransformers(t *testing.T) {
tc := plugintest_test.NewPluginTestEnv(t).Set() tc := plugin.NewPluginTestEnv(t).Set()
defer tc.Reset() defer tc.Reset()
tc.BuildGoPlugin( tc.BuildGoPlugin(
@@ -70,8 +56,7 @@ func TestOrderedTransformers(t *testing.T) {
tc.BuildGoPlugin( tc.BuildGoPlugin(
"someteam.example.com", "v1", "DatePrefixer") "someteam.example.com", "v1", "DatePrefixer")
th := kusttest_test.NewKustTestHarnessWithPluginConfig( th := kusttest_test.NewKustTestPluginHarness(t, "/app")
t, "/app", plugin.ActivePluginConfig())
th.WriteK("/app", ` th.WriteK("/app", `
resources: resources:
- deployment.yaml - deployment.yaml
@@ -107,14 +92,13 @@ spec:
} }
func TestSedTransformer(t *testing.T) { func TestSedTransformer(t *testing.T) {
tc := plugintest_test.NewPluginTestEnv(t).Set() tc := plugin.NewPluginTestEnv(t).Set()
defer tc.Reset() defer tc.Reset()
tc.BuildExecPlugin( tc.BuildExecPlugin(
"someteam.example.com", "v1", "SedTransformer") "someteam.example.com", "v1", "SedTransformer")
th := kusttest_test.NewKustTestHarnessWithPluginConfig( th := kusttest_test.NewKustTestPluginHarness(t, "/app")
t, "/app", plugin.ActivePluginConfig())
th.WriteK("/app", ` th.WriteK("/app", `
resources: resources:
- configmap.yaml - configmap.yaml
@@ -177,7 +161,7 @@ metadata:
} }
func TestTransformedTransformers(t *testing.T) { func TestTransformedTransformers(t *testing.T) {
tc := plugintest_test.NewPluginTestEnv(t).Set() tc := plugin.NewPluginTestEnv(t).Set()
defer tc.Reset() defer tc.Reset()
tc.BuildGoPlugin( tc.BuildGoPlugin(
@@ -186,8 +170,7 @@ func TestTransformedTransformers(t *testing.T) {
tc.BuildGoPlugin( tc.BuildGoPlugin(
"someteam.example.com", "v1", "DatePrefixer") "someteam.example.com", "v1", "DatePrefixer")
th := kusttest_test.NewKustTestHarnessWithPluginConfig( th := kusttest_test.NewKustTestPluginHarness(t, "/app/overlay")
t, "/app/overlay", plugin.ActivePluginConfig())
th.WriteK("/app/base", ` th.WriteK("/app/base", `
resources: resources:

View File

@@ -1,20 +1,7 @@
// +build plugin // +build plugin
/* // 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.
*/
//go:generate go run sigs.k8s.io/kustomize/cmd/pluginator //go:generate go run sigs.k8s.io/kustomize/cmd/pluginator
package main package main

View File

@@ -1,39 +1,23 @@
/* // Copyright 2019 The Kubernetes Authors.
Copyright 2018 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 main_test package main_test
import ( import (
"testing" "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/kusttest"
"sigs.k8s.io/kustomize/pkg/loader" "sigs.k8s.io/kustomize/plugin"
) )
func TestConfigMapGenerator(t *testing.T) { func TestConfigMapGenerator(t *testing.T) {
tc := plugintest_test.NewPluginTestEnv(t).Set() tc := plugin.NewPluginTestEnv(t).Set()
defer tc.Reset() defer tc.Reset()
tc.BuildGoPlugin( tc.BuildGoPlugin(
"builtin", "", "ConfigMapGenerator") "builtin", "", "ConfigMapGenerator")
th := kusttest_test.NewKustTestHarnessFull( th := kusttest_test.NewKustTestPluginHarness(t, "/app")
t, "/app", loader.RestrictionRootOnly, plugin.ActivePluginConfig())
th.WriteF("/app/devops.env", ` th.WriteF("/app/devops.env", `
SERVICE_PORT=32 SERVICE_PORT=32

View File

@@ -1,20 +1,7 @@
// +build plugin // +build plugin
/* // 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.
*/
//go:generate go run sigs.k8s.io/kustomize/cmd/pluginator //go:generate go run sigs.k8s.io/kustomize/cmd/pluginator
package main package main
@@ -53,4 +40,3 @@ func (p *plugin) Transform(m resmap.ResMap) error {
} }
return t.Transform(m) return t.Transform(m)
} }

View File

@@ -1,39 +1,23 @@
/* // Copyright 2019 The Kubernetes Authors.
Copyright 2018 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 main_test package main_test
import ( import (
"testing" "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/kusttest"
"sigs.k8s.io/kustomize/pkg/loader" "sigs.k8s.io/kustomize/plugin"
) )
func TestImageTagTransformer(t *testing.T) { func TestImageTagTransformer(t *testing.T) {
tc := plugintest_test.NewPluginTestEnv(t).Set() tc := plugin.NewPluginTestEnv(t).Set()
defer tc.Reset() defer tc.Reset()
tc.BuildGoPlugin( tc.BuildGoPlugin(
"builtin", "", "ImageTagTransformer") "builtin", "", "ImageTagTransformer")
th := kusttest_test.NewKustTestHarnessFull( th := kusttest_test.NewKustTestPluginHarness(t, "/app")
t, "/app", loader.RestrictionRootOnly, plugin.ActivePluginConfig())
rm := th.LoadAndRunTransformer(` rm := th.LoadAndRunTransformer(`
apiVersion: builtin apiVersion: builtin

View File

@@ -6,23 +6,18 @@ package main_test
import ( import (
"testing" "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/kusttest"
"sigs.k8s.io/kustomize/pkg/loader" "sigs.k8s.io/kustomize/plugin"
) )
func TestNameTransformer(t *testing.T) { func TestNameTransformer(t *testing.T) {
tc := plugintest_test.NewPluginTestEnv(t).Set() tc := plugin.NewPluginTestEnv(t).Set()
defer tc.Reset() defer tc.Reset()
tc.BuildGoPlugin( tc.BuildGoPlugin(
"builtin", "", "NameTransformer") "builtin", "", "NameTransformer")
th := kusttest_test.NewKustTestHarnessFull( th := kusttest_test.NewKustTestPluginHarness(t, "/app")
t, "/app", loader.RestrictionRootOnly,
plugin.ActivePluginConfig())
rm := th.LoadAndRunTransformer(` rm := th.LoadAndRunTransformer(`
apiVersion: builtin apiVersion: builtin
kind: NameTransformer kind: NameTransformer

View File

@@ -1,20 +1,7 @@
// +build plugin // +build plugin
/* // 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.
*/
//go:generate go run sigs.k8s.io/kustomize/cmd/pluginator //go:generate go run sigs.k8s.io/kustomize/cmd/pluginator
package main package main

View File

@@ -1,39 +1,23 @@
/* // Copyright 2019 The Kubernetes Authors.
Copyright 2018 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 main_test package main_test
import ( import (
"testing" "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/kusttest"
"sigs.k8s.io/kustomize/pkg/loader" "sigs.k8s.io/kustomize/plugin"
) )
func TestSecretGenerator(t *testing.T) { func TestSecretGenerator(t *testing.T) {
tc := plugintest_test.NewPluginTestEnv(t).Set() tc := plugin.NewPluginTestEnv(t).Set()
defer tc.Reset() defer tc.Reset()
tc.BuildGoPlugin( tc.BuildGoPlugin(
"builtin", "", "SecretGenerator") "builtin", "", "SecretGenerator")
th := kusttest_test.NewKustTestHarnessFull( th := kusttest_test.NewKustTestPluginHarness(t, "/app")
t, "/app", loader.RestrictionRootOnly, plugin.ActivePluginConfig())
th.WriteF("/app/a.env", ` th.WriteF("/app/a.env", `
ROUTER_PASSWORD=admin ROUTER_PASSWORD=admin

View File

@@ -37,4 +37,3 @@ func (p *ImageTagTransformerPlugin) Transform(m resmap.ResMap) error {
} }
return t.Transform(m) return t.Transform(m)
} }

View File

@@ -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"); package plugin
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
import ( import (
"io/ioutil" "io/ioutil"
@@ -62,23 +49,16 @@ func (x *PluginTestEnv) BuildGoPlugin(g, v, k string) {
func (x *PluginTestEnv) BuildExecPlugin(name ...string) { func (x *PluginTestEnv) BuildExecPlugin(name ...string) {
obj := filepath.Join( obj := filepath.Join(
append([]string{x.workDir, pgmconfig.ProgramName, pgmconfig.PluginRoot}, name...)...) append([]string{x.compiler.ObjRoot()}, name...)...)
srcRoot, err := plugins.DefaultSrcRoot()
if err != nil {
x.t.Error(err)
}
src := filepath.Join( src := filepath.Join(
append([]string{srcRoot}, name...)...) append([]string{x.compiler.SrcRoot()}, name...)...)
if err := os.MkdirAll(filepath.Dir(obj), 0755); err != nil { if err := os.MkdirAll(filepath.Dir(obj), 0755); err != nil {
x.t.Errorf("error making directory: %s", filepath.Dir(obj)) x.t.Errorf("error making directory: %s", filepath.Dir(obj))
} }
cmd := exec.Command("cp", src, obj) cmd := exec.Command("cp", src, obj)
cmd.Env = os.Environ() cmd.Env = os.Environ()
if err := cmd.Run(); err != nil { 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)
} }
} }

View File

@@ -1,20 +1,7 @@
// +build notravis // +build notravis
/* // 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.
*/
// Disabled on travis, because don't want to install helm on travis. // Disabled on travis, because don't want to install helm on travis.
@@ -23,9 +10,8 @@ package main_test
import ( import (
"testing" "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/kusttest"
"sigs.k8s.io/kustomize/plugin"
) )
// This test requires having the helm binary on the PATH. // This test requires having the helm binary on the PATH.
@@ -33,14 +19,13 @@ import (
// TODO: Download and inflate the chart, and check that // TODO: Download and inflate the chart, and check that
// in for the test. // in for the test.
func TestChartInflator(t *testing.T) { func TestChartInflator(t *testing.T) {
tc := plugintest_test.NewPluginTestEnv(t).Set() tc := plugin.NewPluginTestEnv(t).Set()
defer tc.Reset() defer tc.Reset()
tc.BuildExecPlugin( tc.BuildExecPlugin(
"someteam.example.com", "v1", "ChartInflator") "someteam.example.com", "v1", "ChartInflator")
th := kusttest_test.NewKustTestHarnessWithPluginConfig( th := kusttest_test.NewKustTestPluginHarness(t, "/app")
t, "/app", plugin.ActivePluginConfig())
m := th.LoadAndRunGenerator(` m := th.LoadAndRunGenerator(`
apiVersion: someteam.example.com/v1 apiVersion: someteam.example.com/v1

View File

@@ -1,34 +1,21 @@
/* // 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 main_test package main_test
import ( import (
"testing" "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/kusttest"
"sigs.k8s.io/kustomize/pkg/loader" "sigs.k8s.io/kustomize/plugin"
) )
func TestSedTransformer(t *testing.T) { func TestSedTransformer(t *testing.T) {
tc := plugintest_test.NewPluginTestEnv(t).Set() tc := plugin.NewPluginTestEnv(t).Set()
defer tc.Reset() defer tc.Reset()
tc.BuildExecPlugin("someteam.example.com", "v1", "SedTransformer") tc.BuildExecPlugin("someteam.example.com", "v1", "SedTransformer")
th := kusttest_test.NewKustTestHarnessFull( th := kusttest_test.NewKustTestPluginHarness(t, "/app")
t, "/app", loader.RestrictionRootOnly, plugin.ActivePluginConfig())
th.WriteF("/app/sed-input.txt", ` th.WriteF("/app/sed-input.txt", `
s/$FRUIT/orange/g s/$FRUIT/orange/g

View File

@@ -1,20 +1,7 @@
// +build plugin // +build plugin
/* // 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 main package main

View File

@@ -1,38 +1,23 @@
/* // 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 main_test package main_test
import ( import (
"testing" "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/kusttest"
"sigs.k8s.io/kustomize/plugin"
) )
func TestSomeServiceGeneratorPlugin(t *testing.T) { func TestSomeServiceGeneratorPlugin(t *testing.T) {
tc := plugintest_test.NewPluginTestEnv(t).Set() tc := plugin.NewPluginTestEnv(t).Set()
defer tc.Reset() defer tc.Reset()
tc.BuildGoPlugin( tc.BuildGoPlugin(
"someteam.example.com", "v1", "SomeServiceGenerator") "someteam.example.com", "v1", "SomeServiceGenerator")
th := kusttest_test.NewKustTestHarnessWithPluginConfig( th := kusttest_test.NewKustTestPluginHarness(t, "/app")
t, "/app", plugin.ActivePluginConfig())
m := th.LoadAndRunGenerator(` m := th.LoadAndRunGenerator(`
apiVersion: someteam.example.com/v1 apiVersion: someteam.example.com/v1

View File

@@ -1,20 +1,7 @@
// +build plugin // +build plugin
/* // 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 main package main