From ca1ea32c463d6273c953d67b9870d54d20c61bc9 Mon Sep 17 00:00:00 2001 From: moritz Date: Tue, 31 Jan 2023 14:13:43 +0000 Subject: [PATCH] Expose all env vars to `app` container. (!263) Resolves https://git.coopcloud.tech/coop-cloud/organising/issues/393 and is required for the auto updater https://git.coopcloud.tech/coop-cloud/organising/issues/236#issuecomment-15390 Co-authored-by: Moritz Reviewed-on: https://git.coopcloud.tech/coop-cloud/abra/pulls/263 --- cli/app/rollback.go | 1 + cli/app/upgrade.go | 1 + cli/internal/deploy.go | 1 + pkg/config/app.go | 17 +++++++++++++++++ 4 files changed, 20 insertions(+) diff --git a/cli/app/rollback.go b/cli/app/rollback.go index 36d3c365..98acf56f 100644 --- a/cli/app/rollback.go +++ b/cli/app/rollback.go @@ -178,6 +178,7 @@ recipes. if err != nil { logrus.Fatal(err) } + config.ExposeAllEnv(stackName, compose, app.Env) if !internal.Force { if err := internal.NewVersionOverview(app, deployedVersion, chosenDowngrade, ""); err != nil { diff --git a/cli/app/upgrade.go b/cli/app/upgrade.go index 127497dc..fa46b8d3 100644 --- a/cli/app/upgrade.go +++ b/cli/app/upgrade.go @@ -189,6 +189,7 @@ recipes. if err != nil { logrus.Fatal(err) } + config.ExposeAllEnv(stackName, compose, app.Env) if err := internal.NewVersionOverview(app, deployedVersion, chosenUpgrade, releaseNotes); err != nil { logrus.Fatal(err) diff --git a/cli/internal/deploy.go b/cli/internal/deploy.go index fe8a2ab0..6b3047fb 100644 --- a/cli/internal/deploy.go +++ b/cli/internal/deploy.go @@ -134,6 +134,7 @@ func DeployAction(c *cli.Context) error { if err != nil { logrus.Fatal(err) } + config.ExposeAllEnv(app.StackName(), compose, app.Env) if err := DeployOverview(app, version, "continue with deployment?"); err != nil { logrus.Fatal(err) diff --git a/pkg/config/app.go b/pkg/config/app.go index 17af55c4..15253634 100644 --- a/pkg/config/app.go +++ b/pkg/config/app.go @@ -447,3 +447,20 @@ func GetAppComposeConfig(recipe string, opts stack.Deploy, appEnv AppEnv) (*comp return compose, nil } + +// ExposeAllEnv exposes all env variables to the app container +func ExposeAllEnv(stackName string, compose *composetypes.Config, appEnv AppEnv) { + for _, service := range compose.Services { + if service.Name == "app" { + logrus.Debugf("Add the following environment to the app service config of %s:", stackName) + for k, v := range appEnv { + _, exists := service.Environment[k] + if !exists { + value := v + service.Environment[k] = &value + logrus.Debugf("Add Key: %s Value: %s to %s", k, value, stackName) + } + } + } + } +}