Skip to content

Releases: cloudposse/atmos

v1.148.1

16 Jan 22:48
2254b73
Compare
Choose a tag to compare
add stores and hooks ## what

Atmos 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

#938
#921
#874

v1.148.0

16 Jan 13:22
20098bf
Compare
Choose a tag to compare
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

Before:
Screenshot 2025-01-07 at 19 05 26

After:
Screenshot 2025-01-07 at 15 37 10

v1.147.0

16 Jan 05:01
0a75010
Compare
Choose a tag to compare
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 in atmos.yaml

why

  • Don't accept invalid log levels

Screenshot 2025-01-11 at 18 51 25

v1.146.3

16 Jan 02:30
6bd89f1
Compare
Choose a tag to compare

🚀 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

Before:
image


After:
image

v1.146.2

15 Jan 21:58
5306fd4
Compare
Choose a tag to compare

🚀 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.

v1.146.1

13 Jan 13:58
4799f28
Compare
Choose a tag to compare

🚀 Enhancements

Bump github.com/aws/aws-sdk-go-v2/config from 1.28.9 to 1.28.10 @dependabot (#932) Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) from 1.28.9 to 1.28.10.
Commits

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot merge will merge this PR after your CI passes on it
  • @dependabot squash and merge will squash and merge this PR after your CI passes on it
  • @dependabot cancel merge will cancel a previously requested merge and block automerging
  • @dependabot reopen will reopen this PR if it is closed
  • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

🤖 Automatic Updates

Bump github.com/aws/aws-sdk-go-v2/config from 1.28.9 to 1.28.10 @dependabot (#932) Bumps [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) from 1.28.9 to 1.28.10.
Commits

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot merge will merge this PR after your CI passes on it
  • @dependabot squash and merge will squash and merge this PR after your CI passes on it
  • @dependabot cancel merge will cancel a previously requested merge and block automerging
  • @dependabot reopen will reopen this PR if it is closed
  • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

v1.146.0

12 Jan 01:38
589f783
Compare
Choose a tag to compare
Configure and use GitHub auth token when executing `atmos vendor pull` commands @Listener430 @aknysh (#912)

what

  • Use GitHub token when executing atmos vendor pull commands
  • Intorduce environment variables GITHUB_TOKEN and ATMOS_GITHUB_TOKEN to specify a GitHub Bearer token for authentication in GitHub API requests
  • Add custom GitHub URL detection and transformation for improved package downloading

why

  • When pulling from private GitHub repos, GitHub has a rate limit for anonymous requests (which made atmos vendor pull fail when vendoring from private GitHub repositories)

description

In the case when either the ATMOS_GITHUB_TOKEN or GITHUB_TOKEN variable is configured with a GitHub Bearer Token, vendor files are downloaded with go-getter using the token. The token is put into the URL, and the requests to the GitHub API are not affected to anonymous users rate limits

test

github.com/analitikasi/Coonector.git is a private repo

 - component: "weather"
   source: "github.com/analitikasi/Coonector.git//quick-start-simple/components/terraform/{{ .Component }}?ref={{.Version}}"
   version: "main"
   targets:
     - "components/terraform/{{ .Component }}/{{.Version}}"
   tags:
     - demo

Token_private_repo

v1.145.0

10 Jan 18:21
c399118
Compare
Choose a tag to compare
Support Component Lock with `metadata.locked` @milldr (#908)

what

  • Added support for metadata.locked with components

  • Separate atmos CLI tests into many files: tests/test_cases.yaml --> tests/test-cases/*.yaml

why

  • The metadata.locked parameter prevents changes to a component while still allowing read operations. When a component is locked, operations that would modify infrastructure (like terraform apply) are blocked, while read-only operations (like terraform plan) remain available. By default, components are unlocked. Setting metadata.locked to true prevents any change operations.
# Lock a production database component to prevent accidental changes
components:
  terraform:
    rds:
      metadata:
        locked: true
      vars:
        name: production-database

CleanShot 2025-01-03 at 17 38 08@2x

v1.144.0

10 Jan 16:24
43a3ec8
Compare
Choose a tag to compare
Embed JSON Schema for validation of Atmos manifests inside Atmos binary @aknysh (#925)

what

  • Embed the JSON Schema for validation of Atmos manifests inside Atmos binary
  • Update docs

why

  • Embedding the JSON Schema inside the Atmos binary allows keeping the Atmos code and the schema in sync, and does not force users to specify JSON Schema in atmos.yaml and monitor it when it needs to be updated

description

Atmos uses the Atmos Manifest JSON Schema to validate Atmos manifests, and has a default (embedded) JSON Schema.

If you don't configure the path to a JSON Schema in atmos.yaml and don't provide it on the command line using the --schemas-atmos-manifest flag, the default (embedded) JSON Schema will be used when executing the command atmos validate stacks.

To override the default behavior, configure JSON Schema in atmos.yaml:

# Validation schemas (for validating atmos stacks and components)
schemas:
  # JSON Schema to validate Atmos manifests
  atmos:
    # Can also be set using 'ATMOS_SCHEMAS_ATMOS_MANIFEST' ENV var, or '--schemas-atmos-manifest' command-line arguments
    # Supports both absolute and relative paths (relative to the `base_path` setting in `atmos.yaml`)
    manifest: "stacks/schemas/atmos/atmos-manifest/1.0/atmos-manifest.json"
    # Also supports URLs
    # manifest: "https://atmos.tools/schemas/atmos/atmos-manifest/1.0/atmos-manifest.json"
  • Instead of configuring the schemas.atmos.manifest section in atmos.yaml, you can provide the path to
    the Atmos Manifest JSON Schema file by using the ENV variable ATMOS_SCHEMAS_ATMOS_MANIFEST or the --schemas-atmos-manifest command line flag:
ATMOS_SCHEMAS_ATMOS_MANIFEST=stacks/schemas/atmos/atmos-manifest/1.0/atmos-manifest.json atmos validate stacks
atmos validate stacks --schemas-atmos-manifest stacks/schemas/atmos/atmos-manifest/1.0/atmos-manifest.json
atmos validate stacks --schemas-atmos-manifest https://atmos.tools/schemas/atmos/atmos-manifest/1.0/atmos-manifest.json

Summary by CodeRabbit

  • Configuration Updates

    • Enhanced schema configuration flexibility in atmos.yaml
    • Added support for remote and embedded JSON schema locations
  • Documentation Improvements

    • Updated CLI command documentation for stack validation
    • Added new sections explaining validation processes and schema management
    • Clarified usage of URLs for schema manifests in documentation
  • Testing

    • Added new test for JSON schema validation

v1.143.0

09 Jan 21:23
b13a2fd
Compare
Choose a tag to compare
Support Relative Path Imports @milldr (#891)

what

  • Add support for relative paths in imports, when the path starts with ./ or ../
  • Support all path types:
import:
  - ./relative_path
  - ../relative_path

or

import:
  - path: ./relative_path
  - path: ../relative_path

why

  • Allow less path duplication and support simpler code
Test Cases as a Directory @milldr (#922)

what

  • Added support for test cases as a directory rather than a single file

why

  • We are adding many more tests and as such the single file is becoming unruly