diff --git a/pkg/cmd/drtprod/cli/BUILD.bazel b/pkg/cmd/drtprod/cli/BUILD.bazel index f840cc3eb40f..10a3c741834a 100644 --- a/pkg/cmd/drtprod/cli/BUILD.bazel +++ b/pkg/cmd/drtprod/cli/BUILD.bazel @@ -11,7 +11,6 @@ go_library( deps = [ "//pkg/cmd/drtprod/cli/commands", "//pkg/cmd/roachprod/cli", - "//pkg/roachprod", "@com_github_spf13_cobra//:cobra", ], ) diff --git a/pkg/cmd/drtprod/cli/handlers.go b/pkg/cmd/drtprod/cli/handlers.go index f24d60a1257f..eeafc629efe0 100644 --- a/pkg/cmd/drtprod/cli/handlers.go +++ b/pkg/cmd/drtprod/cli/handlers.go @@ -11,20 +11,19 @@ import ( "github.com/cockroachdb/cockroach/pkg/cmd/drtprod/cli/commands" "github.com/cockroachdb/cockroach/pkg/cmd/roachprod/cli" - "github.com/cockroachdb/cockroach/pkg/roachprod" "github.com/spf13/cobra" ) -// Initialize sets up the environment and initializes the command-line interface. -func Initialize(ctx context.Context) { +func init() { // Set environment variables for the GCE project and DNS configurations. _ = os.Setenv("ROACHPROD_DNS", "drt.crdb.io") _ = os.Setenv("ROACHPROD_GCE_DNS_DOMAIN", "drt.crdb.io") _ = os.Setenv("ROACHPROD_GCE_DNS_ZONE", "drt") _ = os.Setenv("ROACHPROD_GCE_DEFAULT_PROJECT", "cockroach-drt") - // Initialize cloud providers for roachprod. - _ = roachprod.InitProviders() +} +// Initialize sets up the environment and initializes the command-line interface. +func Initialize(ctx context.Context) { // Disable command sorting in Cobra (command-line parser). cobra.EnableCommandSorting = false diff --git a/pkg/roachprod/vm/gce/dns.go b/pkg/roachprod/vm/gce/dns.go index 02143699c132..796495c75398 100644 --- a/pkg/roachprod/vm/gce/dns.go +++ b/pkg/roachprod/vm/gce/dns.go @@ -35,6 +35,10 @@ const ( ) var ( + dnsDefaultZone, dnsDefaultDomain, dnsDefaultManagedZone, dnsDefaultManagedDomain string +) + +func initDNSDefault() { dnsDefaultZone = config.EnvOrDefaultString( "ROACHPROD_GCE_DNS_ZONE", "roachprod", @@ -56,7 +60,7 @@ var ( "ROACHPROD_GCE_DNS_MANAGED_DOMAIN", "roachprod-managed.crdb.io", ) -) +} var ErrDNSOperation = fmt.Errorf("error during Google Cloud DNS operation") diff --git a/pkg/roachprod/vm/gce/gcloud.go b/pkg/roachprod/vm/gce/gcloud.go index 288baf64d628..92d1e9dbb992 100644 --- a/pkg/roachprod/vm/gce/gcloud.go +++ b/pkg/roachprod/vm/gce/gcloud.go @@ -64,6 +64,12 @@ const ( var providerInstance = &Provider{} var ( + defaultDefaultProject, defaultMetadataProject, defaultDNSProject, defaultDefaultServiceAccount string + // projects for which a cron GC job exists. + projectsWithGC []string +) + +func initGCEProjectDefaults() { defaultDefaultProject = config.EnvOrDefaultString( "ROACHPROD_GCE_DEFAULT_PROJECT", "cockroach-ephemeral", ) @@ -80,7 +86,8 @@ var ( "ROACHPROD_GCE_DEFAULT_SERVICE_ACCOUNT", "21965078311-compute@developer.gserviceaccount.com", ) -) + projectsWithGC = []string{defaultDefaultProject} +} // DefaultProject returns the default GCE project. This is used to determine whether // certain features, such as DNS names are enabled. @@ -93,9 +100,6 @@ func DefaultProject() string { return defaultDefaultProject } -// projects for which a cron GC job exists. -var projectsWithGC = []string{defaultDefaultProject} - // Denotes if this provider was successfully initialized. var initialized = false @@ -107,6 +111,9 @@ var initialized = false // Note that, when roachprod is used as a binary, the defaults for // providerInstance properties initialized here can be overriden by flags. func Init() error { + initGCEProjectDefaults() + initDNSDefault() + providerInstance.Projects = []string{defaultDefaultProject} projectFromEnv := os.Getenv("GCE_PROJECT") if projectFromEnv != "" {