From c7c68c222f5e8e73a806007a38eef0e7905cec3f Mon Sep 17 00:00:00 2001 From: Santhosh Date: Mon, 24 Oct 2022 16:43:23 +0530 Subject: [PATCH] set configScanDir as package scoped var (#264) set config.Install.env variables in environment adding env to config to use across all stages switch to config.Scan to read config --- internal/agent/install.go | 13 +++---------- internal/agent/reset.go | 10 +++++++++- internal/agent/upgrade.go | 10 +++++++++- 3 files changed, 21 insertions(+), 12 deletions(-) diff --git a/internal/agent/install.go b/internal/agent/install.go index d9d4d43..ca770e6 100644 --- a/internal/agent/install.go +++ b/internal/agent/install.go @@ -7,7 +7,6 @@ import ( "io/ioutil" "os" "os/exec" - "strings" "syscall" "time" @@ -227,14 +226,8 @@ func RunInstall(options map[string]string) error { c.Install.Reboot = true } - for _, e := range c.Install.Env { - pair := strings.SplitN(e, "=", 2) - if len(pair) >= 2 { - os.Setenv(pair[0], pair[1]) - } - } - - envs := os.Environ() + env := append(c.Install.Env, c.Env...) + utils.SetEnv(env) err := ioutil.WriteFile(f.Name(), []byte(cloudInit), os.ModePerm) if err != nil { @@ -246,7 +239,7 @@ func RunInstall(options map[string]string) error { args = append(args, "-c", f.Name(), device) cmd := exec.Command("elemental", args...) - cmd.Env = envs + cmd.Env = os.Environ() cmd.Stdout = os.Stdout cmd.Stdin = os.Stdin cmd.Stderr = os.Stderr diff --git a/internal/agent/reset.go b/internal/agent/reset.go index 8c866f2..c689045 100644 --- a/internal/agent/reset.go +++ b/internal/agent/reset.go @@ -10,6 +10,7 @@ import ( "github.com/kairos-io/kairos/internal/bus" "github.com/kairos-io/kairos/internal/cmd" + "github.com/kairos-io/kairos/pkg/config" "github.com/kairos-io/kairos/pkg/machine" "github.com/kairos-io/kairos/pkg/utils" sdk "github.com/kairos-io/kairos/sdk/bus" @@ -18,7 +19,7 @@ import ( "github.com/pterm/pterm" ) -func Reset() error { +func Reset(dir ...string) error { bus.Manager.Initialize() options := map[string]string{} @@ -70,6 +71,13 @@ func Reset() error { args = append(args, "--reset-persistent") } + c, err := config.Scan(config.Directories(dir...)) + if err != nil { + return err + } + + utils.SetEnv(c.Env) + cmd := exec.Command("elemental", args...) cmd.Env = os.Environ() cmd.Stdout = os.Stdout diff --git a/internal/agent/upgrade.go b/internal/agent/upgrade.go index 2b1bff0..9f7acba 100644 --- a/internal/agent/upgrade.go +++ b/internal/agent/upgrade.go @@ -8,6 +8,7 @@ import ( "os/exec" "strings" + "github.com/kairos-io/kairos/pkg/config" events "github.com/kairos-io/kairos/sdk/bus" "github.com/kairos-io/kairos/internal/bus" @@ -40,7 +41,7 @@ func ListReleases() []string { return releases } -func Upgrade(version, image string, force, debug bool) error { +func Upgrade(version, image string, force, debug bool, dirs []string) error { bus.Manager.Initialize() if version == "" && image == "" { @@ -88,6 +89,13 @@ func Upgrade(version, image string, force, debug bool) error { fmt.Printf("Upgrading to image: '%s'\n", img) } + c, err := config.Scan(config.Directories(dirs...)) + if err != nil { + return err + } + + utils.SetEnv(c.Env) + args := []string{"upgrade", "--system.uri", fmt.Sprintf("docker:%s", img)} if debug {