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_REGIONandAWS_DEFAULT_REGIONfrom theEnvironment()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 envwhen region is configured in identity settings - Azure Portal console access support added
- AWS_REGION and AWS_DEFAULT_REGION environment variables now exported from
-
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
kubectlinstead ofkubernetes(extracts binary name from last segment of Aqua package name likekubernetes/kubernetes/kubectl) viaresolveBinaryNamehelper - Pre-flight platform compatibility check: Check
supported_envsfrom Aqua registry before attempting download, providing immediate feedback instead of waiting for HTTP 404 - Arch-only platform matching: Handle Aqua registry
supported_envsentries likeamd64which 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/replicatedwhich 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
kubectlbinary name - Users wasted time waiting for downloads to fail when the tool didn't support their platform
- helm/helm failed on Windows because
amd64insupported_envswas 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_envsfield 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)
## whatUpdates 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.