Releases: cloudposse/atmos
v1.152.1
v1.152.0
Standardize Help and Usage content for all commands and sub commands @samtholiya (#914)
what
- Standardize Help and Usage content for all commands and sub commands
- Every command has intuitive display help and usage
why
- More consistent command-line interface with improved error handling and messaging
v1.151.0
Add `.editorconfig` validation @samtholiya (#896)
what
- Added functionality to
atmos validate
to validate against the.editorconfig
file if it is defined - Integrated the
editorconfig-checker
library to perform the validation - Updated docs
why
- The change ensures that the
.editorconfig
file is validated, which helps maintain consistency in code formatting across teams. - By incorporating
editorconfig-checker
, the validation process becomes more comprehensive, ensuring that both OPA/JSON schemas and editor configuration are correct - This update was made to improve development workflow by catching formatting issues early during the validation process
Add Support for Testing Golden Snapshots @osterman (#939)
what
- Generate snapshots locally & commit them with the
-regenerate-snapshots
argument - Test for changes by comparison golden snapshots with output
- Support TTY emulation (pty)
- Add support for
!not
tag to negate conditions - Add a JSON schema for the test cases (to avoid silent failures)
why
- Too hard to add thorough tests for command line invocations
v1.150.0
Add logs level validation on the command line @Cerebrovinny (#946)
what
- Add logs level validation on the command line, e.g
atmos describe affected --logs-level=Trace
why
- Validate the logs level specified in the
--logs-level
flag in addition to logs level configured inatmos.yaml
or set in the environment variableATMOS_LOGS_LEVEL
, e.g.ATMOS_LOGS_LEVEL=Trace atmos terraform plan vpc --stack dev
v1.149.0
Update `!terraform.output` and `atmos.Component` functions @aknysh (#944)
what
- Improve
!terraform.output
YAML function - Improve
atmos.Component
template function
why
-
When executing
!terraform.output
andatmos.Component
functions, honor thecomponents.terraform.init_run_reconfigure
setting inatmos.yaml
. If it's set totrue
, add the-reconfigure
flag to theterraform output
command when executing it to get the component outputs. This prevents an issue when you use the functions to retrieve the outputs of the same component from many different stacks (without using the-reconfigure
flag, Terraform detects that the backend configuration has changed and complains about it) -
Use YQ expressions to retrieve items from complex output types
To retrieve items from complex output types such as maps and lists, or do any kind of filtering or querying,
you can utilize YQ expressions.For example:
- Retrieve the first item from a list
subnet_id1: !terraform.output vpc .private_subnet_ids[0]
- Read a key from a map
username: !terraform.output config .config_map.username
Examples
components: terraform: my_lambda_component: vars: vpc_config: # Output of type list subnet_ids: !terraform.output vpc private_subnet_ids # Use a YQ expression to get an item from the list subnet_id1: !terraform.output vpc .private_subnet_ids[0] # Output of type map config_map: !terraform.output config {{ .stack }} config_map # Use a YQ expression to get a value from the map username: !terraform.output config .config_map.username
references
v1.148.1
add stores and hooks
## whatAtmos now supports the ability to use stores
to share data among components as well as external sources.
- Add the concept of stores for reading shared data
- Add the concept of hooks for writing data to stores after
terraform apply
- Add a new store for artifactory
- Add a new store for AWS SSM Parameter Store
why
When decomposing large terraform modules (terraliths) into smaller components with a smaller blast radius, it often brings a need to share data (outputs) of one component in another component. Previously atmos supported the !terraform.output
and other data sources for this purpose, but the performance and security context made this task difficult. As a result, we implemented stores and [hooks] to solve this problem.
references
v1.148.0
Colorize `atmos describe` commands output when TTY is attached @Cerebrovinny (#919)
what
- Colorize
atmos describe
commands output when TTY is attached - Added syntax highlighting configuration for terminal outputs
- Introduced customizable settings for terminal display, including line numbers and color styles
- Enhanced configuration options for YAML and JSON output formatting
why
- Improve UX
test
v1.147.0
Validate Atmos Log Levels @Cerebrovinny (#930)
what
- Validate Atmos Log Levels
- Error if invalid log level is set via the
ATMOS_LOGS_LEVEL
ENV variable or inatmos.yaml
why
- Don't accept invalid log levels
v1.146.3
🚀 Enhancements
Improve `atmos vendor pull` error messages @samtholiya (#940)
what
- Improve
atmos vendor pull
error messages - Improved error messaging for vendor configuration, providing clearer guidance when vendoring is not set up
- Enhanced error message includes a link to vendoring setup documentation
why
- Old error message was not helpful
v1.146.2
🚀 Enhancements
[Vendor] Print error message when an error occurs during installation of the last vendored component @ohaibbq (#936)
what
- Add an error message to the output of
atmos vendor pull
for the last component in a vendor manifest
why
- Improved package installation error reporting by displaying more detailed error messages during the installation process.