-
Notifications
You must be signed in to change notification settings - Fork 0
Update dependency cloudposse/atmos to v1.204.0 #53
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
renovate
wants to merge
1
commit into
master
Choose a base branch
from
renovate/cloudposse-atmos-1.x
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
7f38c4d to
c5e394b
Compare
c5e394b to
4995934
Compare
4995934 to
b2f36f0
Compare
b2f36f0 to
0118e4c
Compare
0118e4c to
1054e04
Compare
1054e04 to
3a2767f
Compare
3a2767f to
8fd79a7
Compare
8fd79a7 to
110e70b
Compare
110e70b to
4df6347
Compare
4df6347 to
e417521
Compare
e417521 to
3dc296f
Compare
3dc296f to
03866bc
Compare
03866bc to
2edc9fc
Compare
2edc9fc to
61c52ba
Compare
61c52ba to
aac9c8a
Compare
2f5aeb5 to
f924a39
Compare
f924a39 to
21f89ec
Compare
21f89ec to
61f3dc1
Compare
61f3dc1 to
1a61ee4
Compare
1a61ee4 to
8633261
Compare
8633261 to
d28c1ff
Compare
d28c1ff to
5b77c83
Compare
5b77c83 to
b604a71
Compare
b604a71 to
8d2e4ed
Compare
8d2e4ed to
f572514
Compare
f572514 to
4411fc4
Compare
4411fc4 to
38b8d5c
Compare
38b8d5c to
a8e3622
Compare
a8e3622 to
1add709
Compare
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
v1.166.0→v1.204.0Release Notes
cloudposse/atmos (cloudposse/atmos)
v1.204.0Compare Source
feat: Improve source provisioner UX with spinners and interactive delete @osterman (#1965)
what
vendorToTarget()PromptForConfirmation()topkg/flags/interactive.gofor reusable destructive action confirmation prompts--forceflagwhy
These changes improve UX consistency across the CLI by providing:
references
Related to source provisioner improvements for better developer experience with JIT vendoring.
Summary by CodeRabbit
New Features
Tests
Documentation
✏️ Tip: You can customize this high-level summary in your review settings.
fix: announcement bar responsive wrapping @osterman (#1966)
what
why
references
website/node_modules/@​docusaurus/theme-classic/src/theme/AnnouncementBar/styles.module.cssSummary by CodeRabbit
✏️ Tip: You can customize this high-level summary in your review settings.
docs: nest role_arn under assume_role @kyledecot (#1963)
what
Fixes minor error w/ docs so that
role_arnis properly nested underassume_role.why
Docs incorrectly had
role_arnat the top-level ofs3backend configuration.references
https://developer.hashicorp.com/terraform/language/backend/s3
Summary by CodeRabbit
Release Notes
assume_rolestructure for specifying IAM role access.✏️ Tip: You can customize this high-level summary in your review settings.
feat: Add source provisioning example @osterman (#1962)
what
examples/source-provisioning/demonstrating the source provisioner feature for Just-in-Time component vendoringwhy
references
Summary by CodeRabbit
✏️ Tip: You can customize this high-level summary in your review settings.
docs: refactor terraform usage page @osterman (#1952)
what
terraform usage.mdxfrom 871 to 149 lines into a focused overview pageterraform-plan,terraform-apply,terraform-deploy, andterraform-destroycommand pageswhy
The terraform usage page served as both a landing page and comprehensive reference, resulting in massive duplication. Multi-component operations documentation now lives in individual command pages where it's directly relevant, improving maintainability and following the pattern used by other command groups like
describe.references
Issue: Terraform usage page was not refactored after subcommands were broken out into separate pages.
Summary by CodeRabbit
✏️ Tip: You can customize this high-level summary in your review settings.
feat: Add data-driven roadmap slide deck with pagination @osterman (#1953)
what
/slides/roadmapthat visualizes the Atmos product roadmapwhy
references
website/src/data/roadmap.jswebsite/src/components/SlideDeck/Summary by CodeRabbit
New Features
Style
Other
✏️ Tip: You can customize this high-level summary in your review settings.
feat: stack name identity with zero-config filename fallback @osterman (#1934)
what
ProcessStacksto recognize the stack manifestnamefield when matching stacksnamefieldwhy
Issue 1: Manifest name not recognized
When a stack manifest has
name: "my-explicit-stack", users expect to use that name in commands:Previously this failed with "Could not find the component vpc in the stack".
Issue 2: Multiple names worked (incorrect)
After the initial fix, ALL of these worked for the same stack:
This is incorrect - a stack should have exactly ONE valid identifier.
Issue 3: Misleading error message
When using an invalid stack name (e.g., filename when explicit name exists), the error said "invalid component" instead of "invalid stack":
New: Zero-config for newcomers
When no
name,name_template, orname_patternis configured, stacks are now identified by their filename. This lets newcomers get started without any naming configuration:# Just works! atmos terraform plan vpc -s prodStack Name Identity Rule
Each stack has exactly ONE valid identifier based on precedence:
namefield in manifestname_templateresultname_patternresultEvidence
atmos list stacks - shows canonical names
Note:
my-legacy-prod-stackis shown (explicit name), notlegacy-prod(filename).atmos describe component vpc -s no-name-prod - filename works when no naming config
{ "atmos_component": "vpc", "atmos_stack": "no-name-prod", "atmos_stack_file": "no-name-prod", "stack": "no-name-prod", "workspace": "no-name-prod" }atmos describe component vpc -s my-legacy-prod-stack - explicit name works
{ "atmos_component": "vpc", "atmos_stack": "my-legacy-prod-stack", "atmos_stack_file": "legacy-prod", "atmos_manifest": "legacy-prod", "stack": "my-legacy-prod-stack", "workspace": "my-legacy-prod-stack" }Note:
atmos_stackismy-legacy-prod-stack(explicit name), whileatmos_stack_fileshowslegacy-prod(the actual filename).atmos describe component vpc -s legacy-prod - FAILS with helpful suggestions
This is correct -
legacy-prod.yamlhasname: my-legacy-prod-stack, so only that identifier is valid. The error now correctly identifies this as an invalid stack (not component) and provides hints suggesting the correct name and how to list available stacks.atmos terraform plan vpc -s legacy-prod - FAILS with helpful suggestions
Changes
errors/errors.go: AddErrInvalidStacksentinel errorinternal/exec/utils.go: Enforce single-identity matching infindComponentInStacks; return helpful error with suggestion when filename is used for stack with explicit name; enable filename fallback inprocessStackContextPrefixinternal/exec/stack_manifest_name_test.go: Add tests for identity enforcement, filename fallback, and improved error messagestests/test-cases/stack-manifest-name.yaml: Add CLI smoke tests with golden snapshots for stack name identitypkg/datafetcher/schema/atmos/manifest/1.0.json: Add schema documentation fornamefielddocs/prd/stack-name-identity.md: PRD documenting the specification (status: Implemented)website/blog/2026-01-06-stack-name-identity.mdx: Blog post documenting the changeswebsite/src/data/roadmap.js: Add "Filename-based stack identity" to DX roadmapReferences
Summary by CodeRabbit
New Features
Documentation
Tests
Chores
✏️ Tip: You can customize this high-level summary in your review settings.
chore: Upgrade Docusaurus from 3.6.3 to 3.9.2 @osterman (#1926)
what
why
The upgrade includes support for DocSearch v4 with AI-powered search features, improved i18n configuration options for multi-domain deployments, React 19 compatibility fixes, and new build APIs.
references
Summary by CodeRabbit
New Features
Documentation
Chores
✏️ Tip: You can customize this high-level summary in your review settings.
feat: Add robots.txt for search engine indexing @osterman (#1943)
what
why
references
10F61B9Summary by CodeRabbit
✏️ Tip: You can customize this high-level summary in your review settings.
Add generate section inheritance and auto-generation support @osterman (#1878)
what
generatesection to stack config inheritance pipeline with full support for base components, component-level overrides, and component overridesatmos terraform generate filescommand with--all,--dry-run, and--cleanflags for generating auxiliary configuration filesauto_generate_files: trueconfiguration option to automatically generate files during terraform operations.json,.yaml,.ymlfiles serialize in their respective formats,.tfand.hclfiles generate valid HCLauto_generate_filesconfiguration fieldwhy
Teams often need to generate auxiliary configuration files alongside Terraform components—files like
.tool-versions,terragrunt.hclshims for gradual migration, or environment-specific locals. This feature brings file generation directly into Atmos's declarative configuration model, maintaining the principle that infrastructure configuration should be fully described in YAML and reproducible from stack manifests. The inheritance support ensures teams can define common generate patterns in base components while allowing component-specific customization.references
osterman/generate-section-prdSummary by CodeRabbit
New Features
generatesections in stack configurations.atmos terraform generate filescommand to automatically create auxiliary configuration files.auto_generate_filesconfiguration.Documentation
Tests
✏️ Tip: You can customize this high-level summary in your review settings.
feat(auth): add PRD for native Okta authentication identity @RoseSecurity (#1924)
what
Add PRD for native Okta authentication as a first-class identity provider in Atmos. Unlike the existing SAML-based integration, this introduces dedicated
okta/*providers enabling:AssumeRoleWithWebIdentity)~/.config/atmos/okta/)why
Test plan
references
Summary by CodeRabbit
✏️ Tip: You can customize this high-level summary in your review settings.
feat: Implement unified import adapter registry @osterman (#1897)
what
why
references
docs/prd/import-adapter-registry.mdSummary by CodeRabbit
New Features
Tests
Documentation
Chores
✏️ Tip: You can customize this high-level summary in your review settings.
feat: Add multiple terraform output formats for CI integration @osterman (#1885)
Summary
internal/exec/to newpkg/terraform/output/packageComponentDescriberinterface to eliminate circular dependencyWhat Changed
Verification
make buildpassesmake lintpasses (0 issues)Summary by CodeRabbit
New Features
Tests
Documentation
✏️ Tip: You can customize this high-level summary in your review settings.
feat: Add native Terraform provider caching with XDG support @osterman (#1882)
what
Atmos now automatically caches Terraform providers across all components using the
TF_PLUGIN_CACHE_DIRenvironment variable with XDG-compliant default paths (~/.cache/atmos/terraform/plugins). This feature is enabled by default with zero configuration required, dramatically reducingterraform inittimes and network bandwidth.why
In large Atmos projects with many components, each
terraform initdownloads the same providers repeatedly. For the AWS provider alone, this can mean downloading 300+ MB per component. With provider caching, Atmos downloads each provider version once and reuses it across all components - achieving 10-50x faster init times in testing.references
This implements automatic provider caching with validation for invalid
TF_PLUGIN_CACHE_DIRvalues (empty string or root path) and respects user overrides via environment variables oratmos.yamlconfiguration.Summary by CodeRabbit
New Features
Documentation
Tests
✏️ Tip: You can customize this high-level summary in your review settings.
feat: Create pkg/runner with unified task execution @osterman (#1901)
what
pkg/runnerpackage with unified Task type and CommandRunner interfacewhy
Provides a shared execution layer for both custom commands and workflows, enabling code reuse and consistent task execution patterns across Atmos. Fixes DEV-3005.
references
Closes #DEV-3005
Summary by CodeRabbit
New Features
Breaking Change
Tests
Chores
Documentation
✏️ Tip: You can customize this high-level summary in your review settings.
🚀 Enhancements
Fix markdown rendering offset bug in toast messages @osterman (#1968)
what
trimLeftSpaces()function to properly handle leading space trimming when Glamour wraps spaces in ANSI escape codestoastMarkdown()andrenderInlineMarkdownWithBase()to use ANSI-aware trimmingwhy
Glamour wraps spaces in ANSI codes when color is enabled. The previous code used
strings.TrimLeft()which isn't ANSI-aware and failed to remove leading spaces, causing inconsistent indentation in multi-line markdown output.references
Fixes: Markdown rendering with inconsistent bullet list indentation in terminal UI messages
Summary by CodeRabbit
Bug Fixes
User Experience
Tests
✏️ Tip: You can customize this high-level summary in your review settings.
feat: Automatic toolchain integration for custom commands and workflows @osterman (#1958)
what
New Feature: Automatic Toolchain Integration
.tool-versionsfile.tool-versionsBug Fixes (Toolchain Bootstrap)
atmos bootstrapfailures for AWS CLI, jq, gum, and replicated by removing unconditional version prefixversion_prefixdefaults to empty string, not "v"ErrHTTP404in 404 errors to enable version fallback mechanismfiles.srcfor tools like Helm that use{{.OS}}-{{.Arch}}pathsresolveVersionOverridesfor version-specific configsdarwin_allpattern support for universal macOS binariesBug Fixes (Workflows)
--stackflag is not provided. Previously, runningatmos workflow <name>would fail with "stack base path must be provided" even for simple shell workflows that don't use stacks. Now stacks are only validated when--stackis explicitly passed.Bug Fixes (Batch Install UX)
SkipToolVersionsUpdateoption to prevent duplicate entries when bothInstallSingleToolandupdateToolVersionsFileare calledShowInstallDetailsoption to show only simple "Installed X" messages in batch mode, while single-tool mode retains verbose output (path, size, registered)showProgressBarparameter -RunInstallnow acceptsshowProgressBarto control spinner visibility for custom command installsBug Fixes (Error Handling)
b.erris nil by using cause directly as the stored errorGetAllHints()atmos.yamltoolchain installdirectlyDocumentation & Examples
examples/toolchain/with working examples showing:.tool-versionsfile with tool dependenciesopentofu: "^1.10.0"constraint^1.7.0,~> 4.40.0)Test Coverage
DependencyProviderinterface for testabilityensureToolchainDependencies()covering all code paths.tool-versionsdirectory error pathTestWorkflowWithoutStacksConfig- workflows succeed without stacks configTestWorkflowWithStackFlagRequiresStacksConfig- workflows fail when--stackpassed but stacks not configuredTestWorkflowWithStackFlagAndStacksConfigured- workflows succeed when both are presentwhy
Toolchain Integration
Users managing infrastructure often need specific tool versions (terraform, kubectl, helm). The
.tool-versionsfile is a standard way to declare these dependencies (used by asdf, mise). This PR enables Atmos to:.tool-versionsand automatically install required toolsBootstrap Fixes
After PR #1948, multiple tools failed to install during bootstrap because version prefix handling didn't match Aqua's behavior. The code was unconditionally adding a "v" prefix when
version_prefixwas empty, breaking HTTP URLs (AWS CLI expectsAWSCLIV2-2.32.31notAWSCLIV2-v2.32.31).Workflow Conditional Stack Processing
The workflow command was always requiring stacks configuration even when running simple shell workflows that don't reference any stacks. This was because
InitCliConfig(info, true)unconditionally validated stacks. Now the second parameter is set based on whether--stackflag was provided, allowing workflows to run without any stacks configured.Batch Install UX Improvements
The batch installer had several UX issues:
handleInstallSuccessandupdateToolVersionsFilewere writing to.tool-versionswith different keys (e.g., "gum" vs "charmbracelet/gum")Error Handling Robustness
ErrorBuilder.WithCausecould panic if called with nil base error - now handles gracefullyExample Usage
.tool-versions:
Workflow with override:
Component with tool dependency:
references
website/docs/core-concepts/custom-commands/commands.mdxwebsite/docs/core-concepts/workflows/workflows.mdxexamples/toolchain/Summary by CodeRabbit
New Features
Bug Fixes
Documentation
Tests
✏️ Tip: You can customize this high-level summary in your review settings.
fix: Fix backend CRUD issues - create visibility, error messages, and false success bug @osterman (#1960)
what
createcommand not appearing in subcommands list (Use field was wrong)--stackflag with helpful contextErrProvisioningNotConfiguredsentinel error to errors/errors.gowhy
The backend commands had multiple issues:
createsubcommand wasn't visible in help becauseUse: "<component>"doesn't include the command namecreatewithout provisioning configuration would show "Successfully provisioned" even though nothing was done (false success)These fixes ensure the backend commands are discoverable, errors are helpful and actionable, and operations fail-fast with clear context.
references
Summary by CodeRabbit
New Features
Bug Fixes
Tests
Documentation
✏️ Tip: You can customize this high-level summary in your review settings.
fix: Workflow name showing `` in `atmos list workflows` @aknysh (#1964)
what
atmos list workflowscommand showing<no value>for workflow names<no value>why
{{ .name }}but the data extractor uses"workflow"as the key<no value>when the.namefield wasn't found in the dataChanges
cmd/list/workflows.go- Changed default column template from{{ .name }}to{{ .workflow }}to match the extractor's keypkg/list/column/column.go- Added explicit mapping for"workflow"key inbuildTemplateContext()for consistencyTesting
Summary by CodeRabbit
Bug Fixes
New Features
✏️ Tip: You can customize this high-level summary in your review settings.
fix: Workflow command parsing for quoted arguments @aknysh (#1961)
what
-var="key=value"strings.Fields()was used which doesn't handle shell quoting, causing quoted arguments to be passed with literal quote charactersshell.Fields()frommvdan.cc/sh/v3/shellwhich properly parses shell-style quotingwhy
-var="access_roles_enabled=false"were failing with:strings.Fields()splits on whitespace but preserves quote characters, so-var="enabled=false"was passed to Terraform with the literal quotes includedshell.Fields()correctly parses shell quoting and strips quotes, matching the behavior users expectExample
Before (broken):
After (fixed):
Testing
Added comprehensive tests for the fix:
Unit Tests (
internal/exec/workflow_test.go)TestShellFieldsQuoteParsing- verifiesshell.Fields()correctly parses various quoted argument patternsUnit Tests (
internal/exec/workflow_utils_test.go)TestShellFieldsFallback- tests shell parsing with various argument patternsTestExecuteWorkflow_WithQuotedVarFlag- tests-var="key=value"pattern in workflowsTestPrepareStepEnvironment_WithGlobalEnv- tests global env mergingTestExecuteWorkflow_*- multiple tests for stack overrides, dry run, from-step, identity precedenceWorkflow Test Fixtures (
tests/fixtures/scenarios/workflows/stacks/workflows/test.yaml)terraform-var-double-quotes--var="key=value"patternterraform-var-single-quotes--var='key=value'patternterraform-var-multiple- multiple var flagsterraform-var-with-spaces- values containing spacesterraform-var-equals-in-value- values containing=references
pkg/workflow/executor.go:332-337which already had the correct implementationmvdan.cc/sh/v3/shellis already a dependency used in other parts of the codebaseSummary by CodeRabbit
Release Notes
Bug Fixes
Tests
Dependencies
✏️ Tip: You can customize this high-level summary in your review settings.
fix: Fix Aqua registry factory and add darwin_all pattern support @osterman (#1948)
what
why
The installer subpackage refactoring broke registry lookups because defaultRegistryFactory.NewAquaRegistry() was returning nil. Additionally, NewInstaller() wasn't loading configured registries from atmos.yaml, preventing custom registry support. This fix properly injects a working registry factory and loads configuration during initialization.
references
Fixes toolchain registry factory issues from the installer subpackage refactoring work.
🤖 Generated with Claude Code
Summary by CodeRabbit
New Features
Documentation
Tests
Style
✏️ Tip: You can customize this high-level summary in your review settings.
fix(provenance): add regression tests and fix flag inheritance @osterman (#1949)
what
--stack,--verbose, or other existing flags when the type matches--stackas bool when parent has it as string)why
--stackand--verbosethat are defined elsewherereferences
tests/fixtures/scenarios/provenance-advanced/andtests/fixtures/scenarios/flag-inheritance/tests/test-cases/provenance-snapshots.yamlandtests/test-cases/flag-inheritance.yamlSummary by CodeRabbit
New Features
--versionflags independent of the global version flagatmos list componentscommand shows unique components with stack countsConfiguration
list.components,list.instances, andlist.stackspaths✏️ Tip: You can customize this high-level summary in your review settings.
fix: Resolve file-scoped locals in stack configurations @aknysh (#1939)
what
{{ .locals.* }}now correctly resolve to their defined valuesterraform:,helmfile:,packer:) correctly override global localsmetadata.inheritsatmos describe localscommand to inspect and debug locals configurations--stackflag is required - locals are file-scoped, so a specific stack must be specifiedprod-us-east-1) and file paths (e.g.,deploy/prod)Example Output
Stack Locals (by file path or logical name)
The output is in direct stack manifest format - it can be redirected to a file and used as a valid stack manifest:
Component Locals
When a component is specified, the output shows the merged locals available to that component (global + section-specific + component-level + inherited from base components):
Query Specific Values
Component-Level Locals with Inheritance
Components can define their own
locals:section that inherits from base components:Locals resolution order:
Global → Section → Base Component → ComponentManual Testing Results
Test Fixture:
locals-logical-namesStack-level locals (using logical stack name):
cd tests/fixtures/scenarios/locals-logical-names atmos describe locals --stack dev-us-east-1Stack-level locals (using file path):
Same output as above.
Stack-level locals (JSON format):
{ "locals": { "env_prefix": "acme-dev", "full_prefix": "acme-dev-us-east-1", "namespace": "acme" }, "terraform": { "locals": { "backend_bucket": "acme-dev-tfstate", "tf_only": "terraform-specific-dev" } } }Terraform component locals:
Helmfile component locals:
Test Fixture:
locals-component-levelStandalone component with its own locals:
cd tests/fixtures/scenarios/locals-component-level atmos describe locals standalone -s dev-us-east-1Component inheriting from base with locals override (
vpc/dev):Component inheriting from base without locals override (
vpc/standard):