forked from toolshed/abra
refactor: vertical deploy overview
This commit is contained in:
@ -2,6 +2,7 @@ package app
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
|
||||
"coopcloud.tech/abra/cli/internal"
|
||||
"coopcloud.tech/abra/pkg/autocomplete"
|
||||
@ -47,6 +48,8 @@ EXAMPLE:
|
||||
abra app deploy foo.example.com 1e83340e`,
|
||||
BashComplete: autocomplete.AppNameComplete,
|
||||
Action: func(c *cli.Context) error {
|
||||
var warnMessages []string
|
||||
|
||||
app := internal.ValidateApp(c)
|
||||
stackName := app.StackName()
|
||||
|
||||
@ -115,7 +118,7 @@ EXAMPLE:
|
||||
|
||||
if deployMeta.IsDeployed {
|
||||
if internal.Force || internal.Chaos {
|
||||
log.Warnf("%s is already deployed but continuing (--force/--chaos)", app.Name)
|
||||
warnMessages = append(warnMessages, fmt.Sprintf("%s is already deployed", app.Name))
|
||||
} else {
|
||||
log.Fatalf("%s is already deployed", app.Name)
|
||||
}
|
||||
@ -139,13 +142,13 @@ EXAMPLE:
|
||||
log.Fatal(err)
|
||||
}
|
||||
version = formatter.SmallSHA(head.String())
|
||||
log.Warn("no versions detected, using latest commit")
|
||||
warnMessages = append(warnMessages, fmt.Sprintf("no versions detected, using latest commit"))
|
||||
}
|
||||
}
|
||||
|
||||
chaosVersion := "false"
|
||||
if internal.Chaos {
|
||||
log.Warnf("chaos mode engaged")
|
||||
warnMessages = append(warnMessages, "chaos mode engaged")
|
||||
|
||||
if isChaosCommit {
|
||||
chaosVersion = specificVersion
|
||||
@ -201,14 +204,12 @@ EXAMPLE:
|
||||
|
||||
for _, envVar := range envVars {
|
||||
if !envVar.Present {
|
||||
log.Warnf("env var %s missing from %s.env, present in recipe .env.sample", envVar.Name, app.Domain)
|
||||
warnMessages = append(warnMessages,
|
||||
fmt.Sprintf("env var %s missing from %s.env, present in recipe .env.sample", envVar.Name, app.Domain),
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
if err := internal.DeployOverview(app, version, chaosVersion, "continue with deployment?"); err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
|
||||
if !internal.NoDomainChecks {
|
||||
domainName, ok := app.Env["DOMAIN"]
|
||||
if ok {
|
||||
@ -216,10 +217,14 @@ EXAMPLE:
|
||||
log.Fatal(err)
|
||||
}
|
||||
} else {
|
||||
log.Warn("skipping domain checks as no DOMAIN=... configured for app")
|
||||
warnMessages = append(warnMessages, "skipping domain checks as no DOMAIN=... configured for app")
|
||||
}
|
||||
} else {
|
||||
log.Warn("skipping domain checks as requested")
|
||||
warnMessages = append(warnMessages, "skipping domain checks as requested")
|
||||
}
|
||||
|
||||
if err := internal.DeployOverview(app, warnMessages, version, chaosVersion); err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
|
||||
stack.WaitTimeout, err = appPkg.GetTimeoutFromLabel(compose, stackName)
|
||||
|
@ -47,6 +47,8 @@ EXAMPLE:
|
||||
abra app rollback foo.example.com 1.2.3+3.2.1`,
|
||||
BashComplete: autocomplete.AppNameComplete,
|
||||
Action: func(c *cli.Context) error {
|
||||
var warnMessages []string
|
||||
|
||||
app := internal.ValidateApp(c)
|
||||
stackName := app.StackName()
|
||||
|
||||
@ -82,7 +84,7 @@ EXAMPLE:
|
||||
var availableDowngrades []string
|
||||
if deployMeta.Version == "unknown" {
|
||||
availableDowngrades = versions
|
||||
log.Warnf("failed to determine deployed version of %s", app.Name)
|
||||
warnMessages = append(warnMessages, fmt.Sprintf("failed to determine deployed version of %s", app.Name))
|
||||
}
|
||||
|
||||
specificVersion := c.Args().Get(1)
|
||||
@ -113,7 +115,7 @@ EXAMPLE:
|
||||
|
||||
if deployMeta.Version != "unknown" && specificVersion == "" {
|
||||
if deployMeta.IsChaos {
|
||||
log.Warn("attempting to rollback a chaos deployment")
|
||||
warnMessages = append(warnMessages, fmt.Sprintf("attempting to rollback a chaos deployment"))
|
||||
}
|
||||
|
||||
for _, version := range versions {
|
||||
@ -203,7 +205,14 @@ EXAMPLE:
|
||||
}
|
||||
|
||||
// NOTE(d1): no release notes implemeneted for rolling back
|
||||
if err := internal.NewVersionOverview(app, deployMeta.Version, chaosVersion, chosenDowngrade, ""); err != nil {
|
||||
if err := internal.NewVersionOverview(
|
||||
app,
|
||||
warnMessages,
|
||||
"rollback",
|
||||
deployMeta.Version,
|
||||
chaosVersion,
|
||||
chosenDowngrade,
|
||||
""); err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
|
||||
|
@ -107,7 +107,7 @@ Passing "-p/--prune" does not remove those volumes.`,
|
||||
chaosVersion = deployMeta.ChaosVersion
|
||||
}
|
||||
|
||||
if err := internal.DeployOverview(app, deployMeta.Version, chaosVersion, "continue with undeploy?"); err != nil {
|
||||
if err := internal.DeployOverview(app, []string{}, deployMeta.Version, chaosVersion); err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
|
||||
|
@ -47,6 +47,8 @@ EXAMPLE:
|
||||
abra app upgrade foo.example.com 1.2.3+3.2.1`,
|
||||
BashComplete: autocomplete.AppNameComplete,
|
||||
Action: func(c *cli.Context) error {
|
||||
var warnMessages []string
|
||||
|
||||
app := internal.ValidateApp(c)
|
||||
stackName := app.StackName()
|
||||
|
||||
@ -82,7 +84,7 @@ EXAMPLE:
|
||||
var availableUpgrades []string
|
||||
if deployMeta.Version == "unknown" {
|
||||
availableUpgrades = versions
|
||||
log.Warnf("failed to determine deployed version of %s", app.Name)
|
||||
warnMessages = append(warnMessages, fmt.Sprintf("failed to determine deployed version of %s", app.Name))
|
||||
}
|
||||
|
||||
specificVersion := c.Args().Get(1)
|
||||
@ -114,7 +116,7 @@ EXAMPLE:
|
||||
|
||||
if deployMeta.Version != "unknown" && specificVersion == "" {
|
||||
if deployMeta.IsChaos {
|
||||
log.Warn("attempting to upgrade a chaos deployment")
|
||||
warnMessages = append(warnMessages, fmt.Sprintf("attempting to upgrade a chaos deployment"))
|
||||
}
|
||||
|
||||
for _, version := range versions {
|
||||
@ -156,7 +158,7 @@ EXAMPLE:
|
||||
}
|
||||
|
||||
if internal.Force && chosenUpgrade == "" {
|
||||
log.Warnf("%s is already upgraded to latest but continuing (--force)", app.Name)
|
||||
warnMessages = append(warnMessages, fmt.Sprintf("%s is already upgraded to latest", app.Name))
|
||||
chosenUpgrade = deployMeta.Version
|
||||
}
|
||||
|
||||
@ -230,7 +232,9 @@ EXAMPLE:
|
||||
|
||||
for _, envVar := range envVars {
|
||||
if !envVar.Present {
|
||||
log.Warnf("env var %s missing from %s.env, present in recipe .env.sample", envVar.Name, app.Domain)
|
||||
warnMessages = append(warnMessages,
|
||||
fmt.Sprintf("env var %s missing from %s.env, present in recipe .env.sample", envVar.Name, app.Domain),
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@ -245,7 +249,14 @@ EXAMPLE:
|
||||
chaosVersion = deployMeta.ChaosVersion
|
||||
}
|
||||
|
||||
if err := internal.NewVersionOverview(app, deployMeta.Version, chaosVersion, chosenUpgrade, releaseNotes); err != nil {
|
||||
if err := internal.NewVersionOverview(
|
||||
app,
|
||||
warnMessages,
|
||||
"upgrade",
|
||||
deployMeta.Version,
|
||||
chaosVersion,
|
||||
chosenUpgrade,
|
||||
releaseNotes); err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user