diff --git a/cli/app/deploy.go b/cli/app/deploy.go index 03b33dc4..b01faba3 100644 --- a/cli/app/deploy.go +++ b/cli/app/deploy.go @@ -6,10 +6,8 @@ import ( "strings" "coopcloud.tech/abra/cli/internal" - "coopcloud.tech/abra/pkg/app" "coopcloud.tech/abra/pkg/autocomplete" "coopcloud.tech/abra/pkg/config" - "coopcloud.tech/abra/pkg/envfile" "coopcloud.tech/abra/pkg/secret" appPkg "coopcloud.tech/abra/pkg/app" @@ -130,13 +128,9 @@ checkout as-is. Recipe commit hashes are also supported as values for log.Fatal(err) } - abraShEnv, err := envfile.ReadAbraShEnvVars(app.Recipe.AbraShPath) - if err != nil { + if err := deploy.MergeAbraShEnv(app.Recipe, app.Env); err != nil { log.Fatal(err) } - for k, v := range abraShEnv { - app.Env[k] = v - } composeFiles, err := app.Recipe.GetComposeFiles(app.Env) if err != nil { @@ -202,7 +196,7 @@ checkout as-is. Recipe commit hashes are also supported as values for } // Gather configs - configInfo, err := deploy.GatherConfigsForDeploy(cl, app, compose, abraShEnv) + configInfo, err := deploy.GatherConfigsForDeploy(cl, app, compose, app.Env) if err != nil { log.Fatal(err) } @@ -269,7 +263,7 @@ checkout as-is. Recipe commit hashes are also supported as values for }, } -func getLatestVersionOrCommit(app app.App) (string, error) { +func getLatestVersionOrCommit(app appPkg.App) (string, error) { versions, err := app.Recipe.Tags() if err != nil { return "", err @@ -304,7 +298,7 @@ func validateArgsAndFlags(args []string) error { return nil } -func validateSecrets(cl *dockerClient.Client, app app.App) error { +func validateSecrets(cl *dockerClient.Client, app appPkg.App) error { secStats, err := secret.PollSecretsStatus(cl, app) if err != nil { return err @@ -319,7 +313,7 @@ func validateSecrets(cl *dockerClient.Client, app app.App) error { return nil } -func getDeployVersion(cliArgs []string, deployMeta stack.DeployMeta, app app.App) (string, error) { +func getDeployVersion(cliArgs []string, deployMeta stack.DeployMeta, app appPkg.App) (string, error) { // Chaos mode overrides everything if internal.Chaos { v, err := app.Recipe.ChaosVersion() diff --git a/cli/app/rollback.go b/cli/app/rollback.go index 8ac92f22..1c4b46f8 100644 --- a/cli/app/rollback.go +++ b/cli/app/rollback.go @@ -4,12 +4,10 @@ import ( "errors" "strings" - "coopcloud.tech/abra/pkg/app" appPkg "coopcloud.tech/abra/pkg/app" "coopcloud.tech/abra/pkg/autocomplete" "coopcloud.tech/abra/pkg/config" "coopcloud.tech/abra/pkg/deploy" - "coopcloud.tech/abra/pkg/envfile" "coopcloud.tech/abra/pkg/formatter" "coopcloud.tech/abra/pkg/i18n" "coopcloud.tech/abra/pkg/lint" @@ -156,13 +154,9 @@ beforehand. See "abra app backup" for more.`), log.Fatal(err) } - abraShEnv, err := envfile.ReadAbraShEnvVars(app.Recipe.AbraShPath) - if err != nil { + if err := deploy.MergeAbraShEnv(app.Recipe, app.Env); err != nil { log.Fatal(err) } - for k, v := range abraShEnv { - app.Env[k] = v - } composeFiles, err := app.Recipe.GetComposeFiles(app.Env) if err != nil { @@ -198,7 +192,7 @@ beforehand. See "abra app backup" for more.`), } // Gather configs - configInfo, err := deploy.GatherConfigsForDeploy(cl, app, compose, abraShEnv) + configInfo, err := deploy.GatherConfigsForDeploy(cl, app, compose, app.Env) if err != nil { log.Fatal(err) } @@ -289,7 +283,7 @@ func chooseDowngrade( // validateDownpgradeVersionArg validates the specific version. func validateDowngradeVersionArg( specificVersion string, - app app.App, + app appPkg.App, deployMeta stack.DeployMeta, ) error { parsedDeployedVersion, err := tagcmp.Parse(deployMeta.Version) diff --git a/cli/app/upgrade.go b/cli/app/upgrade.go index 9cf5cfdd..d04504fb 100644 --- a/cli/app/upgrade.go +++ b/cli/app/upgrade.go @@ -12,7 +12,6 @@ import ( "coopcloud.tech/abra/pkg/client" "coopcloud.tech/abra/pkg/config" "coopcloud.tech/abra/pkg/deploy" - "coopcloud.tech/abra/pkg/envfile" "coopcloud.tech/abra/pkg/formatter" "coopcloud.tech/abra/pkg/i18n" "coopcloud.tech/abra/pkg/lint" @@ -168,13 +167,9 @@ beforehand. See "abra app backup" for more.`), log.Fatal(err) } - abraShEnv, err := envfile.ReadAbraShEnvVars(app.Recipe.AbraShPath) - if err != nil { + if err := deploy.MergeAbraShEnv(app.Recipe, app.Env); err != nil { log.Fatal(err) } - for k, v := range abraShEnv { - app.Env[k] = v - } composeFiles, err := app.Recipe.GetComposeFiles(app.Env) if err != nil { @@ -223,7 +218,7 @@ beforehand. See "abra app backup" for more.`), } // Gather configs - configInfo, err := deploy.GatherConfigsForDeploy(cl, app, compose, abraShEnv) + configInfo, err := deploy.GatherConfigsForDeploy(cl, app, compose, app.Env) if err != nil { log.Fatal(err) } diff --git a/cli/updater/updater.go b/cli/updater/updater.go index 18332754..6f28216e 100644 --- a/cli/updater/updater.go +++ b/cli/updater/updater.go @@ -11,6 +11,7 @@ import ( "coopcloud.tech/abra/cli/internal" appPkg "coopcloud.tech/abra/pkg/app" "coopcloud.tech/abra/pkg/client" + "coopcloud.tech/abra/pkg/deploy" "coopcloud.tech/abra/pkg/envfile" "coopcloud.tech/abra/pkg/i18n" "coopcloud.tech/abra/pkg/lint" @@ -335,21 +336,6 @@ func processRecipeRepoVersion(r recipe.Recipe, version string) error { return nil } -// mergeAbraShEnv merges abra.sh env vars into the app env vars. -func mergeAbraShEnv(recipe recipe.Recipe, env envfile.AppEnv) error { - abraShEnv, err := envfile.ReadAbraShEnvVars(recipe.AbraShPath) - if err != nil { - return err - } - - for k, v := range abraShEnv { - log.Debugf("read v:%s k: %s", v, k) - env[k] = v - } - - return nil -} - // createDeployConfig merges and enriches the compose config for the deployment. func createDeployConfig(r recipe.Recipe, stackName string, env envfile.AppEnv) (*composetypes.Config, stack.Deploy, error) { env["STACK_NAME"] = stackName @@ -444,7 +430,7 @@ func upgrade(cl *dockerclient.Client, stackName, recipeName, upgradeVersion stri return err } - if err = mergeAbraShEnv(app.Recipe, app.Env); err != nil { + if err = deploy.MergeAbraShEnv(app.Recipe, app.Env); err != nil { return err } diff --git a/pkg/deploy/utils.go b/pkg/deploy/utils.go index bd7a803a..f5fd43c7 100644 --- a/pkg/deploy/utils.go +++ b/pkg/deploy/utils.go @@ -10,7 +10,9 @@ import ( appPkg "coopcloud.tech/abra/pkg/app" "coopcloud.tech/abra/pkg/client" + "coopcloud.tech/abra/pkg/envfile" "coopcloud.tech/abra/pkg/log" + "coopcloud.tech/abra/pkg/recipe" "coopcloud.tech/abra/pkg/secret" composetypes "github.com/docker/cli/cli/compose/types" @@ -18,6 +20,22 @@ import ( dockerClient "github.com/docker/docker/client" ) +// MergeAbraShEnv merges abra.sh env vars into the app env vars. +func MergeAbraShEnv(recipe recipe.Recipe, env envfile.AppEnv) error { + abraShEnv, err := envfile.ReadAbraShEnvVars(recipe.AbraShPath) + if err != nil { + return err + } + + for k, v := range abraShEnv { + log.Debugf("read v:%s k: %s", v, k) + env[k] = v + } + + return nil +} + + // GetConfigsForStack retrieves all Docker configs attached to services in a given stack. func GetConfigsForStack(cl *dockerClient.Client, app appPkg.App) (map[string]string, error) { filters, err := app.Filters(false, false) @@ -185,7 +203,7 @@ func GatherImagesForDeploy(cl *dockerClient.Client, app appPkg.App, compose *com return nil, err } - log.Infof("Deployed images: %v", currentImages) + log.Debugf("Deployed images: %v", currentImages) // Proposed new images from the compose files newImages := make(map[string]string) @@ -207,7 +225,7 @@ func GatherImagesForDeploy(cl *dockerClient.Client, app appPkg.App, compose *com } } } - log.Infof("Proposed images: %v", newImages) + log.Debugf("Proposed images: %v", newImages) var imageInfo []string for newImageName, newImageVersion := range newImages {