👽 Terraform Orchestration Tool for DevOps. Keep environment configuration DRY with hierarchical imports of configurations, inheritance, and WAY more. Native support for Terraform and Helmfile.
For each component, you can optionally specify the workspaces.name parameter similar to the following:
components:
terraform:
my-component:
# Optional backend configuration for the component
backend:
cloud:
workspaces:
name: "my-component-workspace"
If auto_generate_backend_file is set to true in the atmos.yaml CLI config file in the components.terraform section,
Atmos will deep-merge the backend configurations from the _defaults.yaml manifests and from the component itself, and will generate a backend config JSON file backend.tf.json in the component's folder, similar to the following example:
Instead of specifying the workspaces.name parameter for each component in the component manifests, you can use
the {terraform_workspace} token in the cloud backend config in the _defaults.yaml manifest.
The token {terraform_workspace} will be automatically replaced by Atmos with the Terraform workspace for each component. This will make the entire configuration DRY.
terraform:
backend_type: cloud
backend:
cloud:
organization: "my-org"
hostname: "app.terraform.io"
workspaces:
# The token `{terraform_workspace}` will be automatically replaced with the
# Terraform workspace for each Atmos component
name: "{terraform_workspace}"
what
why
docs
Terraform Cloud backend uses a
cloud
block to specify which organization and workspace(s) to use.To configure the Terraform Cloud backend in Atmos, add the following config to an Atmos manifest in
_defaults.yaml
:For each component, you can optionally specify the
workspaces.name
parameter similar to the following:If
auto_generate_backend_file
is set totrue
in theatmos.yaml
CLI config file in thecomponents.terraform
section, Atmos will deep-merge the backend configurations from the_defaults.yaml
manifests and from the component itself, and will generate a backend config JSON filebackend.tf.json
in the component's folder, similar to the following example:Instead of specifying the
workspaces.name
parameter for each component in the component manifests, you can use the{terraform_workspace}
token in thecloud
backend config in the_defaults.yaml
manifest. The token{terraform_workspace}
will be automatically replaced by Atmos with the Terraform workspace for each component. This will make the entire configuration DRY.