diff --git a/cli/app/rollback.go b/cli/app/rollback.go index 9c226980..9bdf5bdb 100644 --- a/cli/app/rollback.go +++ b/cli/app/rollback.go @@ -179,6 +179,7 @@ recipes. logrus.Fatal(err) } config.ExposeAllEnv(compose, app.Env) + config.SetChaosLabel(compose, stackName, internal.Chaos) 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 18917761..182e5e0a 100644 --- a/cli/app/upgrade.go +++ b/cli/app/upgrade.go @@ -190,6 +190,7 @@ recipes. logrus.Fatal(err) } config.ExposeAllEnv(compose, app.Env) + config.SetChaosLabel(compose, stackName, internal.Chaos) 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 99fc9e6c..85c3d235 100644 --- a/cli/internal/deploy.go +++ b/cli/internal/deploy.go @@ -135,6 +135,7 @@ func DeployAction(c *cli.Context) error { logrus.Fatal(err) } config.ExposeAllEnv(compose, app.Env) + config.SetChaosLabel(compose, app.StackName(), Chaos) 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 25aa10c1..7a8a4ab7 100644 --- a/pkg/config/app.go +++ b/pkg/config/app.go @@ -5,6 +5,7 @@ import ( "io/ioutil" "os" "path" + "strconv" "strings" "github.com/schollz/progressbar/v3" @@ -461,3 +462,14 @@ func ExposeAllEnv(compose *composetypes.Config, appEnv AppEnv) { } } } + +// add a label to signal that a deploy is a chaos deploy +func SetChaosLabel(compose *composetypes.Config, stackName string, chaos bool) { + for _, service := range compose.Services { + if service.Name == "app" { + logrus.Debugf("set chaos label to %s", chaos) + labelKey := fmt.Sprintf("coop-cloud.%s.chaos", stackName) + service.Deploy.Labels[labelKey] = strconv.FormatBool(chaos) + } + } +}