diff --git a/cli/app/deploy.go b/cli/app/deploy.go index 23541fdd6..41d2bad59 100644 --- a/cli/app/deploy.go +++ b/cli/app/deploy.go @@ -152,7 +152,6 @@ checkout as-is. Recipe commit hashes are also supported as values for log.Fatal(err) } - appPkg.ExposeAllEnv(stackName, compose, app.Env) appPkg.SetRecipeLabel(compose, stackName, app.Recipe.Name) appPkg.SetChaosLabel(compose, stackName, internal.Chaos) if internal.Chaos { @@ -171,6 +170,9 @@ checkout as-is. Recipe commit hashes are also supported as values for } appPkg.SetVersionLabel(compose, stackName, versionLabel) + newRecipeWithDeployVersion := fmt.Sprintf("%s:%s", app.Recipe.Name, toDeployVersion) + appPkg.ExposeAllEnv(stackName, compose, app.Env, newRecipeWithDeployVersion) + envVars, err := appPkg.CheckEnv(app) if err != nil { log.Fatal(err) diff --git a/cli/app/rollback.go b/cli/app/rollback.go index 921a338fa..43ceb3a82 100644 --- a/cli/app/rollback.go +++ b/cli/app/rollback.go @@ -2,6 +2,7 @@ package app import ( "errors" + "fmt" "strings" appPkg "coopcloud.tech/abra/pkg/app" @@ -177,7 +178,9 @@ beforehand. See "abra app backup" for more.`), log.Fatal(err) } - appPkg.ExposeAllEnv(stackName, compose, app.Env) + newRecipeWithDowngradeVersion := fmt.Sprintf("%s:%s", app.Recipe.Name, chosenDowngrade) + appPkg.ExposeAllEnv(stackName, compose, app.Env, newRecipeWithDowngradeVersion) + appPkg.SetRecipeLabel(compose, stackName, app.Recipe.Name) appPkg.SetChaosLabel(compose, stackName, internal.Chaos) if internal.Chaos { diff --git a/cli/app/upgrade.go b/cli/app/upgrade.go index daaf232da..0f73352bb 100644 --- a/cli/app/upgrade.go +++ b/cli/app/upgrade.go @@ -190,7 +190,9 @@ beforehand. See "abra app backup" for more.`), log.Fatal(err) } - appPkg.ExposeAllEnv(stackName, compose, app.Env) + newRecipeWithUpgradeVersion := fmt.Sprintf("%s:%s", app.Recipe.Name, chosenUpgrade) + appPkg.ExposeAllEnv(stackName, compose, app.Env, newRecipeWithUpgradeVersion) + appPkg.SetRecipeLabel(compose, stackName, app.Recipe.Name) appPkg.SetChaosLabel(compose, stackName, internal.Chaos) if internal.Chaos { diff --git a/pkg/app/app.go b/pkg/app/app.go index c094db9a8..dc91797c5 100644 --- a/pkg/app/app.go +++ b/pkg/app/app.go @@ -502,7 +502,11 @@ func GetAppComposeConfig(recipe string, opts stack.Deploy, appEnv envfile.AppEnv } // ExposeAllEnv exposes all env variables to the app container -func ExposeAllEnv(stackName string, compose *composetypes.Config, appEnv envfile.AppEnv) { +func ExposeAllEnv( + stackName string, + compose *composetypes.Config, + appEnv envfile.AppEnv, + toDeployVersion string) { for _, service := range compose.Services { if service.Name == "app" { log.Debug(i18n.G("adding env vars to %s service config", stackName)) @@ -510,6 +514,11 @@ func ExposeAllEnv(stackName string, compose *composetypes.Config, appEnv envfile _, exists := service.Environment[k] if !exists { value := v + if k == "TYPE" || k == "RECIPE" { + // NOTE(d1): don't use the wrong version from the app env + // since we are deploying a new version + value = toDeployVersion + } service.Environment[k] = &value log.Debug(i18n.G("%s: %s: %s", stackName, k, value)) }