...
1
2
3
4 package loader_test
5
6 import (
7 "testing"
8
9 "github.com/stretchr/testify/require"
10 "sigs.k8s.io/kustomize/api/internal/loader"
11 . "sigs.k8s.io/kustomize/api/internal/plugins/loader"
12 "sigs.k8s.io/kustomize/api/provider"
13 "sigs.k8s.io/kustomize/api/resmap"
14 kusttest_test "sigs.k8s.io/kustomize/api/testutils/kusttest"
15 valtest_test "sigs.k8s.io/kustomize/api/testutils/valtest"
16 "sigs.k8s.io/kustomize/api/types"
17 "sigs.k8s.io/kustomize/kyaml/filesys"
18 )
19
20 const (
21
22 secretGenerator = `
23 apiVersion: builtin
24 kind: SecretGenerator
25 metadata:
26 name: secretGenerator
27 name: mySecret
28 behavior: merge
29 envFiles:
30 - a.env
31 - b.env
32 valueFiles:
33 - longsecret.txt
34 literals:
35 - FRUIT=apple
36 - VEGETABLE=carrot
37 `
38 someServiceGenerator = `
39 apiVersion: someteam.example.com/v1
40 kind: SomeServiceGenerator
41 metadata:
42 name: myServiceGenerator
43 service: my-service
44 port: "12345"
45 `
46 )
47
48 func TestLoader(t *testing.T) {
49 th := kusttest_test.MakeEnhancedHarness(t).
50 BuildGoPlugin("builtin", "", "SecretGenerator").
51 BuildGoPlugin("someteam.example.com", "v1", "SomeServiceGenerator")
52 defer th.Reset()
53 p := provider.NewDefaultDepProvider()
54 rmF := resmap.NewFactory(p.GetResourceFactory())
55 fsys := filesys.MakeFsInMemory()
56 fLdr, err := loader.NewLoader(
57 loader.RestrictionRootOnly,
58 filesys.Separator, fsys)
59 if err != nil {
60 t.Fatal(err)
61 }
62 generatorConfigs, err := rmF.NewResMapFromBytes([]byte(
63 someServiceGenerator + "---\n" + secretGenerator))
64 if err != nil {
65 t.Fatal(err)
66 }
67 for _, behavior := range []types.BuiltinPluginLoadingOptions{
68 } {
70 c := types.EnabledPluginConfig(behavior)
71 pLdr := NewLoader(c, rmF, fsys)
72 if pLdr == nil {
73 t.Fatal("expect non-nil loader")
74 }
75 _, err = pLdr.LoadGenerators(
76 fLdr, valtest_test.MakeFakeValidator(), generatorConfigs)
77 if err != nil {
78 t.Fatal(err)
79 }
80 }
81 }
82
83 func TestLoaderWithWorkingDir(t *testing.T) {
84 p := provider.NewDefaultDepProvider()
85 rmF := resmap.NewFactory(p.GetResourceFactory())
86 fsys := filesys.MakeFsInMemory()
87 c := types.EnabledPluginConfig(types.BploLoadFromFileSys)
88 pLdr := NewLoader(c, rmF, fsys)
89 npLdr := pLdr.LoaderWithWorkingDir("/tmp/dummy")
90 require.Equal(t,
91 "",
92 pLdr.Config().FnpLoadingOptions.WorkingDir,
93 "the plugin working dir should not change")
94 require.Equal(t,
95 "/tmp/dummy",
96 npLdr.Config().FnpLoadingOptions.WorkingDir,
97 "the plugin working dir is not updated")
98 }
99
View as plain text