Releases: cloudposse/atmos
v1.109.0
Expose `ExecuteDescribeComponent` function in `pkg` to make it publicly accessible from other Go programs @aknysh (#801)
what
- Expose
ExecuteDescribeComponent
function inpkg
to make it publicly accessible from other Go programs
why
-
in Go, packages placed inside an
internal
folder are considered private, meaning they can only be accessed within the same module or project and cannot be imported by other external projects, effectively acting as a way to hide implementation details and control the public API surface of the code. Everything inpkg
is public -
The
ExecuteDescribeComponent
function will be used in otherGo
modules to programmatically executeatmos describe component <component> -s <stack>
, similar toExecuteDescribeStacks
(which is already public)
v1.108.0
Filter out empty results from describe stacks @Cerebrovinny (#764)
what
- Introduced a new command-line flag
--include-empty-stacks
to include stacks without components in the output - Enhanced stack processing logic to support filtering based on the new flag
- Changed the default behavior of
atmos describe stacks
to filter empty stacks by default unless user pass the flag--include-empty-stacks
- Added new test cases to validate the behavior of the
ExecuteDescribeStacks
function with empty stacks
why
This was causing stacks with empty results or no components/imports components to be displayed.
Test Results
v1.107.2
🚀 Enhancements
Set Default Schema to Remote Schema @haitham911 (#777)
what
- Set Default Validation Schema to Remote Schema
why
- We should set the default schema to the remote atmos schema so that atmos validate work even if the user does not configure a validation schema
v1.107.1
🚀 Enhancements
Handle empty stack YAML file configurations @haitham911 (#791)
what
- Handle empty stack YAML file configurations
why
atmos validate stacks
should not error on empty stack manifest files
v1.107.0
Add support for custom `atmos terraform shell` prompt @pkbhowmick (#786)
what
- Add support for custom
atmos terraform shell
prompt - Allow specifying custom prompt for
atmos terraform shell
command inatmos.yaml
. SupportsGo
templates
why
- Improve user experience
- Make the prompt customizable
Working demo
With custom prompt:
Without custom prompt:
v1.106.1
Update gettings started, add $schema directive at the top of files @osterman (#769)
what
- Remove unimplemented commands
- $schema directive at the top of files
why
- Not everyone will have $schema validation enabled by default in their editor
Enhance `WriteToFileAsJSON` with pretty-printing support @RoseSecurity (#783)
what
- Used the
ConvertToJSON
utility withjson.MarshalIndent
to produce formatted JSON - Indentation is set to two spaces (" ") for consistent readability
why
-
This PR improves the
WriteToFileAsJSON
function by introducing pretty-printing for JSON outputs. Previously, the function serialized JSON using a compact format, which could make the resulting files harder to read. With this change, all JSON written by this function will now be formatted with indentation, making it easier for developers and users to inspect and debug the generated files -
This specifically addresses #778 , which previously rendered auto-generated backends as:
{
"terraform": {
"backend": {
"s3": {
"acl": "bucket-owner-full-control",
"bucket": "my-tfstate-bucket",
"dynamodb_table": "some-dynamo-table",
"encrypt": true,
"key": "terraform.tfstate",
"profile": "main",
"region": "us-west-2",
"workspace_key_prefix": "something"
}
}
}
}
With this addition, the output appears as:
{
"terraform": {
"backend": {
"s3": {
"acl": "bucket-owner-full-control",
"bucket": "my-tfstate-bucket",
"dynamodb_table": "some-dynamo-table",
"encrypt": true,
"key": "terraform.tfstate",
"profile": "main",
"region": "us-west-2",
"workspace_key_prefix": "something"
}
}
}
}
references
- Stack Overflow
- Closes #778
v1.106.0
Add support for vendor path setting in `atmos.yaml` @Cerebrovinny (#737)
what
- Add support for vendor path setting in
atmos.yaml
- Add support for vendor files under folders or multiple vendor files to be processed in lexicographic order
why
- Users now should be able to use new variable vendor in
atmos.yaml
and process different vendor files at different locations
v1.105.0
Clean Terraform workspace before executing `terraform init` in the `atmos.Component` template function @aknysh (#775)
what
- Clean Terraform workspace before executing
terraform init
in theatmos.Component
template function
why
When using multiple backends for the same component (e.g. separate backends per tenant or account), and if an Atmos command was executed that selected a Terraform workspace, Terraform will prompt the user to select one of the following workspaces:
1. default
2. <the previously used workspace>
The prompt forces the user to always make a selection (which is error-prone), and also makes it complicated when running on CI/CD.
This PR adds the logic that deletes the .terraform/environment
file from the component directory before executing terraform init
when executing the atmos.Component
template function. It allows executing the atmos.Component
function for a component in different Terraform workspaces without Terraform asking to select a workspace. The .terraform/environment
file contains the name of the currently selected workspace, helping Terraform identify the active workspace context for managing your infrastructure.
v1.104.0
Change PS1 to show that Atmos is in the `atmos terraform shell` mode @pkbhowmick (#761)
what
- Change PS1 to show that Atmos is in the
atmos terraform shell
mode - Customized command prompt for the interactive shell with the addition of the "atmos>" prefix
- Enhanced shell behavior by removing the unnecessary
-l
flag for non-Windows systems and implementing a fallback tosh
ifbash
is unavailable. - Improved handling for the
/bin/zsh
shell with additional flags
why
- Improve user experience
test
v1.103.0
feat: additional `atmos docs` parameters for specifying width, using auto-styling and color profile, and preserving new lines @RoseSecurity (#757)
what
- Add an additional
atmos docs
flag for specifying the width of markdown output - Utilizing auto-styling based on light or dark mode preferences instead of hardcoding to dark
- Preserving new lines with rendered markdown
why
- Enhance the user experience for interacting with documentation. The
width
parameter is useful for users who prefer seeing wider output for Terraform docs-generated tables and is defined in theatmos.yaml
:
settings:
docs:
max-width: 200