Update `providers` and `hooks` sections @aknysh (#1188)
what
- Update
providers
andhooks
sections - Add unit tests
why
- The
providers
andhooks
sections were not inherited from the base components - Now the following configuration is supported
components:
terraform:
component-1:
providers:
aws:
assume_role:
role_arn: "Base component IAM Role ARN"
context:
enabled: true
delimiter: "-"
property_order:
- product
- region
- environment
- name
component-2:
metadata:
inherits:
- component-1
providers:
aws:
assume_role:
role_arn: "Derived component IAM Role ARN"
atmos describe component component-2 -s nonprod --query .providers
returns the correct providers
configuration, deep-merged from the base and derived components
aws:
assume_role:
role_arn: Derived component IAM Role ARN
context:
delimiter: '-'
enabled: true
property_order:
- product
- region
- environment
- name
update !store docs @mcalhoun (#1186)
what
- Update the docs for the
!store
command to reflect the correct parameter order
why
- In the previous version, we had
component
andstack
switched and the docs did not match the implementation
Replace refs to "master" branch, fix "!store" doc formatting @Nuru (#1183)
what
- Replace references to "master" branch with references to "main" branch
why
- Repositories have renamed the default branch to "main", and
edit
references are not redirected
Implement `atmos list values` @Cerebrovinny (#1036)
what
- Add
atmos list values
CLI command to list component values across stacks - Add
atmos list metadata
CLI command to list component metadata across stacks - Add
atmos list settings
CLI command to list component settings across stacks - Update docs
- Add unit tests
why
- Query and filter component configurations across multiple stacks using YQ expressions
- Compare values, metadata, and settings across different environments without having to manually inspect stack files
- Output results in various formats (table, JSON, YAML, CSV, TSV) for easy integration with other tools
Examples
atmos list values
# List all values for a component
atmos list values vpc
# Filter with YQ query
atmos list values vpc --query .vars
# Get specific field across stacks
atmos list values vpc --query .vars.region
# Match specific stacks
atmos list values vpc --stack '*-prod-*'
# Filter specific stacks with query
atmos list values vpc --query .vars.tags --stack '*-ue2-*'
# Include abstract components
atmos list values vpc --abstract
# Output in different formats
atmos list values vpc --format json
atmos list values vpc --format yaml
atmos list values vpc --format csv
atmos list values vpc --format tsv
# Limit number of columns
atmos list values vpc --max-columns 3
atmos list metadata
# List all metadata
atmos list metadata
# Filter with YQ query
atmos list metadata --query .type
# Get specific metadata field
atmos list metadata --query .inherits
# Match specific stacks
atmos list metadata --stack 'dev-*'
# Filter specific stacks with query
atmos list metadata --query .type --stack '*-ue2-*'
# Output as JSON
atmos list metadata --format json
atmos list settings
# List all settings
atmos list settings
# Filter with YQ query
atmos list settings --query .terraform
# Get specific settings field
atmos list settings --query .terraform.backend
# Match specific stacks
atmos list settings --stack 'staging-*'
# Filter specific stacks with query
atmos list settings --query .terraform.backend --stack '*-prod-*'
# Output as YAML
atmos list settings --format yaml