mirror of
https://github.com/kubernetes-sigs/kustomize.git
synced 2026-06-11 17:12:51 +00:00
exec function working dir is the kustomization that referenced it (#4125)
* exec function working dir is the kustomization that referenced it * suggested changes * more code review * use a field instead of an annotation * more code review
This commit is contained in:
@@ -6,6 +6,7 @@ package commands
|
||||
import (
|
||||
"fmt"
|
||||
"io"
|
||||
"os"
|
||||
"strings"
|
||||
|
||||
"github.com/spf13/cobra"
|
||||
@@ -73,6 +74,7 @@ func GetRunFnRunner(name string) *RunFnRunner {
|
||||
"a list of environment variables to be used by functions")
|
||||
r.Command.Flags().BoolVar(
|
||||
&r.AsCurrentUser, "as-current-user", false, "use the uid and gid of the command executor to run the function in the container")
|
||||
|
||||
return r
|
||||
}
|
||||
|
||||
@@ -302,6 +304,11 @@ func (r *RunFnRunner) preRunE(c *cobra.Command, args []string) error {
|
||||
// parse mounts to set storageMounts
|
||||
storageMounts := toStorageMounts(r.Mounts)
|
||||
|
||||
wd, err := os.Getwd()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
r.RunFns = runfn.RunFns{
|
||||
FunctionPaths: r.FnPaths,
|
||||
GlobalScope: r.GlobalScope,
|
||||
@@ -317,6 +324,7 @@ func (r *RunFnRunner) preRunE(c *cobra.Command, args []string) error {
|
||||
LogSteps: r.LogSteps,
|
||||
Env: r.Env,
|
||||
AsCurrentUser: r.AsCurrentUser,
|
||||
WorkingDir: wd,
|
||||
}
|
||||
|
||||
// don't consider args for the function
|
||||
|
||||
@@ -11,13 +11,14 @@ import (
|
||||
|
||||
"github.com/spf13/cobra"
|
||||
"github.com/stretchr/testify/assert"
|
||||
|
||||
"sigs.k8s.io/kustomize/kyaml/runfn"
|
||||
)
|
||||
|
||||
// TestRunFnCommand_preRunE verifies that preRunE correctly parses the commandline
|
||||
// flags and arguments into the RunFns structure to be executed.
|
||||
func TestRunFnCommand_preRunE(t *testing.T) {
|
||||
wd, err := os.Getwd()
|
||||
assert.NoError(t, err)
|
||||
tests := []struct {
|
||||
name string
|
||||
args []string
|
||||
@@ -201,6 +202,7 @@ apiVersion: v1
|
||||
Path: "dir",
|
||||
EnableStarlark: true,
|
||||
Env: []string{},
|
||||
WorkingDir: wd,
|
||||
},
|
||||
},
|
||||
{
|
||||
@@ -254,6 +256,7 @@ apiVersion: v1
|
||||
Path: "dir",
|
||||
ResultsDir: "foo/",
|
||||
Env: []string{},
|
||||
WorkingDir: wd,
|
||||
},
|
||||
expected: `
|
||||
metadata:
|
||||
@@ -286,9 +289,10 @@ apiVersion: v1
|
||||
args: []string{"run", "dir", "--log-steps"},
|
||||
path: "dir",
|
||||
expectedStruct: &runfn.RunFns{
|
||||
Path: "dir",
|
||||
LogSteps: true,
|
||||
Env: []string{},
|
||||
Path: "dir",
|
||||
LogSteps: true,
|
||||
Env: []string{},
|
||||
WorkingDir: wd,
|
||||
},
|
||||
},
|
||||
{
|
||||
@@ -296,8 +300,9 @@ apiVersion: v1
|
||||
args: []string{"run", "dir", "--env", "FOO=BAR", "-e", "BAR"},
|
||||
path: "dir",
|
||||
expectedStruct: &runfn.RunFns{
|
||||
Path: "dir",
|
||||
Env: []string{"FOO=BAR", "BAR"},
|
||||
Path: "dir",
|
||||
Env: []string{"FOO=BAR", "BAR"},
|
||||
WorkingDir: wd,
|
||||
},
|
||||
},
|
||||
{
|
||||
@@ -308,6 +313,7 @@ apiVersion: v1
|
||||
Path: "dir",
|
||||
AsCurrentUser: true,
|
||||
Env: []string{},
|
||||
WorkingDir: wd,
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user