mirror of
https://github.com/kubernetes-sigs/kustomize.git
synced 2026-06-10 16:42:51 +00:00
Simplify some of the plugin testing code.
This commit is contained in:
@@ -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 {
|
||||||
|
|||||||
@@ -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")
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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")
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
@@ -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:
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -37,4 +37,3 @@ func (p *ImageTagTransformerPlugin) Transform(m resmap.ResMap) error {
|
|||||||
}
|
}
|
||||||
return t.Transform(m)
|
return t.Transform(m)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user