Skip to content

Commit

Permalink
proposal v2.1
Browse files Browse the repository at this point in the history
  • Loading branch information
aabouzaid committed Oct 22, 2022
1 parent 05a752f commit e7c2348
Show file tree
Hide file tree
Showing 2 changed files with 76 additions and 14 deletions.
6 changes: 5 additions & 1 deletion api/internal/plugins/loader/loader_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -87,8 +87,12 @@ func TestLoaderWithWorkingDir(t *testing.T) {
c := types.EnabledPluginConfig(types.BploLoadFromFileSys)
pLdr := NewLoader(c, rmF, fsys)
npLdr := pLdr.LoaderWithWorkingDir("/tmp/dummy")
require.Equal(t,
"",
pLdr.Config().FnpLoadingOptions.WorkingDir,
"the plugin working dir should not change")
require.Equal(t,
"/tmp/dummy",
npLdr.Config().FnpLoadingOptions.WorkingDir,
"plugin working dir is not set correctly")
"the plugin working dir is not updated")
}
84 changes: 71 additions & 13 deletions api/krusty/fnplugin_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -41,13 +41,19 @@ spec:
EOF
`

const krmEchoDotSh = `#!/bin/bash
resourceList=$(cat)
echo "$resourceList"
const krmTransformerDotSh = `#!/bin/bash
cat << EOF
apiVersion: v1
kind: Secret
metadata:
name: dummyTransformed
stringData:
foo: bar
type: Opaque
EOF
`

func TestFnExecGenerator(t *testing.T) {
func TestFnExecGeneratorInBaseOnly(t *testing.T) {
fSys := filesys.MakeFsOnDisk()

th := kusttest_test.MakeHarnessWithFs(t, fSys)
Expand Down Expand Up @@ -93,7 +99,6 @@ spec:
`)

m := th.Run(tmpDir.String(), o)
assert.NoError(t, err)
yml, err := m.AsYaml()
assert.NoError(t, err)
assert.Equal(t, `apiVersion: v1
Expand Down Expand Up @@ -132,7 +137,7 @@ spec:
assert.NoError(t, fSys.RemoveAll(tmpDir.String()))
}

func TestFnExecGeneratorInOverlay(t *testing.T) {
func TestFnExecGeneratorInBaseWithOverlay(t *testing.T) {
fSys := filesys.MakeFsOnDisk()

th := kusttest_test.MakeHarnessWithFs(t, fSys)
Expand Down Expand Up @@ -223,7 +228,7 @@ spec:
assert.NoError(t, fSys.RemoveAll(tmpDir.String()))
}

func TestFnExecTransformer(t *testing.T) {
func TestFnExecTransformerInBaseOnly(t *testing.T) {
fSys := filesys.MakeFsOnDisk()

th := kusttest_test.MakeHarnessWithFs(t, fSys)
Expand All @@ -250,7 +255,7 @@ type: Opaque
stringData:
foo: bar
`)
th.WriteF(filepath.Join(base, "krmEcho.sh"), krmEchoDotSh)
th.WriteF(filepath.Join(base, "krmEcho.sh"), krmTransformerDotSh)

assert.NoError(t, os.Chmod(filepath.Join(base, "krmEcho.sh"), 0777))
th.WriteF(filepath.Join(base, "krm-echo.yaml"), `
Expand All @@ -265,13 +270,67 @@ metadata:
`)

m := th.Run(base, o)
assert.NoError(t, err)
yml, err := m.AsYaml()
assert.NoError(t, err)
assert.Equal(t, `apiVersion: v1
kind: Secret
metadata:
name: dummyTransformed
stringData:
foo: bar
type: Opaque
`, string(yml))
assert.NoError(t, fSys.RemoveAll(tmpDir.String()))
}

func TestFnExecTransformerInBaseWithOverlay(t *testing.T) {
fSys := filesys.MakeFsOnDisk()

th := kusttest_test.MakeHarnessWithFs(t, fSys)
o := th.MakeOptionsPluginsEnabled()
o.PluginConfig.FnpLoadingOptions.EnableExec = true

tmpDir, err := filesys.NewTmpConfirmedDir()
assert.NoError(t, err)
base := filepath.Join(tmpDir.String(), "base")
assert.NoError(t, fSys.Mkdir(base))
th.WriteK(base, `
resources:
- secret.yaml
transformers:
- krm-echo.yaml
`)
th.WriteF(filepath.Join(base, "secret.yaml"),
`
apiVersion: v1
kind: Secret
metadata:
name: dummy
type: Opaque
stringData:
foo: bar
`)
th.WriteF(filepath.Join(base, "krmEcho.sh"), krmTransformerDotSh)

assert.NoError(t, os.Chmod(filepath.Join(base, "krmEcho.sh"), 0777))
th.WriteF(filepath.Join(base, "krm-echo.yaml"), `
apiVersion: examples.config.kubernetes.io/v1beta1
kind: MyPlugin
metadata:
name: notImportantHere
annotations:
config.kubernetes.io/function: |
exec:
path: ./krmEcho.sh
`)

m := th.Run(base, o)
yml, err := m.AsYaml()
assert.NoError(t, err)
assert.Equal(t, `apiVersion: v1
kind: Secret
metadata:
name: dummyTransformed
stringData:
foo: bar
type: Opaque
Expand Down Expand Up @@ -312,7 +371,7 @@ type: Opaque
stringData:
foo: bar
`)
th.WriteF(filepath.Join(prod, "krmEcho.sh"), krmEchoDotSh)
th.WriteF(filepath.Join(prod, "krmEcho.sh"), krmTransformerDotSh)

assert.NoError(t, os.Chmod(filepath.Join(prod, "krmEcho.sh"), 0777))
th.WriteF(filepath.Join(prod, "krm-echo.yaml"), `
Expand All @@ -327,13 +386,12 @@ metadata:
`)

m := th.Run(prod, o)
assert.NoError(t, err)
yml, err := m.AsYaml()
assert.NoError(t, err)
assert.Equal(t, `apiVersion: v1
kind: Secret
metadata:
name: dummy
name: dummyTransformed
stringData:
foo: bar
type: Opaque
Expand Down

0 comments on commit e7c2348

Please sign in to comment.