# HG changeset patch # User Steeve Chailloux <steeve.chailloux@proton.ch> # Date 1681376978 -7200 # Thu Apr 13 11:09:38 2023 +0200 # Node ID c3982c80170b9e1bb8c7f8e722d91b7c87b47a6a # Parent 29020c1f34358cbf5e655258b6ae61dda6411721 # EXP-Topic namespace build namespace flag to force helm charts namespace Signed-off-by: Steeve Chailloux <steeve.chailloux@proton.ch> diff --git a/cmd/build.go b/cmd/build.go --- a/cmd/build.go +++ b/cmd/build.go @@ -12,9 +12,10 @@ type BuildCmd struct { Args struct { - DryRun bool `short:"d" long:"dry-run" description:"if set only prints commands but do not run them"` - Keep bool `short:"k" long:"keep" description:"Keep the temporary files"` - Output string `short:"o" long:"output" description:"output directory, use \"stdout\" to print to stdout"` + DryRun bool `short:"d" long:"dry-run" description:"if set only prints commands but do not run them"` + Keep bool `short:"k" long:"keep" description:"Keep the temporary files"` + Output string `short:"o" long:"output" description:"output directory, use \"stdout\" to print to stdout"` + Namespace string `short:"n" long:"namespace" description:"force helm namespace flag for all helm charts"` } PositionalArgs struct { DirName string `required:"yes" positional-arg-name:"directory"` @@ -32,7 +33,7 @@ func (cmd *BuildCmd) Execute([]string) error { cmd.log.Debug().Str("directory", cmd.PositionalArgs.DirName).Msg("starting beaver") - config := runner.NewCmdConfig(cmd.log, ".", cmd.PositionalArgs.DirName, cmd.Args.DryRun, cmd.Args.Output) + config := runner.NewCmdConfig(cmd.log, ".", cmd.PositionalArgs.DirName, cmd.Args.DryRun, cmd.Args.Output, cmd.Args.Namespace) path, err := os.Getwd() if err != nil { diff --git a/runner/cmd_test.go b/runner/cmd_test.go --- a/runner/cmd_test.go +++ b/runner/cmd_test.go @@ -35,7 +35,7 @@ testPath := filepath.Join("environments", "ns1") absConfigDir, err := filepath.Abs(fixtures) require.NoError(t, err) - c := runner.NewCmdConfig(tl.Logger(), absConfigDir, testPath, false, "") + c := runner.NewCmdConfig(tl.Logger(), absConfigDir, testPath, false, "", "") tmpDir, err := os.MkdirTemp(os.TempDir(), "beaver-") require.NoError(t, err) defer func() { diff --git a/runner/config.go b/runner/config.go --- a/runner/config.go +++ b/runner/config.go @@ -107,7 +107,7 @@ return nil, fmt.Errorf("no beaver file found in %s", configDir) } -func NewCmdConfig(logger zerolog.Logger, rootDir, configDir string, dryRun bool, output string) *CmdConfig { +func NewCmdConfig(logger zerolog.Logger, rootDir, configDir string, dryRun bool, output string, namespace string) *CmdConfig { cmdConfig := &CmdConfig{} cmdConfig.DryRun = dryRun cmdConfig.Output = output @@ -116,7 +116,7 @@ cmdConfig.Spec.Charts = make(map[string]CmdChart) cmdConfig.Spec.Creates = make(map[CmdCreateKey]CmdCreate) cmdConfig.Spec.Shas = []*CmdSha{} - cmdConfig.Namespace = "" + cmdConfig.Namespace = namespace cmdConfig.Logger = logger return cmdConfig } @@ -159,7 +159,9 @@ } for _, config := range configLayers { - c.Namespace = config.NameSpace + if c.Namespace == "" { + c.Namespace = config.NameSpace + } c.MergeVariables(config) for k, chart := range config.Charts { diff --git a/runner/config_test.go b/runner/config_test.go --- a/runner/config_test.go +++ b/runner/config_test.go @@ -160,7 +160,7 @@ testNS := "environments/ns1" absConfigDir, err := filepath.Abs(fixtures) require.NoError(t, err) - c := runner.NewCmdConfig(tl.Logger(), absConfigDir, testNS, false, "") + c := runner.NewCmdConfig(tl.Logger(), absConfigDir, testNS, false, "", "") tmpDir, err := os.MkdirTemp(os.TempDir(), "beaver-") require.NoError(t, err) defer func() { @@ -190,7 +190,7 @@ testNS := "environments/ns1" absConfigDir, err := filepath.Abs(fixtures) require.NoError(t, err) - c := runner.NewCmdConfig(tl.Logger(), absConfigDir, testNS, false, "") + c := runner.NewCmdConfig(tl.Logger(), absConfigDir, testNS, false, "", "") tmpDir, err := os.MkdirTemp(os.TempDir(), "beaver-") require.NoError(t, err) defer func() { @@ -206,7 +206,7 @@ testNS := "environments/ns1" absConfigDir, err := filepath.Abs(fixtures) require.NoError(t, err) - c := runner.NewCmdConfig(tl.Logger(), absConfigDir, testNS, false, "") + c := runner.NewCmdConfig(tl.Logger(), absConfigDir, testNS, false, "", "") tmpDir, err := os.MkdirTemp(os.TempDir(), "beaver-") require.NoError(t, err) defer func() { @@ -250,7 +250,7 @@ tl := testutils.NewTestLogger(t) absConfigDir, err := filepath.Abs(shaFixtures) require.NoError(t, err) - c := runner.NewCmdConfig(tl.Logger(), absConfigDir, "base", false, "") + c := runner.NewCmdConfig(tl.Logger(), absConfigDir, "base", false, "", "") tmpDir, err := os.MkdirTemp(os.TempDir(), "beaver-") require.NoError(t, err) defer func() {