diff --git a/cli/app/deploy.go b/cli/app/deploy.go index 812ca931..b305de23 100644 --- a/cli/app/deploy.go +++ b/cli/app/deploy.go @@ -13,6 +13,7 @@ var appDeployCommand = &cli.Command{ Flags: []cli.Flag{ internal.ForceFlag, internal.ChaosFlag, + internal.NoDomainChecksFlag, }, Description: ` This command deploys a new instance of an app. It does not support changing the diff --git a/cli/app/upgrade.go b/cli/app/upgrade.go index 877612bb..97d2a0bf 100644 --- a/cli/app/upgrade.go +++ b/cli/app/upgrade.go @@ -24,6 +24,7 @@ var appUpgradeCommand = &cli.Command{ Flags: []cli.Flag{ internal.ForceFlag, internal.ChaosFlag, + internal.NoDomainChecksFlag, }, Description: ` This command supports upgrading an app. You can use it to choose and roll out a diff --git a/cli/internal/common.go b/cli/internal/common.go index 9a3d6600..dd786993 100644 --- a/cli/internal/common.go +++ b/cli/internal/common.go @@ -392,6 +392,15 @@ var NewAppNameFlag = &cli.StringFlag{ Destination: &NewAppName, } +var NoDomainChecks bool +var NoDomainChecksFlag = &cli.BoolFlag{ + Name: "no-domain-checks", + Aliases: []string{"nd"}, + Value: false, + Usage: "Disable app domain sanity checks", + Destination: &NoDomainChecks, +} + // SSHFailMsg is a hopefully helpful SSH failure message var SSHFailMsg = ` Woops, Abra is unable to connect to connect to %s. diff --git a/cli/internal/deploy.go b/cli/internal/deploy.go index f780b534..bf0b6cad 100644 --- a/cli/internal/deploy.go +++ b/cli/internal/deploy.go @@ -116,14 +116,18 @@ func DeployAction(c *cli.Context) error { logrus.Fatal(err) } - domainName := app.Env["DOMAIN"] - ipv4, err := dns.EnsureIPv4(domainName) - if err != nil || ipv4 == "" { - logrus.Fatalf("could not find an IP address assigned to %s?", domainName) - } + if !NoDomainChecks { + domainName := app.Env["DOMAIN"] + ipv4, err := dns.EnsureIPv4(domainName) + if err != nil || ipv4 == "" { + logrus.Fatalf("could not find an IP address assigned to %s?", domainName) + } - if _, err = dns.EnsureDomainsResolveSameIPv4(domainName, app.Server); err != nil { - logrus.Fatal(err) + if _, err = dns.EnsureDomainsResolveSameIPv4(domainName, app.Server); err != nil { + logrus.Fatal(err) + } + } else { + logrus.Warn("skipping domain checks as requested") } if err := stack.RunDeploy(cl, deployOpts, compose, app.Env["TYPE"]); err != nil {