From f3a958bbf781f9093d0ed0bea60f8ccc9404c480 Mon Sep 17 00:00:00 2001 From: monopole Date: Fri, 5 Mar 2021 17:37:57 -0800 Subject: [PATCH] Extract flags that enable alpha function features. --- kustomize/commands/build/build.go | 9 +++------ kustomize/commands/build/flagsforfunctions.go | 18 +++++++++++------- kustomize/commands/commands.go | 13 +++++++++++-- 3 files changed, 25 insertions(+), 15 deletions(-) diff --git a/kustomize/commands/build/build.go b/kustomize/commands/build/build.go index 65b9dc20d..0fa5177fd 100644 --- a/kustomize/commands/build/build.go +++ b/kustomize/commands/build/build.go @@ -98,20 +98,18 @@ func NewCmdBuild( return err }, } - AddFlagOutputPath(cmd.Flags()) - AddFunctionFlags(cmd.Flags()) + AddFunctionBasicsFlags(cmd.Flags()) AddFlagLoadRestrictor(cmd.Flags()) AddFlagEnablePlugins(cmd.Flags()) AddFlagReorderOutput(cmd.Flags()) AddFlagEnableManagedbyLabel(cmd.Flags()) AddFlagAllowResourceIdChanges(cmd.Flags()) - return cmd } // Validate validates build command args and flags. -func Validate(args []string) (err error) { +func Validate(args []string) error { if len(args) > 1 { return fmt.Errorf( "specify one path to " + @@ -122,8 +120,7 @@ func Validate(args []string) (err error) { } else { theArgs.kustomizationPath = args[0] } - err = validateFlagLoadRestrictor() - if err != nil { + if err := validateFlagLoadRestrictor(); err != nil { return err } return validateFlagReorderOutput() diff --git a/kustomize/commands/build/flagsforfunctions.go b/kustomize/commands/build/flagsforfunctions.go index 9b0f9e06f..2ece5d392 100644 --- a/kustomize/commands/build/flagsforfunctions.go +++ b/kustomize/commands/build/flagsforfunctions.go @@ -7,13 +7,7 @@ import ( "github.com/spf13/pflag" ) -func AddFunctionFlags(set *pflag.FlagSet) { - set.BoolVar( - &theFlags.fnOptions.EnableExec, "enable-exec", false, /*do not change!*/ - "enable support for exec functions -- note: exec functions run arbitrary code -- do not use for untrusted configs!!! (Alpha)") - set.BoolVar( - &theFlags.fnOptions.EnableStar, "enable-star", false, - "enable support for starlark functions. (Alpha)") +func AddFunctionBasicsFlags(set *pflag.FlagSet) { set.BoolVar( &theFlags.fnOptions.Network, "network", false, "enable network access for functions that declare it") @@ -27,3 +21,13 @@ func AddFunctionFlags(set *pflag.FlagSet) { &theFlags.fnOptions.Env, "env", "e", []string{}, "a list of environment variables to be used by functions") } + +func AddFunctionAlphaEnablementFlags(set *pflag.FlagSet) { + set.BoolVar( + &theFlags.fnOptions.EnableExec, "enable-exec", false, + "enable support for exec functions (raw executables); "+ + "do not use for untrusted configs! (Alpha)") + set.BoolVar( + &theFlags.fnOptions.EnableStar, "enable-star", false, + "enable support for starlark functions. (Alpha)") +} diff --git a/kustomize/commands/commands.go b/kustomize/commands/commands.go index 6f470cd53..c4082ff9b 100644 --- a/kustomize/commands/commands.go +++ b/kustomize/commands/commands.go @@ -6,6 +6,7 @@ package commands import ( "flag" + "io" "os" "github.com/spf13/cobra" @@ -21,6 +22,14 @@ import ( "sigs.k8s.io/kustomize/kustomize/v4/commands/version" ) +func makeBuildCommand(fSys filesys.FileSystem, w io.Writer) *cobra.Command { + cmd := build.NewCmdBuild( + fSys, build.MakeHelp(konfig.ProgramName, "build"), w) + // Add build flags that don't appear in kubectl. + build.AddFunctionAlphaEnablementFlags(cmd.Flags()) + return cmd +} + // NewDefaultCommand returns the default (aka root) command for kustomize command. func NewDefaultCommand() *cobra.Command { fSys := filesys.MakeFsOnDisk() @@ -34,11 +43,11 @@ Manages declarative configuration of Kubernetes. See https://sigs.k8s.io/kustomize `, } + pvd := provider.NewDefaultDepProvider() c.AddCommand( completion.NewCommand(), - build.NewCmdBuild( - fSys, build.MakeHelp(konfig.ProgramName, "build"), stdOut), + makeBuildCommand(fSys, stdOut), edit.NewCmdEdit( fSys, pvd.GetFieldValidator(), pvd.GetKunstructuredFactory()), create.NewCmdCreate(fSys, pvd.GetKunstructuredFactory()),