Skip to main content

Atmos FAQ

Why is the tool called Atmos?

Once upon a time, in the vast expanse of cloud computing, there was a need for a tool that could orchestrate and manage the complex layers of infrastructure with ease and precision. This tool would need to rise above the rest, be completely automated, providing oversight and control much like a protective layer enveloping the Earth. Thus, the idea of "atmos" was born, drawing inspiration from the visionary science fiction of the 1986 "Aliens" movie, where atmospheric terraformers transform alien worlds into hospitable realms.

But there's more to the story. As the Cloud Posse delved deeper into crafting this tool, they discovered a wonderful coincidence. "Atmos" could stand for "Automated Terraform Management & Orchestration Software" perfectly encapsulating its purpose and capabilities. This serendipitous acronym was a delightful surprise, further cementing the name's destiny.

Are there any reference architectures for Atmos?

Yes and no. Cloud Posse sells reference architectures for AWS based on Atmos and Terraform. Funded Startups and Enterprises are the targets of these architectures.

We plan to release some free reference architectures soon but cannot commit to a specific date.

Until then, please review our Quick Start, which takes you through deploying your first Terraform components using Atmos.

Is Atmos similar to Terragrunt?

Yes, Atmos is similar to Terragrunt in that it offers a robust command-line tool for operating with Terraform at scale. Both tools are designed to enhance Terraform's capabilities, allowing for more efficient management of complex infrastructure configurations. They support similar functionality, such as DRY (Don't Repeat Yourself) code practices, module management, and workflow orchestration, but they diverge significantly in their approach and philosophy.

How is Atmos unlike Terragrunt?

Atmos uses YAML over HCL

Atmos leverages YAML to introduce an opinionated Domain-Specific Language (DSL) for defining what constitutes a Stack, optimizing it for the management and orchestration of Terraform configurations. Designed to be tool-agnostic, Atmos offers a user-friendly CLI experience that supports a broad spectrum of workflows and infrastructure patterns, extending beyond just Terraform. Preferring YAML over HCL, Atmos advocates for using YAML for configuration due to its tool compatibility—any tool can read or write YAML, unlike HCL. With its reliance on YAML for configuration, Atmos seamlessly integrates with other tools that manipulate YAML, such as yq and templating engines like gomplate. This compatibility enhances its utility and flexibility in various environments.

Atmos uses vendoring instead of just-in-time downloading of root modules

Terragrunt facilitates the use of remote "root" modules, a feature Atmos also supports but implements more explicitly through "vendoring." This approach involves directly incorporating external modules into component folders ahead of time, rather than retrieving them on-the-fly. By committing these as artifacts, Atmos aligns more with the principles of immutable infrastructure, ensuring stability and reliability.

Atmos works with vanilla Terraform

Atmos is designed to be fully compatible with vanilla Terraform, ensuring that your Terraform HCL (HashiCorp Configuration Language) code remains operational with Terraform's native functionality, even if you choose not to use Atmos. This compatibility underscores Atmos's flexibility and its ability to integrate seamlessly into existing workflows. In contrast, Terragrunt employs a code generation strategy, utilizing a proprietary extension of HCL to introduce constructs and methods not directly interpretable by native Terraform. This approach involves dynamically generating code and assembling files and code fragments at runtime, distinguishing Terragrunt's methodology from the straightforward compatibility offered by Atmos.

Atmos does not promote code generation for root modules

Unlike Terragrunt, Atmos eschews code generation for composing DRY (Don't Repeat Yourself) Terraform root modules, because that makes them more challenging to test. Instead, it encourages the use of modular architecture to maintain DRY principles, advocating for sufficient parameterization of components (root modules) to keep them versatile and highly reusable. The complexity is managed through configuration, with Atmos focusing on generating .tfvars files before running Terraform. This approach allows seamless integration with vanilla Terraform and offers an easy exit strategy by generating and committing these files.

Atmos provides prescriptive guidance on operating Terraform at scale

Furthermore, Atmos delivers prescriptive guidance on design patterns and component architecture for Terraform root modules, establishing itself as an opinionated framework designed to enhance Terraform's capabilities. It offers advanced features tailored for both straightforward and intricate deployment scenarios. Essentially acting as a comprehensive framework, Atmos is exceptionally well-suited for complex, regulated enterprise environments. Its robust support for Stack manifests underscores its versatility as a tool, enabling precise and effortless infrastructure management and orchestration across various scales and complexities.

Can Atmos be used together with Terragrunt?

Yes, technically, Atmos and Terragrunt can be used in conjunction. However, it's important to acknowledge that this combination introduces a significant overlap in functionality and some philosophical differences. Developers generally prefer to minimize the number of layers in their tooling to avoid complexity, and integrating these two tools could steepen the learning curve for teams.

The key motivation for integrating Terragrunt within Atmos would be to offer a seamless CLI (Command Line Interface) experience, facilitating a gradual transition to Atmos's methodologies. This strategy allows teams to utilize Terragrunt for existing infrastructure management ("for historical reasons") while adopting Atmos for new projects. Essentially, it's a strategic approach to support migration to Atmos, enabling the tool to invoke Terragrunt where necessary, as teams progressively shift towards fully embracing Atmos for infrastructure orchestration.

There are a few ways to accomplish it, depending on your needs or preferences.

  1. Set the default the command to call in the Atmos CLI Configuration for Terraform components.
  2. Override the command in the settings section for each component definition in the stack configuration (this respects inheritances, so the mixin pattern can be used.)

What are some of the alternatives to Atmos?

Check out the list of alternatives that have influenced its design.

Is Atmos a replacement for Terraform?

No, Atmos is an orchestration tool that supports terraform, along with other tools. Plus, it even supports custom commands, so any tool can be powered by atmos.

Does Atmos work with Terraform Cloud and Terraform Enterprise?

Probably, but we haven't tested it.

Here's why it should work with any CI/CD system.

  • Atmos works with vanilla Terraform HCL code (we do not introduce any proprietary HCL code formats)
  • Atmos can generate .tfvar files from the deep-merged configurations for any given stack, or all stacks at once.
  • Commit those .tfvar, then run Terraform as normal, passing the appropriate .tfvar file to the terraform command with the -vars argument.

Our recommended way of practicing GitOps with Terraform is with our turn-key GitHub Actions.

Does Atmos work with Atlantis?

Yes, it does. See our integration page.

Does atmos support OpenTofu (OpenTF)

Yes, it does.

Does Atmos only work with AWS?

No, Atmos is entirely cloud-agnostic. There are funded startups and enterprises alike, using Atmos on Amazon Web Services (AWS), Google Compute Cloud (GCP) and Microsoft Azure (Azure), among others.

Does Atmos require any subscriptions?

No, Atmos operates purely as a Command Line Interface (CLI) tool. It does not require any subscriptions, services, or daemons to run, ensuring straightforward and accessible functionality without the need for ongoing subscriptions.

Is Atmos a commercial product?

Atmos is free and open source under the permissive APACHE2 license.

Words of Wisdom

We believe the most successful open-source tools are not themselves the end products sold in the market; instead, they serve as enablers, empowering others to build and innovate successful products.

Cloud Posse, a DevOps Accelerator for Funded Startups and Enterprises, funds Atmos development.

How do we make money?

Cloud Posse sells reference architectures for AWS that are based on Atmos and Terraform. Our typical customers are Funded Startups and Enterprises that want to leverage AWS together with platforms like GitHub, GitHub Actions, Datadog, OpsGenie, Okta, etc.