Skip to content

[Bug] main.tf uses timestamp() in provider default_tags, causing a perpetual non-idempotent diff on every plan #1209

Description

@hman38705

Domain: Reliability
Tier: 🟠 High

Description:

Problem: default_tags { tags = { ... CreatedAt = timestamp() } } applies to every taggable resource created by the AWS provider (main.tf:15-26). Because timestamp() changes on every terraform plan/apply invocation, every taggable resource shows as needing an in-place update on every single run -- this breaks the ability to get a clean terraform plan, used as a CI gate in terraform.yml, and can cause unnecessary resource churn on every deploy.

Implementation: Remove CreatedAt = timestamp() from default_tags; if a creation timestamp is needed, set it once via ignore_changes or a separate non-provider-level tag.

Dependencies:

None

Acceptance Criteria:

  • terraform plan reports no changes on a second consecutive run against unchanged configuration
  • Resource tags no longer include a constantly-changing timestamp
  • The terraform.yml plan-cleanliness CI gate passes consistently

Testing Requirements:

  • Run terraform plan -var-file=environments/dev.tfvars twice in a row against unchanged config and confirm the second run reports 'No changes.'
  • Confirm no resource tag diff includes a CreatedAt/timestamp value on repeated plans.

PR Checklist:

  • Branch is named conventionally (e.g., fix/main-tf-uses-timestamp-in-provider-default-tags).
  • terraform validate passes with zero warnings.
  • Screenshot or log output of the passing validation/plan/CI run is attached to the PR.

Filed from an automated multi-agent codebase audit; every finding was independently fact-checked against the code at audit time.

Metadata

Metadata

Assignees

Labels

Stellar WaveIssues in the Stellar wave programinfrastructureTerraform, AWS, and deployment infrastructurepriority:highreliabilityResilience, recovery, and uptime

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions