diff --git a/acceptance/bundle/config-remote-sync/json_status_missing_state/output.txt b/acceptance/bundle/config-remote-sync/json_status_missing_state/output.txt index bce70b3874a..1afc65091f7 100644 --- a/acceptance/bundle/config-remote-sync/json_status_missing_state/output.txt +++ b/acceptance/bundle/config-remote-sync/json_status_missing_state/output.txt @@ -2,7 +2,7 @@ === Terraform removal is reported in JSON with exit 0 { "status": "failed", - "error": "the Terraform deployment engine has been removed in Databricks CLI v1.20.0\n\nRemove the \"bundle.engine\" setting (or set it to \"direct\") to deploy with the direct engine; existing Terraform state is migrated automatically. To keep using Terraform, revert to Databricks CLI v1.19.x.\nSee https://docs.databricks.com/dev-tools/bundles/direct for details", + "error": "the Terraform deployment engine has been removed in Databricks CLI v1.20.0\n\nUnset the DATABRICKS_BUNDLE_ENGINE environment variable (or set it to \"direct\") to deploy with the direct engine; existing Terraform state is migrated automatically. To keep using Terraform, revert to Databricks CLI v1.19.x.\nSee https://docs.databricks.com/dev-tools/bundles/direct for details", "files": null, "changes": {} } diff --git a/acceptance/bundle/deploy/readplan/terraform-error/output.txt b/acceptance/bundle/deploy/readplan/terraform-error/output.txt index de7f007a992..a34b3d73259 100644 --- a/acceptance/bundle/deploy/readplan/terraform-error/output.txt +++ b/acceptance/bundle/deploy/readplan/terraform-error/output.txt @@ -2,5 +2,5 @@ >>> musterr [CLI] bundle deploy --plan plan.json Error: the Terraform deployment engine has been removed in Databricks CLI v1.20.0 -Remove the "bundle.engine" setting (or set it to "direct") to deploy with the direct engine; existing Terraform state is migrated automatically. To keep using Terraform, revert to Databricks CLI v1.19.x. +Unset the DATABRICKS_BUNDLE_ENGINE environment variable (or set it to "direct") to deploy with the direct engine; existing Terraform state is migrated automatically. To keep using Terraform, revert to Databricks CLI v1.19.x. See https://docs.databricks.com/dev-tools/bundles/direct for details diff --git a/acceptance/bundle/deploy/yaml-sync-empty-grants/output.txt b/acceptance/bundle/deploy/yaml-sync-empty-grants/output.txt index 0aa72209096..cc39aa21195 100644 --- a/acceptance/bundle/deploy/yaml-sync-empty-grants/output.txt +++ b/acceptance/bundle/deploy/yaml-sync-empty-grants/output.txt @@ -2,5 +2,5 @@ >>> musterr [CLI] bundle deploy Error: the Terraform deployment engine has been removed in Databricks CLI v1.20.0 -Remove the "bundle.engine" setting (or set it to "direct") to deploy with the direct engine; existing Terraform state is migrated automatically. To keep using Terraform, revert to Databricks CLI v1.19.x. +Unset the DATABRICKS_BUNDLE_ENGINE environment variable (or set it to "direct") to deploy with the direct engine; existing Terraform state is migrated automatically. To keep using Terraform, revert to Databricks CLI v1.19.x. See https://docs.databricks.com/dev-tools/bundles/direct for details diff --git a/acceptance/bundle/resource_deps/tf_path_only_error/out.validate-terraform-env.txt b/acceptance/bundle/resource_deps/tf_path_only_error/out.validate-terraform-env.txt index 054469a2e1f..0adce33789d 100644 --- a/acceptance/bundle/resource_deps/tf_path_only_error/out.validate-terraform-env.txt +++ b/acceptance/bundle/resource_deps/tf_path_only_error/out.validate-terraform-env.txt @@ -1,6 +1,6 @@ Error: the Terraform deployment engine has been removed in Databricks CLI v1.20.0 -Remove the "bundle.engine" setting (or set it to "direct") to deploy with the direct engine; existing Terraform state is migrated automatically. To keep using Terraform, revert to Databricks CLI v1.19.x. +Unset the DATABRICKS_BUNDLE_ENGINE environment variable (or set it to "direct") to deploy with the direct engine; existing Terraform state is migrated automatically. To keep using Terraform, revert to Databricks CLI v1.19.x. See https://docs.databricks.com/dev-tools/bundles/direct for details Name: test-bundle diff --git a/acceptance/bundle/resources/apps/lifecycle-started-terraform-error/output.txt b/acceptance/bundle/resources/apps/lifecycle-started-terraform-error/output.txt index 21d00eaecc5..d2c8acc2224 100644 --- a/acceptance/bundle/resources/apps/lifecycle-started-terraform-error/output.txt +++ b/acceptance/bundle/resources/apps/lifecycle-started-terraform-error/output.txt @@ -3,12 +3,12 @@ >>> musterr [CLI] bundle plan Error: the Terraform deployment engine has been removed in Databricks CLI v1.20.0 -Remove the "bundle.engine" setting (or set it to "direct") to deploy with the direct engine; existing Terraform state is migrated automatically. To keep using Terraform, revert to Databricks CLI v1.19.x. +Unset the DATABRICKS_BUNDLE_ENGINE environment variable (or set it to "direct") to deploy with the direct engine; existing Terraform state is migrated automatically. To keep using Terraform, revert to Databricks CLI v1.19.x. See https://docs.databricks.com/dev-tools/bundles/direct for details === bundle deploy fails with lifecycle.started on terraform engine >>> musterr [CLI] bundle deploy Error: the Terraform deployment engine has been removed in Databricks CLI v1.20.0 -Remove the "bundle.engine" setting (or set it to "direct") to deploy with the direct engine; existing Terraform state is migrated automatically. To keep using Terraform, revert to Databricks CLI v1.19.x. +Unset the DATABRICKS_BUNDLE_ENGINE environment variable (or set it to "direct") to deploy with the direct engine; existing Terraform state is migrated automatically. To keep using Terraform, revert to Databricks CLI v1.19.x. See https://docs.databricks.com/dev-tools/bundles/direct for details diff --git a/acceptance/bundle/resources/clusters/lifecycle-started-terraform-error/output.txt b/acceptance/bundle/resources/clusters/lifecycle-started-terraform-error/output.txt index 21d00eaecc5..d2c8acc2224 100644 --- a/acceptance/bundle/resources/clusters/lifecycle-started-terraform-error/output.txt +++ b/acceptance/bundle/resources/clusters/lifecycle-started-terraform-error/output.txt @@ -3,12 +3,12 @@ >>> musterr [CLI] bundle plan Error: the Terraform deployment engine has been removed in Databricks CLI v1.20.0 -Remove the "bundle.engine" setting (or set it to "direct") to deploy with the direct engine; existing Terraform state is migrated automatically. To keep using Terraform, revert to Databricks CLI v1.19.x. +Unset the DATABRICKS_BUNDLE_ENGINE environment variable (or set it to "direct") to deploy with the direct engine; existing Terraform state is migrated automatically. To keep using Terraform, revert to Databricks CLI v1.19.x. See https://docs.databricks.com/dev-tools/bundles/direct for details === bundle deploy fails with lifecycle.started on terraform engine >>> musterr [CLI] bundle deploy Error: the Terraform deployment engine has been removed in Databricks CLI v1.20.0 -Remove the "bundle.engine" setting (or set it to "direct") to deploy with the direct engine; existing Terraform state is migrated automatically. To keep using Terraform, revert to Databricks CLI v1.19.x. +Unset the DATABRICKS_BUNDLE_ENGINE environment variable (or set it to "direct") to deploy with the direct engine; existing Terraform state is migrated automatically. To keep using Terraform, revert to Databricks CLI v1.19.x. See https://docs.databricks.com/dev-tools/bundles/direct for details diff --git a/acceptance/bundle/resources/jobs/unknown-terraform-field/output.txt b/acceptance/bundle/resources/jobs/unknown-terraform-field/output.txt index 0aa72209096..cc39aa21195 100644 --- a/acceptance/bundle/resources/jobs/unknown-terraform-field/output.txt +++ b/acceptance/bundle/resources/jobs/unknown-terraform-field/output.txt @@ -2,5 +2,5 @@ >>> musterr [CLI] bundle deploy Error: the Terraform deployment engine has been removed in Databricks CLI v1.20.0 -Remove the "bundle.engine" setting (or set it to "direct") to deploy with the direct engine; existing Terraform state is migrated automatically. To keep using Terraform, revert to Databricks CLI v1.19.x. +Unset the DATABRICKS_BUNDLE_ENGINE environment variable (or set it to "direct") to deploy with the direct engine; existing Terraform state is migrated automatically. To keep using Terraform, revert to Databricks CLI v1.19.x. See https://docs.databricks.com/dev-tools/bundles/direct for details diff --git a/acceptance/bundle/resources/secrets/direct-only/output.txt b/acceptance/bundle/resources/secrets/direct-only/output.txt index c4dab82c500..5e9f4e15749 100644 --- a/acceptance/bundle/resources/secrets/direct-only/output.txt +++ b/acceptance/bundle/resources/secrets/direct-only/output.txt @@ -3,5 +3,5 @@ >>> musterr [CLI] bundle deploy --var secret_value=test-value Error: the Terraform deployment engine has been removed in Databricks CLI v1.20.0 -Remove the "bundle.engine" setting (or set it to "direct") to deploy with the direct engine; existing Terraform state is migrated automatically. To keep using Terraform, revert to Databricks CLI v1.19.x. +Unset the DATABRICKS_BUNDLE_ENGINE environment variable (or set it to "direct") to deploy with the direct engine; existing Terraform state is migrated automatically. To keep using Terraform, revert to Databricks CLI v1.19.x. See https://docs.databricks.com/dev-tools/bundles/direct for details diff --git a/acceptance/bundle/resources/sql_warehouses/lifecycle-started-terraform-error/output.txt b/acceptance/bundle/resources/sql_warehouses/lifecycle-started-terraform-error/output.txt index 21d00eaecc5..d2c8acc2224 100644 --- a/acceptance/bundle/resources/sql_warehouses/lifecycle-started-terraform-error/output.txt +++ b/acceptance/bundle/resources/sql_warehouses/lifecycle-started-terraform-error/output.txt @@ -3,12 +3,12 @@ >>> musterr [CLI] bundle plan Error: the Terraform deployment engine has been removed in Databricks CLI v1.20.0 -Remove the "bundle.engine" setting (or set it to "direct") to deploy with the direct engine; existing Terraform state is migrated automatically. To keep using Terraform, revert to Databricks CLI v1.19.x. +Unset the DATABRICKS_BUNDLE_ENGINE environment variable (or set it to "direct") to deploy with the direct engine; existing Terraform state is migrated automatically. To keep using Terraform, revert to Databricks CLI v1.19.x. See https://docs.databricks.com/dev-tools/bundles/direct for details === bundle deploy fails with lifecycle.started on terraform engine >>> musterr [CLI] bundle deploy Error: the Terraform deployment engine has been removed in Databricks CLI v1.20.0 -Remove the "bundle.engine" setting (or set it to "direct") to deploy with the direct engine; existing Terraform state is migrated automatically. To keep using Terraform, revert to Databricks CLI v1.19.x. +Unset the DATABRICKS_BUNDLE_ENGINE environment variable (or set it to "direct") to deploy with the direct engine; existing Terraform state is migrated automatically. To keep using Terraform, revert to Databricks CLI v1.19.x. See https://docs.databricks.com/dev-tools/bundles/direct for details diff --git a/acceptance/bundle/select/rejected/output.txt b/acceptance/bundle/select/rejected/output.txt index 2e93d90ec60..f15371cec50 100644 --- a/acceptance/bundle/select/rejected/output.txt +++ b/acceptance/bundle/select/rejected/output.txt @@ -2,11 +2,11 @@ >>> musterr [CLI] bundle plan --select my_job Error: the Terraform deployment engine has been removed in Databricks CLI v1.20.0 -Remove the "bundle.engine" setting (or set it to "direct") to deploy with the direct engine; existing Terraform state is migrated automatically. To keep using Terraform, revert to Databricks CLI v1.19.x. +Unset the DATABRICKS_BUNDLE_ENGINE environment variable (or set it to "direct") to deploy with the direct engine; existing Terraform state is migrated automatically. To keep using Terraform, revert to Databricks CLI v1.19.x. See https://docs.databricks.com/dev-tools/bundles/direct for details >>> musterr [CLI] bundle deploy --select my_job Error: the Terraform deployment engine has been removed in Databricks CLI v1.20.0 -Remove the "bundle.engine" setting (or set it to "direct") to deploy with the direct engine; existing Terraform state is migrated automatically. To keep using Terraform, revert to Databricks CLI v1.19.x. +Unset the DATABRICKS_BUNDLE_ENGINE environment variable (or set it to "direct") to deploy with the direct engine; existing Terraform state is migrated automatically. To keep using Terraform, revert to Databricks CLI v1.19.x. See https://docs.databricks.com/dev-tools/bundles/direct for details diff --git a/acceptance/bundle/telemetry/config-remote-sync-error/output.txt b/acceptance/bundle/telemetry/config-remote-sync-error/output.txt index ce37dabd34e..17cfa15ab04 100644 --- a/acceptance/bundle/telemetry/config-remote-sync-error/output.txt +++ b/acceptance/bundle/telemetry/config-remote-sync-error/output.txt @@ -2,11 +2,11 @@ >>> musterr [CLI] bundle config-remote-sync Error: the Terraform deployment engine has been removed in Databricks CLI v1.20.0 -Remove the "bundle.engine" setting (or set it to "direct") to deploy with the direct engine; existing Terraform state is migrated automatically. To keep using Terraform, revert to Databricks CLI v1.19.x. +Unset the DATABRICKS_BUNDLE_ENGINE environment variable (or set it to "direct") to deploy with the direct engine; existing Terraform state is migrated automatically. To keep using Terraform, revert to Databricks CLI v1.19.x. See https://docs.databricks.com/dev-tools/bundles/direct for details >>> cat [OUTPUT_DIR]/out.requests.txt { - "error_message": "the Terraform deployment engine has been removed in Databricks CLI v1.20.0\n\nRemove the \"bundle.engine\" setting (or set it to \"direct\") to deploy with the direct engine; existing Terraform state is migrated automatically. To keep using Terraform, revert to Databricks CLI v1.19.x.\nSee https://docs.databricks.com/dev-tools/bundles/direct for details", + "error_message": "the Terraform deployment engine has been removed in Databricks CLI v1.20.0\n\nUnset the DATABRICKS_BUNDLE_ENGINE environment variable (or set it to \"direct\") to deploy with the direct engine; existing Terraform state is migrated automatically. To keep using Terraform, revert to Databricks CLI v1.19.x.\nSee https://docs.databricks.com/dev-tools/bundles/direct for details", "error_category": "BUNDLE_LOAD_FAILED" } diff --git a/acceptance/bundle/telemetry/config-remote-sync-skipped-state/output.txt b/acceptance/bundle/telemetry/config-remote-sync-skipped-state/output.txt index 2992b05daf1..8a7fc20b9fc 100644 --- a/acceptance/bundle/telemetry/config-remote-sync-skipped-state/output.txt +++ b/acceptance/bundle/telemetry/config-remote-sync-skipped-state/output.txt @@ -2,13 +2,13 @@ >>> errcode [CLI] bundle config-remote-sync -o json { "status": "failed", - "error": "the Terraform deployment engine has been removed in Databricks CLI v1.20.0\n\nRemove the \"bundle.engine\" setting (or set it to \"direct\") to deploy with the direct engine; existing Terraform state is migrated automatically. To keep using Terraform, revert to Databricks CLI v1.19.x.\nSee https://docs.databricks.com/dev-tools/bundles/direct for details", + "error": "the Terraform deployment engine has been removed in Databricks CLI v1.20.0\n\nUnset the DATABRICKS_BUNDLE_ENGINE environment variable (or set it to \"direct\") to deploy with the direct engine; existing Terraform state is migrated automatically. To keep using Terraform, revert to Databricks CLI v1.19.x.\nSee https://docs.databricks.com/dev-tools/bundles/direct for details", "files": null, "changes": {} } >>> cat [OUTPUT_DIR]/out.requests.txt { - "error_message": "the Terraform deployment engine has been removed in Databricks CLI v1.20.0\n\nRemove the \"bundle.engine\" setting (or set it to \"direct\") to deploy with the direct engine; existing Terraform state is migrated automatically. To keep using Terraform, revert to Databricks CLI v1.19.x.\nSee https://docs.databricks.com/dev-tools/bundles/direct for details", + "error_message": "the Terraform deployment engine has been removed in Databricks CLI v1.20.0\n\nUnset the DATABRICKS_BUNDLE_ENGINE environment variable (or set it to \"direct\") to deploy with the direct engine; existing Terraform state is migrated automatically. To keep using Terraform, revert to Databricks CLI v1.19.x.\nSee https://docs.databricks.com/dev-tools/bundles/direct for details", "error_category": "BUNDLE_LOAD_FAILED" } diff --git a/acceptance/bundle/validate/catalog_requires_direct_mode/output.txt b/acceptance/bundle/validate/catalog_requires_direct_mode/output.txt index 88c8b091c64..d8e132350f1 100644 --- a/acceptance/bundle/validate/catalog_requires_direct_mode/output.txt +++ b/acceptance/bundle/validate/catalog_requires_direct_mode/output.txt @@ -2,5 +2,5 @@ >>> musterr [CLI] bundle plan Error: the Terraform deployment engine has been removed in Databricks CLI v1.20.0 -Remove the "bundle.engine" setting (or set it to "direct") to deploy with the direct engine; existing Terraform state is migrated automatically. To keep using Terraform, revert to Databricks CLI v1.19.x. +Unset the DATABRICKS_BUNDLE_ENGINE environment variable (or set it to "direct") to deploy with the direct engine; existing Terraform state is migrated automatically. To keep using Terraform, revert to Databricks CLI v1.19.x. See https://docs.databricks.com/dev-tools/bundles/direct for details diff --git a/acceptance/bundle/validate/engine-config-valid/output.txt b/acceptance/bundle/validate/engine-config-valid/output.txt index 7265cf895f0..e3b138ac1ce 100644 --- a/acceptance/bundle/validate/engine-config-valid/output.txt +++ b/acceptance/bundle/validate/engine-config-valid/output.txt @@ -19,3 +19,15 @@ Name: test-engine-config-valid Target: terraform-target Found 1 error + +>>> musterr [CLI] bundle validate -t terraform-target +Error: the Terraform deployment engine has been removed in Databricks CLI v1.20.0 + in databricks.yml:10:15 + +Remove the "bundle.engine" setting (or set it to "direct") to deploy with the direct engine; existing Terraform state is migrated automatically. To keep using Terraform, revert to Databricks CLI v1.19.x. +See https://docs.databricks.com/dev-tools/bundles/direct for details + +Name: test-engine-config-valid +Target: terraform-target + +Found 1 error diff --git a/acceptance/bundle/validate/engine-config-valid/script b/acceptance/bundle/validate/engine-config-valid/script index b71e2c8346e..e42a2846147 100644 --- a/acceptance/bundle/validate/engine-config-valid/script +++ b/acceptance/bundle/validate/engine-config-valid/script @@ -1,3 +1,6 @@ trace $CLI bundle validate # engine: terraform was removed in v1.20.0, so the terraform-target now fails validation. trace musterr $CLI bundle validate -t terraform-target + +# bundle.engine takes priority over the env var, so the error names the config setting even when both say terraform. +DATABRICKS_BUNDLE_ENGINE=terraform trace musterr $CLI bundle validate -t terraform-target diff --git a/acceptance/pipelines/destroy/cascade-on-destroy-terraform-error/output.txt b/acceptance/pipelines/destroy/cascade-on-destroy-terraform-error/output.txt index 0bdbe26b969..8b323a675b8 100644 --- a/acceptance/pipelines/destroy/cascade-on-destroy-terraform-error/output.txt +++ b/acceptance/pipelines/destroy/cascade-on-destroy-terraform-error/output.txt @@ -3,5 +3,5 @@ >>> musterr [CLI] pipelines deploy Error: the Terraform deployment engine has been removed in Databricks CLI v1.20.0 -Remove the "bundle.engine" setting (or set it to "direct") to deploy with the direct engine; existing Terraform state is migrated automatically. To keep using Terraform, revert to Databricks CLI v1.19.x. +Unset the DATABRICKS_BUNDLE_ENGINE environment variable (or set it to "direct") to deploy with the direct engine; existing Terraform state is migrated automatically. To keep using Terraform, revert to Databricks CLI v1.19.x. See https://docs.databricks.com/dev-tools/bundles/direct for details diff --git a/bundle/config/engine/engine.go b/bundle/config/engine/engine.go index 2df233c4c88..f5eacbb4219 100644 --- a/bundle/config/engine/engine.go +++ b/bundle/config/engine/engine.go @@ -21,17 +21,26 @@ const ( // for existing terraform deployments (whose state is migrated to it before the command runs). const Default = EngineDirect -// TerraformRemovedMessage is the error text shown when a bundle pins the removed -// Terraform deployment engine, via bundle.engine or DATABRICKS_BUNDLE_ENGINE. -// "terraform" is still recognized as a value so we can point at this specific -// removal rather than reporting it as an unrecognized setting. -const TerraformRemovedMessage = TerraformRemovedSummary + "\n\n" + TerraformRemovedDetail - -// TerraformRemovedSummary and TerraformRemovedDetail are the two parts of -// TerraformRemovedMessage, for callers that report it as a diagnostic. +// TerraformRemovedConfigMessage and TerraformRemovedEnvMessage are the error text +// shown when a bundle pins the removed Terraform deployment engine via +// bundle.engine or DATABRICKS_BUNDLE_ENGINE respectively. "terraform" is still +// recognized as a value so we can point at this specific removal rather than +// reporting it as an unrecognized setting. +const ( + TerraformRemovedConfigMessage = TerraformRemovedSummary + "\n\n" + TerraformRemovedConfigDetail + TerraformRemovedEnvMessage = TerraformRemovedSummary + "\n\n" + TerraformRemovedEnvDetail +) + +// TerraformRemovedSummary and TerraformRemovedConfigDetail are the two parts of +// TerraformRemovedConfigMessage, for callers that report it as a diagnostic. const TerraformRemovedSummary = `the Terraform deployment engine has been removed in Databricks CLI v1.20.0` -const TerraformRemovedDetail = `Remove the "bundle.engine" setting (or set it to "direct") to deploy with the direct engine; existing Terraform state is migrated automatically. To keep using Terraform, revert to Databricks CLI v1.19.x. +const ( + TerraformRemovedConfigDetail = `Remove the "bundle.engine" setting (or set it to "direct") to deploy with the direct engine; ` + terraformRemovedHint + TerraformRemovedEnvDetail = `Unset the ` + EnvVar + ` environment variable (or set it to "direct") to deploy with the direct engine; ` + terraformRemovedHint +) + +const terraformRemovedHint = `existing Terraform state is migrated automatically. To keep using Terraform, revert to Databricks CLI v1.19.x. See https://docs.databricks.com/dev-tools/bundles/direct for details` // SourceDefault is the Source of an EngineSetting that neither the bundle config diff --git a/bundle/config/validate/validate_engine.go b/bundle/config/validate/validate_engine.go index 948e21e00ee..6ebd53df50e 100644 --- a/bundle/config/validate/validate_engine.go +++ b/bundle/config/validate/validate_engine.go @@ -54,7 +54,7 @@ func (v *validateEngine) Apply(_ context.Context, b *bundle.Bundle) diag.Diagnos return diags.Append(diag.Diagnostic{ Severity: diag.Error, Summary: engine.TerraformRemovedSummary, - Detail: engine.TerraformRemovedDetail, + Detail: engine.TerraformRemovedConfigDetail, Locations: []dyn.Location{loc}, }) } diff --git a/cmd/bundle/utils/process.go b/cmd/bundle/utils/process.go index aa7ce653a09..55cacbe4655 100644 --- a/cmd/bundle/utils/process.go +++ b/cmd/bundle/utils/process.go @@ -563,7 +563,7 @@ func ResolveEngineSetting(ctx context.Context, b *bundle.Bundle) (engine.EngineS return engine.EngineSetting{}, fmt.Errorf("invalid value %q for bundle.engine (expected %q)", configEngine, engine.EngineDirect) } if parsed == engine.EngineTerraform { - return engine.EngineSetting{}, errors.New(engine.TerraformRemovedMessage) + return engine.EngineSetting{}, errors.New(engine.TerraformRemovedConfigMessage) } source := "bundle.engine setting" v := dyn.GetValue(b.Config.Value(), "bundle.engine") @@ -579,7 +579,7 @@ func ResolveEngineSetting(ctx context.Context, b *bundle.Bundle) (engine.EngineS return engine.EngineSetting{}, err } if envEngine == engine.EngineTerraform { - return engine.EngineSetting{}, errors.New(engine.TerraformRemovedMessage) + return engine.EngineSetting{}, errors.New(engine.TerraformRemovedEnvMessage) } if envEngine != engine.EngineNotSet { return engine.EngineSetting{Type: envEngine, Source: engine.EnvVar + " environment variable"}, nil diff --git a/cmd/bundle/utils/resolve_engine_test.go b/cmd/bundle/utils/resolve_engine_test.go index 1c4250dc4f8..8641d320d98 100644 --- a/cmd/bundle/utils/resolve_engine_test.go +++ b/cmd/bundle/utils/resolve_engine_test.go @@ -52,3 +52,18 @@ func TestResolveEngineSettingInvalidEnvVarIgnoredWhenConfigSet(t *testing.T) { require.NoError(t, err) assert.Equal(t, engine.EngineDirect, result.Type) } + +func TestResolveEngineSettingTerraformEnvVar(t *testing.T) { + ctx := env.Set(t.Context(), engine.EnvVar, "terraform") + b := &bundle.Bundle{Config: config.Root{}} + _, err := ResolveEngineSetting(ctx, b) + assert.EqualError(t, err, engine.TerraformRemovedEnvMessage) +} + +func TestResolveEngineSettingTerraformConfig(t *testing.T) { + // The config takes priority, so it is the setting to remove even if the env var also says terraform. + ctx := env.Set(t.Context(), engine.EnvVar, "terraform") + b := &bundle.Bundle{Config: config.Root{Bundle: config.Bundle{Engine: engine.EngineTerraform}}} + _, err := ResolveEngineSetting(ctx, b) + assert.EqualError(t, err, engine.TerraformRemovedConfigMessage) +}