Skip to content

Releases: cloudposse/atmos

v1.65.0

04 Mar 22:26
e4136fa
Compare
Choose a tag to compare
Add `providers` section to Atmos manifests. Update docs @aknysh (#555)

what

why

Terraform utilizes plugins known as providers for communication with cloud providers, SaaS providers, and various APIs.

In order for Terraform to install these providers, the corresponding Terraform configurations need to explicitly state what providers are required. Furthermore, certain providers require additional configuration, such as specifying endpoint URLs or cloud regions, before they can be used.

Provider Configuration in Terraform

When working with Terraform, you specify provider configurations in your Terraform code. This involves declaring which providers your infrastructure requires and providing any necessary configuration parameters. These parameters may include endpoint URLs, cloud regions, access credentials, or any other provider-specific configuration parameters.

To declare a provider in Terraform, use a provider block within your Terraform configuration files, usually in a providers.tf file in the component (a.k.a. root module) directory. The provider block specifies the provider type and all the necessary configuration parameters.

Here's an AWS provider configuration example for a vpc component. The provider config is defined in the components/terraform/vpc/providers.tf file:

  provider "aws" {
    region = "us-east-2"
    assume_role = "IAM Role ARN"
  }

In this example, the aws provider block includes the region and IAM role required for Terraform to communicate with the AWS services.

By correctly defining provider configurations in your Terraform code, you ensure that Terraform can seamlessly install, configure, and use the necessary plugins to manage your infrastructure across various cloud and services.

Provider Configuration and Overrides in Atmos Manifests

Atmos allows you to define and override provider configurations using the providers section in Atmos stack manifests.
The section can be defined globally for the entire organization, OU/tenant, account, region, or per component.

For example, the providers section at the global scope can look like this:

terraform:
  providers:
    aws:
      region: "us-east-2"
      assume_role: "IAM Role ARN"

Similarly, it can be defined (or overridden) at the OU/tenant, account and region scopes in the corresponding _defaults.yaml stack manifests.

If you want to override a provider configuration for a specific component, use the component.terraform.<component>.providers section. For example, the following config can be used to override the assume_role parameter just for the vpc component:

components:
  terraform:
    vpc:
      providers:
        aws:
         assume_role: "IAM Role ARN for VPC"

You can include the providers sections in any Atmos stack manifest at any level of inheritance. Atmos will process, deep-merge and override all the providers configurations for a component in the following order:

  • Global scopes (terraform.providers sections for the Org, OUs, accounts and regions)
  • Base component scope (component.terraform.<base_component>.providers section)
  • Current component scope (component.terraform.<component>.providers section)

Refer to Atmos Component Inheritance for more information on all types of component inheritance supported by Atmos.


When you define the providers sections, Atmos processes the inheritance chain for a component and generates a
file providers_override.tf.json in the component's folder with the final values for all the defined providers.

For example:

> atmos terraform plan vpc -s plat-ue2-prod --logs-level=Trace

Variables for the component 'vpc' in the stack 'plat-ue2-prod':
  environment: ue2
  max_subnet_count: 3
  name: common
  namespace: cp
  region: us-east-2
  stage: prod
  tenant: plat

Writing the variables to file:
components/terraform/vpc/plat-ue2-prod.terraform.tfvars.json

Writing the provider overrides to file:
components/terraform/vpc/providers_override.tf.json

The generated providers_override.tf.json file would look like this:

{
    "provider": {
      "aws": {
        "assume_role": "IAM Role ARN for VPC"
      }
    }
}

Terraform then uses the values in the generated providers_override.tf.json to override the parameters for all the providers in the file.

References

v1.64.3

29 Feb 15:40
08dac04
Compare
Choose a tag to compare

🚀 Enhancements

include some protection on the azurerm backend when global does not exist @aochsner (#548)

what

When using the azurerm backend, the logic assumes a global key is set and prepends that to the component key. However, when it doesn't exist it causes atmos to crash. This checks if a global key is set and if not, then don't prepend anything.

why

  • don't require a global key

v1.64.2

28 Feb 05:23
d040264
Compare
Choose a tag to compare
Add Atmos CLI command aliases @aknysh (#547)

what

why

An alias lets you create a shortcut name for an existing CLI command. Any CLI command can be aliased, including the Atmos native commands like terraform apply or describe stacks, as well as Atmos Custom Commands.

CLI command aliases are configured in the aliases section in the atmos.yaml file.

For example:

aliases:
  # Aliases for Atmos native commands
  tf: terraform
  tp: terraform plan
  up: terraform apply
  down: terraform destroy
  ds: describe stacks
  dc: describe component
  # Aliases for Atmos custom commands
  ls: list stacks
  lc: list components

Execute an alias as you would any Atmos native or custom command:

> atmos ls

plat-ue2-dev
plat-ue2-prod
plat-ue2-staging
plat-uw2-dev
plat-uw2-prod
plat-uw2-staging

The aliases configured in the aliases section automatically appear in Atmos help, and are shown as
alias for '<command>'.

For example:


image


An alias automatically supports all command line arguments and flags that the aliased command accepts.

For example:

  • atmos up <component> -s <stack> supports all the parameters from the aliased command atmos terraform apply <component> -s <stack>
  • atmos dc <component> -s <stack> supports all the parameters from the aliased command atmos describe component <component> -s <stack>

references

Bump the website group in /website with 1 update @dependabot (#545)

Bumps the website group in /website with 1 update: @mdx-js/react.

Updates @mdx-js/react from 3.0.0 to 3.0.1

Release notes

Sourced from @​mdx-js/react's releases.

3.0.1

Fix

Types

Site

Full Changelog: mdx-js/mdx@3.0.0...3.0.1

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 <dependency name> major version will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)
  • @dependabot ignore <dependency name> minor version will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)
  • @dependabot ignore <dependency name> will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)
  • @dependabot unignore <dependency name> will remove all of the ignore conditions of the specified dependency
  • @dependabot unignore <dependency name> <ignore condition> will remove the ignore condition of the specified dependency and ignore conditions

🚀 Enhancements

Simplify install page @osterman (#544)

what

  • Use tabs for each installation method
  • Add new "installer" script installation method

why

  • Make it easier to get started

v1.64.1

24 Feb 14:32
5715d93
Compare
Choose a tag to compare

🚀 Enhancements

Fix responsiveness of css @osterman (#543)

what

  • Use % instead of vw, since the outter container is capped at a certain px size.
  • Set a minimum height of the header in px, otherwise if based on vh it can be impossibly small and gets eaten by the nav bar
  • Move the footer outside of main, so it's consistent with the header.

why

  • New landing page introduced in #540 wasn't tested on all screensizes

v1.64.0

23 Feb 04:16
ea13089
Compare
Choose a tag to compare
Create Landing page @osterman (#540)

what

  • Create a custom landing page
  • Update other docs

why

  • Explain what Atmos does in a few easy steps

v1.63.0

14 Feb 06:23
a22fa0a
Compare
Choose a tag to compare
Add `integrations.github` to `atmos.yaml` @aknysh (#538)

what

  • Add integrations.github to atmos.yaml
  • Don't search and process stacks when executing atmos describe config command

why

v1.62.0

14 Feb 01:43
f355719
Compare
Choose a tag to compare
Add `atmos docs` CLI command @aknysh (#537)

what

  • Add atmos docs CLI command

why

v1.61.0

13 Feb 23:55
836c3a8
Compare
Choose a tag to compare

what

  • Update readme to be more consistent with atmos.tools
  • Fix links
  • Add features/benefits
  • Add use-cases
  • Add glossary

why

  • Better explain what atmos does and why

v1.60.0

10 Feb 02:57
9308737
Compare
Choose a tag to compare

what

  • Fix an issue with the skip_if_missing attribute in Atmos imports with context
  • Update docs titles and fix typos
  • Update atmos version CLI command

why

  • The skip_if_missing attribute was introduced in Atmos release v1.58.0 and had some issues with checking Atmos imports if the imported manifests don't exist

  • Docs had some typos

  • When executing the atmos version command, Atmos automatically checks for the latest release from the Atmos releases page on GitHub and compares the current version with the latest release. If the installed Atmos version is out of date, the following information is presented to the user:


atmos version

image


v1.59.0

09 Feb 18:12
0832419
Compare
Choose a tag to compare

what

why

  • Make it more compelling
  • Add missing context developers might lack without extensive terraform experience