From a0583c969808d5012cadefb65467f594a5a1cfa0 Mon Sep 17 00:00:00 2001 From: Tim Holm Date: Tue, 12 Aug 2025 16:08:28 +1000 Subject: [PATCH 1/2] remove the default backend from out terraform output. --- engines/terraform/backend.go | 28 ++++++++++++++++++++++++++++ engines/terraform/terraform.go | 7 +++++++ 2 files changed, 35 insertions(+) create mode 100644 engines/terraform/backend.go diff --git a/engines/terraform/backend.go b/engines/terraform/backend.go new file mode 100644 index 000000000..34dc2631c --- /dev/null +++ b/engines/terraform/backend.go @@ -0,0 +1,28 @@ +package terraform + +import ( + "github.com/aws/constructs-go/constructs/v10" + "github.com/aws/jsii-runtime-go" + "github.com/hashicorp/terraform-cdk-go/cdktf" +) + +// NilTerraformBackend prevents cdktf from automatically defining a backend in the output Terraform configuration. +type NilTerraformBackend struct { + cdktf.TerraformBackend +} + +// ToTerraform returns empty config to ensure an undefined backend in the output. +func (t *NilTerraformBackend) ToTerraform() interface{} { + return map[string]interface{}{} +} + +// NewNilTerraformBackend creates a nil backend that prevents the backend field from being defined in the output terraform. +// We have this here as there is no way to disable the backend in cdktf. +// https://github.com/hashicorp/terraform-cdk/issues/2435 +func NewNilTerraformBackend(app constructs.Construct, name *string) *NilTerraformBackend { + backend := &NilTerraformBackend{} + + cdktf.NewTerraformBackend_Override(backend, app, jsii.String("nil"), name) + + return backend +} diff --git a/engines/terraform/terraform.go b/engines/terraform/terraform.go index dba2f9ec4..c47675a64 100644 --- a/engines/terraform/terraform.go +++ b/engines/terraform/terraform.go @@ -10,6 +10,7 @@ import ( "slices" "strings" + "github.com/aws/constructs-go/constructs/v10" "github.com/aws/jsii-runtime-go" random "github.com/cdktf/cdktf-provider-random-go/random/v11/provider" "github.com/cdktf/cdktf-provider-random-go/random/v11/stringresource" @@ -223,12 +224,18 @@ func (tf *TerraformDeployment) resolveTokensForModule(intentName string, resourc return nil } + func NewTerraformDeployment(engine *TerraformEngine, stackName string) *TerraformDeployment { app := cdktf.NewApp(&cdktf.AppConfig{ Outdir: jsii.String(engine.outputDir), }) + // stack := NewTerraformStackSansBackend(app, jsii.String(stackName)) + stack := cdktf.NewTerraformStack(app, jsii.String(stackName)) + // Create a new nil backend for the stack + NewNilTerraformBackend(stack, jsii.String("nil_backend")) + random.NewRandomProvider(stack, jsii.String("random"), &random.RandomProviderConfig{}) stackId := stringresource.NewStringResource(stack, jsii.String("stack_id"), &stringresource.StringResourceConfig{ From c3092bfa090c921a8289c39b14b42529d27f559f Mon Sep 17 00:00:00 2001 From: Tim Holm Date: Tue, 12 Aug 2025 16:12:09 +1000 Subject: [PATCH 2/2] remove old comment. --- engines/terraform/terraform.go | 3 --- 1 file changed, 3 deletions(-) diff --git a/engines/terraform/terraform.go b/engines/terraform/terraform.go index c47675a64..96f7554cb 100644 --- a/engines/terraform/terraform.go +++ b/engines/terraform/terraform.go @@ -10,7 +10,6 @@ import ( "slices" "strings" - "github.com/aws/constructs-go/constructs/v10" "github.com/aws/jsii-runtime-go" random "github.com/cdktf/cdktf-provider-random-go/random/v11/provider" "github.com/cdktf/cdktf-provider-random-go/random/v11/stringresource" @@ -224,12 +223,10 @@ func (tf *TerraformDeployment) resolveTokensForModule(intentName string, resourc return nil } - func NewTerraformDeployment(engine *TerraformEngine, stackName string) *TerraformDeployment { app := cdktf.NewApp(&cdktf.AppConfig{ Outdir: jsii.String(engine.outputDir), }) - // stack := NewTerraformStackSansBackend(app, jsii.String(stackName)) stack := cdktf.NewTerraformStack(app, jsii.String(stackName))