github cloudposse/atmos v1.202.1

4 hours ago
Auto-detect blog post releases at build time @osterman (#1902)

what

  • Modified the blog-release-data Docusaurus plugin to compute release versions dynamically at build time using git
  • Blog posts without explicit release frontmatter now automatically resolve to their release version
  • Respects manual frontmatter overrides (highest precedence)

why

The changelog was displaying recently released features as "Unreleased" because the plugin only read from blog post frontmatter. By detecting releases during the build process, we eliminate timing issues and ensure the website always shows accurate release information.

references

  • Fixes changelog showing released changes (v1.201.0, v1.202.0) as "Unreleased"

Summary by CodeRabbit

  • New Features

    • Blog posts gain automatic release detection (frontmatter override → VCS-derived stable tag → "unreleased" fallback).
    • Release associations are populated in a global release map and exposed to UI components for consistent version-aware grouping and filtering.
    • Changelog/timeline grouping now uses the global release map for more accurate release-based organization.
  • Chores

    • No public plugin API changes.

✏️ Tip: You can customize this high-level summary in your review settings.

docs: Improve vendoring docs intro and messaging @osterman (#1888)

what

  • Problem-first intro: "When your infrastructure depends on external modules..." instead of feature-focused messaging
  • Concrete benefits: git diff visibility, audit trails, emergency patching (instead of abstract "standardizes" language)
  • New "Why Vendor?" section explaining explicit vs implicit vendoring philosophy
  • Use cases rewritten with concrete scenarios (compliance reviews, security patches, deployment reliability) instead of enterprise jargon
  • Link to design-patterns page for full philosophy and details

why

User feedback indicated the vendoring docs don't effectively "sell" the value before diving into technical details. Readers looking for information about vendoring use cases couldn't find compelling reasons to adopt the pattern without watching videos or reading external resources. The design-patterns page does this better, so we aligned the main docs with that approach.

references

Addressing user feedback: "I have been reading about Atmos vendoring and wanted to check if there are any video demos that go over the use cases etc"

Summary by CodeRabbit

  • Documentation
    • Reorganized vendoring documentation with enhanced rationale and concrete benefits
    • Added practical guidance for version management patterns and best practices
    • Improved navigation through restructured content and cross-references to related resources

✏️ Tip: You can customize this high-level summary in your review settings.

🚀 Enhancements

Fix ATMOS_IDENTITY=false not working (issue #1898) @osterman (#1900)

what

  • Fixed ATMOS_IDENTITY=false and --identity=false not being recognized as a way to disable authentication
  • Added normalizeIdentityValue() helper to convert "false", "0", "no", "off" to internal disabled sentinel
  • Added IsDisabled() method to IdentitySelector for checking if authentication is disabled
  • Added comprehensive tests for identity flag normalization

why

When ATMOS_IDENTITY=false is set via environment variable or --identity=false is passed as a flag, the value "false" was being treated as a literal identity name instead of being normalized to the internal __DISABLED__ sentinel value. This caused auth validation to fail with "Identity specified was not found in the auth config." Users now have a clear way to disable authentication.

references

Closes #1898

Summary by CodeRabbit

  • New Features

    • Enhanced identity flag handling to recognize various representations of disabled state (false, 0, no, off in any case variation).
    • Added capability to check if authentication has been explicitly disabled.
  • Tests

    • Added comprehensive test coverage for identity flag normalization and disabled state detection across multiple scenarios.

✏️ Tip: You can customize this high-level summary in your review settings.

fix: Restore terraform CLI flags after registry migration @goruha (#1896)

what

  • Restored several terraform CLI flags that were broken after the command registry migration in v1.202.0
  • Added missing flags to the terraform flag registry in cmd/terraform/flags.go
  • Registered command-specific flags only on the commands that use them (matching pre-migration behavior)
  • Fixed flag value parsing: flags are now properly read from Viper and applied to ConfigAndStacksInfo
  • Added comprehensive test coverage for flag parsing and application

Fixed Flags

Flag Description
--skip-init Skip terraform init before running command
--auto-generate-backend-file Override auto_generate_backend_file setting from atmos.yaml
--deploy-run-init Override deploy_run_init setting from atmos.yaml
--init-run-reconfigure Override init_run_reconfigure setting from atmos.yaml
--init-pass-vars Pass the generated varfile to terraform init (OpenTofu feature)
--planfile Path to a terraform plan file to use
--skip-planfile Skip writing the plan to a planfile

Flag Availability by Command

The --skip-init flag is available on all terraform commands.

The following flags are registered only on the commands that use them:

Command Available Flags
init --auto-generate-backend-file, --init-run-reconfigure, --init-pass-vars
workspace --auto-generate-backend-file, --init-run-reconfigure
plan --auto-generate-backend-file, --init-run-reconfigure, --skip-planfile
apply --auto-generate-backend-file, --init-run-reconfigure, --planfile
deploy --auto-generate-backend-file, --init-run-reconfigure, --deploy-run-init, --planfile

why

During the terraform command registry migration in v1.202.0, these flags had two issues:

  1. Flag registration: Flags were registered in the old parsing code but not in the new flag registry, causing "unknown flag" errors
  2. Flag value propagation: Even when flags were recognized, their values weren't being properly applied to the execution context, causing them to be silently ignored

This broke CI/CD pipelines that relied on these flags for controlling Atmos behavior.

Technical Changes

  • cmd/terraform/flags.go: Added BackendExecutionFlags() for command-specific flags
  • cmd/terraform/options.go: Added fields to TerraformRunOptions and parsing in ParseTerraformRunOptions()
  • cmd/terraform/utils.go: Updated applyOptionsToInfo() to transfer flag values to ConfigAndStacksInfo
  • cmd/terraform/options_test.go: Added comprehensive tests for flag parsing and application

references

  • Fixes regression introduced in version 1.202.0 (PR #1813)

Summary by CodeRabbit

  • New Features

    • Restored/added Terraform CLI flags: auto-generate-backend-file, init-run-reconfigure, planfile, skip-planfile, skip-init, init-pass-vars, deploy-run-init across init/plan/apply/deploy/workspace.
  • Documentation

    • Published blog post documenting restored Terraform CLI flags and usage.
  • Tests

    • Added extensive unit/integration and CLI tests (including skip-init behavior and flag recognition across commands).
  • Chores

    • Updated help output snapshots, test fixtures, and bumped dependency versions.

✏️ Tip: You can customize this high-level summary in your review settings.

feat: Display ErrorBuilder enrichments in early startup errors @osterman (#1892)

what

  • Added structured plain text error formatting to display ErrorBuilder enrichments (hints, explanations, context) even when the markdown renderer is not initialized
  • Fixes profile not found errors during config loading to show which profile is missing and how to configure it

why

  • Early startup errors (before config is loaded) were falling back to bare plain text output that only showed the sentinel error message
  • Rich error information from ErrorBuilder (hints, explanations, context) was being lost because the markdown renderer wasn't initialized yet
  • This made errors like "Error: profile not found" unhelpful as they didn't tell users which profile was missing or how to fix it

references

  • Improves user experience for all early startup errors that use the ErrorBuilder pattern
  • Particularly beneficial for profile configuration errors showing profile name, search paths, and actionable hints

Summary by CodeRabbit

  • Bug Fixes
    • Improved error output when rich rendering is unavailable: displays structured sections for explanations, hints, and contextual key/value details while preserving legacy plain output and a helpful default title.
  • Tests
    • Added tests validating enriched error formatting, plain-error fallback, and default title behavior.

✏️ Tip: You can customize this high-level summary in your review settings.

Don't miss a new atmos release

NewReleases is sending notifications on new releases.