github cloudposse/atmos v1.204.1-rc.6

pre-release6 hours ago
Fix documentation URL redirects and link checker configuration @osterman (#2021) ## what
  • Fixed 9 documentation files with redirecting URLs to canonical forms
  • Updated outdated external documentation links (Docker CLI, freedesktop XDG spec, AWS IAM, GitHub branches)
  • Updated GitHub PR references from /issues/ to /pull/ for #1447 and #1489
  • Added link checker exceptions for expected redirect behaviors (GitHub/CDN/auth redirects)

why

  • Link checker fails on redirect chains; updating to canonical URLs resolves checker failures
  • Ensures documentation references remain valid as external sites reorganize their docs
  • GitHub branch master → main migration in upstream terraform-aws-components
  • Properly configures link checker to allow intentional redirects (auth flows, API aliases, CDN paths)

references

  • Related to fixing broken documentation links identified by automated link checking

Summary by CodeRabbit

  • Documentation

    • Normalized URLs and markdown link formatting across README and docs for consistency and accuracy.
    • Updated several reference links in product requirement docs and added a "Related PRDs" subsection where applicable.
  • Chores

    • Expanded link-checker exclusions to ignore additional redirect patterns and external service URLs to reduce false positives.

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

feat: export AWS_REGION from atmos auth env when configured @osterman (#1955) ## what
  • Export AWS_REGION and AWS_DEFAULT_REGION from the Environment() method of all AWS identities
  • Region is only exported when explicitly configured, not default fallback values
  • Enables external tools (aws cli, direct terraform, etc.) to access region after sourcing atmos auth env

why

When using atmos auth env to export credentials for external tools (aws cli, direct terraform runs), users also need access to the configured region. This completes the credential export for external tool usage.

Note: For atmos commands (atmos terraform plan, etc.), region is automatically injected - no sourcing required.

references

Related to auth environment variable configuration. Blog post and PRD documentation included.

Summary by CodeRabbit

Release Notes

  • New Features

    • AWS_REGION and AWS_DEFAULT_REGION environment variables now exported from atmos auth env when region is configured in identity settings
    • Azure Portal console access support added
  • Documentation

    • Updated profile structure to directory-based format
    • Enhanced authentication configuration documentation for multiple identity types
    • Clarified provider and identity configuration options
  • CLI Changes

    • profile-list command output simplified; removed TYPE column

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

🚀 Enhancements

fix: toolchain error handling, binary naming, and platform detection @aknysh (#2027) ## what
  • Glamour warning suppression: Suppress confusing "Warning: unhandled element" messages from glamour markdown renderer by redirecting stdout during rendering with thread-safe mutex protection
  • Improved HTTP 404 error messages: User-friendly error messages with platform-specific hints and context instead of nested "HTTP request failed: HTTP request failed:" pattern
  • Binary naming fix for 3-segment packages: kubectl correctly named kubectl instead of kubernetes (extracts binary name from last segment of Aqua package name like kubernetes/kubernetes/kubectl) via resolveBinaryName helper
  • Pre-flight platform compatibility check: Check supported_envs from Aqua registry before attempting download, providing immediate feedback instead of waiting for HTTP 404
  • Arch-only platform matching: Handle Aqua registry supported_envs entries like amd64 which mean "any OS with this architecture" (fixes helm/helm on Windows which uses ["darwin", "linux", "amd64"])
  • Platform-specific hints: WSL hints for Windows users, Rosetta 2 hints for macOS arm64 users, Docker suggestions for Linux-only tools on macOS, QEMU hints for Linux arm64 users
  • Non-existent tool error handling: Clear "tool not in registry" error when attempting to install tools that don't exist in any configured registry (e.g., replicatedhq/replicated which exists on GitHub but is not in Aqua registry)

why

  • Users were confused by glamour warnings that appeared in terminal output during error rendering
  • HTTP 404 errors for unsupported platforms were unhelpful and didn't explain why the download failed
  • kubectl binary naming issue broke scripts expecting the kubectl binary name
  • Users wasted time waiting for downloads to fail when the tool didn't support their platform
  • helm/helm failed on Windows because amd64 in supported_envs was treated as an OS name instead of architecture
  • Platform-specific workarounds (WSL, Rosetta, Docker) weren't suggested to users
  • The distinction between "tool not found" and "platform not supported" wasn't clear

references

  • Related to Windows toolchain fixes discovered during cross-platform testing
  • Uses Aqua registry supported_envs field for platform detection
  • Test fixture: tests/fixtures/scenarios/toolchain-aqua-tools/
  • Documentation: docs/fixes/toolchain-error-handling-and-binary-naming.md

Files Changed

Category Files
Error handling errors/errors.go, toolchain/installer/download.go
Platform detection toolchain/installer/platform.go, toolchain/installer/platform_test.go
Registry toolchain/registry/registry.go, toolchain/registry/aqua/aqua.go
Glamour fix pkg/ui/markdown/custom_renderer.go
Tests tests/toolchain_aqua_tools_test.go, toolchain/installer/download_test.go
Test fixture tests/fixtures/scenarios/toolchain-aqua-tools/

Platform Matching Logic

The isPlatformMatch function handles three Aqua registry supported_envs formats:

Format Example Matches
OS only darwin Any architecture on that OS
OS/arch darwin/amd64 Exact OS and architecture
Arch only amd64 Any OS with that architecture

This correctly handles entries like helm's ["darwin", "linux", "amd64"] where amd64 means "Windows amd64 is supported".

Test Coverage

Test Platform Description
TestToolchainAquaTools_KubectlBinaryNaming All Verifies kubectl installed as kubectl NOT kubernetes
TestToolchainAquaTools_InstallAllTools All Installs cross-platform tools; kots on Linux/macOS only
TestToolchainAquaTools_WindowsKotsPlatformError Windows Verifies platform error with WSL hint
TestToolchainAquaTools_NonExistentToolError All Verifies "not in registry" error
TestIsPlatformMatch All Tests OS-only, OS/arch, and arch-only matching
TestIsKnownArch All Tests recognition of Go architecture names
TestBuildPlatformNotSupportedError All Tests error building with hints
TestFormatPlatformError All Tests user-friendly error formatting

Summary by CodeRabbit

  • New Features

    • Pre‑flight platform checks with actionable hints (WSL, Rosetta, Docker, qemu)
    • Improved binary-name resolution for multi‑segment package identifiers
  • Bug Fixes

    • Enriched HTTP 404/download errors with OS/arch context and platform guidance
    • Windows: automatic .exe handling for raw binary URLs
    • Suppressed noisy renderer warnings during output
  • Tests

    • Expanded unit/integration fixtures covering naming, platform matching, and error scenarios
  • Documentation

    • Added guidance for toolchain error handling and binary naming

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

docs: update describe stacks --component-types @kyledecot (#2020) ## what

Updates the help menu for atmos describe stacks ... to denote that the --component-types flag supports packer.

why

Looks like this wasn't updated after Packer support was added.

references

N/A

Summary by CodeRabbit

Documentation

  • Updated the component-types flag help text to include "packer" as an additional supported component type.

✏️ 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.