github cloudposse/atmos v1.170.0

one day ago
Update `providers` and `hooks` sections @aknysh (#1188)

what

  • Update providers and hooks sections
  • Add unit tests

why

  • The providers and hooks 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 and stack 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

Don't miss a new atmos release

NewReleases is sending notifications on new releases.