Mateusz OsiĆski
03/31/2026, 10:22 AMatmos.yaml file? (so there is no need to define required_version everywhere?),
2. How do you format the .tf files? Is there any standard in CloudPosse? Or just terraform fmt -recursive? Or should we use https://github.com/cloudposse/github-action-auto-format?Brandon
03/31/2026, 2:00 PMBrandon
03/31/2026, 2:02 PMenv:
ATMOS_VERSION: ${{ vars.ATMOS_VERSION }} # set in repo settings, e.g. "1.5.0"
ATMOS_CLI_CONFIG_PATH: ${{ github.workspace }}
OPENTOFU_VERSION: ${{ vars.OPENTOFU_VERSION }} # keep in sync with atmos.yaml integrations.github.gitops.opentofu-version
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true # suppress Node.js 20 deprecation warningsBrandon
03/31/2026, 2:02 PM# -----------------------------------------------------------------------
# 3. Set up OpenTofu
# The project sets `components.terraform.command: tofu` in atmos.yaml,
# so OpenTofu must be on PATH before Atmos runs any Terraform steps.
# -----------------------------------------------------------------------
- name: Set up OpenTofu
uses: opentofu/setup-opentofu@v1
with:
tofu_version: ${{ env.OPENTOFU_VERSION }}
tofu_wrapper: false
# -----------------------------------------------------------------------
# 4. Set up Atmos
# -----------------------------------------------------------------------
- name: Set up Atmos
uses: cloudposse/github-action-setup-atmos@v2
with:
atmos-version: ${{ env.ATMOS_VERSION }}
install-wrapper: false # wrappers aren't needed since we're running workflows, not individual Terraform stepsErik Osterman (Cloud Posse)
03/31/2026, 3:11 PMterraform fmt across all components, same thing with `terraform validate`; although someone else was recently just asking about this, I think it's something we should add. I think running terraform fmt --all would be a neat addition.Erik Osterman (Cloud Posse)
03/31/2026, 3:11 PMErik Osterman (Cloud Posse)
03/31/2026, 3:11 PMErik Osterman (Cloud Posse)
03/31/2026, 3:12 PMErik Osterman (Cloud Posse)
03/31/2026, 3:12 PMErik Osterman (Cloud Posse)
03/31/2026, 3:12 PMErik Osterman (Cloud Posse)
03/31/2026, 3:12 PMErik Osterman (Cloud Posse)
03/31/2026, 3:14 PMBrandon
03/31/2026, 3:29 PMBrandon
03/31/2026, 3:29 PMErik Osterman (Cloud Posse)
03/31/2026, 3:50 PMBrandon
03/31/2026, 3:51 PMErik Osterman (Cloud Posse)
03/31/2026, 3:51 PMErik Osterman (Cloud Posse)
03/31/2026, 3:51 PMErik Osterman (Cloud Posse)
03/31/2026, 3:51 PMBrandon
03/31/2026, 3:53 PMErik Osterman (Cloud Posse)
03/31/2026, 3:54 PMwe like to keep dev, stage environments as close to latest as possibleagree
Erik Osterman (Cloud Posse)
03/31/2026, 3:55 PMBrandon
03/31/2026, 3:55 PMMateusz OsiĆski
03/31/2026, 4:06 PMatmos.yaml level, and no required_version s are needed in the components, correct?Brandon
03/31/2026, 5:19 PMErik Osterman (Cloud Posse)
03/31/2026, 5:21 PMatmos toolchain install while dependencies are evaluated at runtimeErik Osterman (Cloud Posse)
03/31/2026, 5:22 PM