github cloudposse/atmos v1.228.0-rc.4

pre-release7 hours ago
feat(terraform): declarative defaults for lock/concurrency CLI flags @osterman (#2992) ## what
  • Adds a flags: block that sets defaults for terraform CLI execution flags — lock_timeout, lock, parallelism, refresh, compact_warnings — settable globally in atmos.yaml, at the stack level (root-level terraform: block), and per component, with field-level merge across all three layers.
  • Atmos only injects a flag into subcommands that actually support it (e.g. terraform import gets only lock/lock_timeout; apply <planfile> never gets -refresh, since Terraform rejects it there; terraform test gets none).
  • An explicit CLI-typed flag (e.g. atmos terraform plan vpc -s dev -- -lock-timeout=30s) always wins over any declared default.
  • Adds ATMOS_COMPONENTS_TERRAFORM_FLAGS_* env var overrides for the global default, regenerates the atmos.yaml JSON schema, hand-extends the stack-config JSON schema, and documents the new block on the Terraform configuration page plus plan/apply/destroy/refresh/import command docs.
  • Includes a changelog post and roadmap entry.

why

  • Terraform/OpenTofu's own -lock-timeout default is 0s (fail immediately on state-lock contention), which caused avoidable failures whenever concurrent pipelines touched the same component's state around the same time. There was previously no declarative way to set a longer retry window — only a raw CLI pass-through flag that had to be retyped on every single invocation.
  • Declaring a default once (fleet-wide, per stack, or per component) removes that repeated manual step and the class of flaky-looking pipeline failures it caused.

references

Summary by CodeRabbit

  • New Features

    • Added declarative Terraform/OpenTofu CLI flag defaults for locking, timeouts, parallelism, refresh, and compact warnings.
    • Configure flags globally, per stack, or per component with layered precedence.
    • Added environment-variable support for Terraform flag overrides.
    • Explicit command-line flags take precedence over configured defaults.
  • Bug Fixes

    • Invalid or misspelled Terraform flag names and values now produce clear errors.
    • Flag settings are preserved and merged across inheritance and overrides.
  • Documentation

    • Added configuration guidance, environment-variable references, examples, and command-specific support details.
feat(ci): startup banner for CI/Pro status and legacy-action detection @osterman (#3004) ## what
  • Print a short status banner at startup whenever Atmos detects it's running inside a CI provider: the Atmos version/platform, whether Native CI mode (ci.enabled) is on or off, and whether Atmos Pro is configured.
  • Detect legacy cloudposse/github-action-atmos-* marketplace actions (via GITHUB_ACTION_REPOSITORY) and emit a warning nudging migration to Native CI.
  • New pkg/ci/startup package holds the decision logic (kept out of cmd//internal/exec per repo convention); pkg/ci/providers/github gained the legacy-action env-var check.

why

  • Misconfiguration (forgetting ci.enabled: true, or running without a Pro workspace configured) was previously silent until something failed downstream — this surfaces it immediately in CI logs.
  • Users still on the older marketplace actions have no signal that Native CI exists or that they should migrate.

references

  • N/A

Summary by CodeRabbit

  • New Features

    • Added automatic CI startup status messages showing the current Atmos version.
    • Displays whether Native CI and Atmos Pro capabilities are enabled.
    • Warns when running through a legacy GitHub Action integration and recommends migrating to Native CI.
    • Startup information appears automatically for applicable CI commands.
    • Status output remains hidden for help, completion, and non-CI commands.
  • Documentation

    • Added documentation describing the CI startup status banner and migration guidance.

Don't miss a new atmos release

NewReleases is sending notifications on new releases.