Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
db61544
docs(prd): correct stale status headers found during Terragrunt migra…
osterman Aug 5, 2026
795ef85
Merge remote-tracking branch 'origin/main' into osterman/terragrunt-m…
osterman Aug 5, 2026
88fc22b
docs(migration): add Terragrunt migration skill reference and correct…
osterman Aug 5, 2026
bfde6a6
fix(docs): use clean !terraform.state syntax and fix EditorConfig ind…
osterman Aug 5, 2026
99be34a
fix(docs): address CodeRabbit findings and field-test gaps on Terragr…
osterman Aug 6, 2026
05fc856
fix(docs): resolve second CodeRabbit review round on Terragrunt migra…
osterman Aug 6, 2026
ad7aad9
Merge remote-tracking branch 'origin/main' into osterman/terragrunt-m…
osterman Aug 6, 2026
52df4de
chore: trigger CI re-run
osterman Aug 6, 2026
6c22503
fix(mocks): correct provenance rendering, error wording, and // defau…
osterman Aug 6, 2026
d06ce50
test(snapshots): regenerate describe_component golden snapshots after…
osterman Aug 6, 2026
95289ba
fix(provenance): address CodeRabbit review on PR #2878
osterman Aug 7, 2026
71bc942
Merge remote-tracking branch 'origin/main' into osterman/terragrunt-m…
osterman Aug 11, 2026
8bacabe
Merge remote-tracking branch 'origin/main' into osterman/terragrunt-m…
osterman Aug 20, 2026
7b23760
fix(test): widen RunSession timeouts to fix Windows CI flake
osterman Aug 20, 2026
b3f361e
Merge remote-tracking branch 'origin/main' into osterman/terragrunt-m…
osterman Aug 21, 2026
1634b90
Merge remote-tracking branch 'origin/main' into osterman/terragrunt-m…
osterman Aug 28, 2026
89385ee
docs(fixes): address CodeRabbit findings on PR #2878
osterman Aug 31, 2026
0a8e4e4
docs(fixes): document CI exit-code test failure as a registry network…
osterman Aug 31, 2026
fc06875
fix(ci): don't fail test-required/k3s-required on a cancelled run
osterman Aug 31, 2026
e4865b8
Merge remote-tracking branch 'origin/main' into osterman/terragrunt-m…
osterman Aug 31, 2026
eef85a8
[autocommit] formatting fixes
atmos-pro[bot] Aug 31, 2026
5ac5d97
fix(ci): pin cuelang.org/go's NOTICE URL to a deterministic override
osterman Aug 31, 2026
7487aa6
fix(ci): retry go install go-licenses on transient sum.golang.org fai…
osterman Aug 31, 2026
a9cf70f
fix(docs): replace a literal tab with spaces in a fix-log fenced block
osterman Aug 31, 2026
0acda9b
Merge remote-tracking branch 'origin/main' into osterman/terragrunt-m…
osterman Aug 31, 2026
3e0515e
docs(blog): bump terraform-component-mocks date to when its content c…
osterman Sep 1, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 23 additions & 1 deletion .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -622,7 +622,21 @@ jobs:
with:
egress-policy: audit

# A whole-run cancellation (e.g. superseded by a newer push to the same
# PR) skips the `test` matrix before it ever dispatches shard jobs, so
# the API query below would legitimately find 0 shards - not a real
# anomaly to fail loudly on. cancelled() reflects the run itself, unlike
# needs.test.result, which reports "skipped" for both this case and a
# genuine upstream (e.g. build) failure - so it can't replace this
# check. cancelled() is only valid in an `if:`, not inside a script, so
# the verification steps below are skipped via `if: ${{ !cancelled() }}`
# rather than early-exiting from within their run: blocks.
- name: Skip verification (workflow run was cancelled)
if: ${{ cancelled() }}
run: echo "workflow run was cancelled (e.g. superseded by a newer push); nothing to verify"

- name: Check per-OS test matrix result
if: ${{ !cancelled() }}
env:
GH_TOKEN: ${{ github.token }}
CHECK: ${{ matrix.check }}
Expand Down Expand Up @@ -670,7 +684,7 @@ jobs:
# terraform-registry-cache only runs a linux/windows matrix (no macos
# leg - see its `matrix.flavor` above), so its aggregated result must
# not gate the macos alias.
if: matrix.check != 'Acceptance Tests (macos)'
if: ${{ !cancelled() && matrix.check != 'Acceptance Tests (macos)' }}
run: |
if [ "${{ needs.terraform-registry-cache.result }}" != "success" ]; then
echo "terraform-registry-cache result was '${{ needs.terraform-registry-cache.result }}'"
Expand Down Expand Up @@ -1099,7 +1113,15 @@ jobs:
with:
egress-policy: audit

# See the matching comment on test-required's per-OS check step: a
# whole-run cancellation is not a genuine k3s failure, and cancelled()
# is only valid in an `if:`, not inside a script.
- name: Skip verification (workflow run was cancelled)
if: ${{ cancelled() }}
run: echo "workflow run was cancelled (e.g. superseded by a newer push); nothing to verify"

- name: Check k3s matrix result
if: ${{ !cancelled() }}
run: |
if [ "${{ needs.k3s.result }}" != "success" ]; then
echo "k3s matrix result was '${{ needs.k3s.result }}'"
Expand Down
9 changes: 7 additions & 2 deletions agent-skills/skills/atmos-migration/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
name: atmos-migration
description: "Migrating to Atmos from existing IaC: techniques, tactics, and design patterns for native Terraform, Terraform Workspaces, and Terramate — minimum-disruption paths, file-layout options, workspace mapping, tag/generate_hcl/script decomposition, and the remote-state bridge for progressive migration"
description: "Migrating to Atmos from existing IaC: techniques, tactics, and design patterns for native Terraform, Terraform Workspaces, Terramate, and Terragrunt — minimum-disruption paths, file-layout options, workspace mapping, tag/generate_hcl/script decomposition, and the remote-state bridge for progressive migration"
metadata:
copyright: Copyright Cloud Posse, LLC 2026
version: "1.0.0"
Expand All @@ -11,6 +11,7 @@ references:
- references/remote-state-bridge.md
- references/from-terramate.md
- references/from-component-updater.md
- references/from-terragrunt.md
---

# Migrating to Atmos
Expand All @@ -26,7 +27,8 @@ For full prose tutorials aimed at end users, link to:

- [Migrating from Native Terraform](https://atmos.tools/migration/native-terraform)
- [Migrating from Terraform Workspaces](https://atmos.tools/migration/terraform-workspaces)
- [Migrating from Terragrunt](https://atmos.tools/migration/terragrunt) (not covered by this skill)
- [Migrating from Terragrunt](https://atmos.tools/migration/terragrunt) -- see
[from-terragrunt.md](references/from-terragrunt.md) for the agent-actionable recipes
- Migrating from Terramate -- covered by this skill via
[references/from-terramate.md](references/from-terramate.md) (no atmos.tools tutorial yet)

Expand Down Expand Up @@ -80,6 +82,7 @@ different reference:
| `.tm.hcl` files, `stack.tm.hcl`, `generate_hcl` blocks (Terramate project) | [from-terramate.md](references/from-terramate.md) |
| Need to read outputs from un-migrated TF (legacy or another repo) | [remote-state-bridge.md](references/remote-state-bridge.md) |
| `cloudposse/github-action-atmos-component-updater` | [from-component-updater.md](references/from-component-updater.md) |
| Terragrunt (`terragrunt.hcl` or `terragrunt.stack.hcl`) | [from-terragrunt.md](references/from-terragrunt.md) |

The remote-state-bridge pattern is what makes **progressive, component-by-component migration**
possible. Without it, a team is forced into a big-bang cutover. Cover it any time the user has
Expand Down Expand Up @@ -196,3 +199,5 @@ Things to push back on if a user (or another agent) proposes them during migrati
- [References/from-terramate.md](references/from-terramate.md) -- construct-by-construct mapping
from Terramate (`stack.tm.hcl`, globals, `generate_hcl`, `script{}`, tags/labels) to Atmos,
including the one remaining known gap (`.tmtriggers`)
- [References/from-terragrunt.md](references/from-terragrunt.md) -- concept mapping and migration
workflow for classic Terragrunt and Terragrunt Stacks
Loading
Loading