Add Atlantis-to-Atmos-Native-CI migration skill guide - #2870
Add Atlantis-to-Atmos-Native-CI migration skill guide#2870Erik Osterman (Cloud Posse) (osterman) wants to merge 5 commits into
Conversation
Adds references/from-atlantis.md to the atmos-migration skill, mapping Atlantis concepts (autoplan, workflow templates, apply gating, locking, PR comments) to their Atmos Native CI equivalents, with a removal checklist and known gaps. Cross-links from atmos-ci and atmos-modernization so agents can find it from either direction. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
|
Tip Atmos Pro
No affected stacks workflow was detected for this pull request. |
…ration-skill # Conflicts: # agent-skills/skills/atmos-migration/SKILL.md
Dependency Review✅ No vulnerabilities or license issues found.Scanned FilesNone |
📝 WalkthroughWalkthroughThe PR adds Atlantis-to-Atmos Native CI migration guidance. It links the guidance from the migration, CI, modernization, and skill index documentation. ChangesAtlantis migration documentation
Estimated code review effort: 1 (Trivial) | ~5 minutes Mergeability Score: 🟡 Moderate · up to The guide may cause migrations to run Terraform lifecycle commands twice when Atlantis replacement steps are mapped directly to Atmos hooks, and it does not clearly document project-lock cleanup. Clarifying these behaviors is needed before the guide is merge-ready. Possibly related PRs
Suggested reviewers: 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 5
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@agent-skills/skills/atmos-migration/references/from-atlantis.md`:
- Around line 121-124: Update the hook guidance in the migration document to
distinguish scope: prescribe a CI job step for behavior that must run once per
pull request, and reserve Atmos hooks for component- or stack-scoped lifecycle
steps. Preserve the existing custom-command guidance for steps not tied to a
command lifecycle.
- Line 76: Update the `parallel_apply` mapping in the migration guidance to
preserve `dependencies.components` ordering: limit matrix jobs to independent
components, or direct users to a dependency-aware deployment flow such as
`terraform deploy --affected`; do not describe an unrestricted matrix as
sufficient.
- Line 76: Update the migration mapping table entry for automerge,
parallel_plan, and parallel_apply to separate parallel execution from automatic
merging: retain the GitHub Actions matrix job mapping for parallel_plan and
parallel_apply, and document GitHub merge queues or branch protection as
distinct merge-order/protection mechanisms rather than automerge. Explicitly
describe GitHub auto-merge as the automerge equivalent or mark it as a known
gap.
- Line 75: Update the Atlantis lock mapping in the migration documentation to
explicitly state that project-level lock behavior is not preserved by the
open-source CLI or CI workflow; it is preserved only when using Atmos Pro lock
and unlock commands. Ensure the checklist or Known Gaps section also warns that
CI does not automatically acquire or clean up project locks.
- Line 73: Add a conditional item to the “Checklist to Remove Atlantis” covering
workflows that depend on Atlantis planfiles: configure
components.terraform.planfiles storage and enable --verify-plan for deploy,
ensuring the stored plan is compared before apply. Keep it scoped to projects
using the $PLANFILE behavior and align it with the existing checklist style.
🪄 Autofix
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro Plus
Run ID: 43feeae0-d008-4042-92fc-44b982e87b7e
📒 Files selected for processing (5)
agent-skills/AGENTS.mdagent-skills/skills/atmos-ci/SKILL.mdagent-skills/skills/atmos-migration/SKILL.mdagent-skills/skills/atmos-migration/references/from-atlantis.mdagent-skills/skills/atmos-modernization/SKILL.md
|
Note GitHub couldn't provide a complete incremental comparison for this pull request, so CodeRabbit is performing a full review instead. This review may take a little longer. |
There was a problem hiding this comment.
Actionable comments posted: 4
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@agent-skills/skills/atmos-migration/references/from-atlantis.md`:
- Around line 3-5: Update the introduction of the Atlantis migration reference
to clarify that the “CI system only” scope applies to Shape A; explicitly note
that Shape B also requires migrating from plain Terraform to Atmos.
- Around line 33-35: Update the migration guidance around the `ci:` block and
the referenced GitHub Actions workflows to prevent both Atlantis and Native CI
from applying the same pull request. Keep one system in plan-only mode or
disable its apply workflow during comparison, and defer enabling both apply
paths until cutover.
- Line 73: Update the planfile storage guidance in the workflow comparison table
to require durable shared storage across separate plan and deploy runners: use
S3 or GitHub Artifacts with --verify-plan, or explicitly require a persistent
shared location before allowing local paths. Keep the existing $PLANFILE and
components.terraform.planfiles references and split-workflow guidance intact.
- Line 70: Update the linked Native CI deploy job examples for the mappings
around apply_requirements, including the second referenced example, to set the
job-level environment to the corresponding protected GitHub environment. Use the
existing protected-environment name for each example and leave the guidance
about avoiding custom Atmos approval logic unchanged.
🪄 Autofix
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro Plus
Run ID: df6bc7e8-7078-4b0a-bc5e-399fdf213d93
📒 Files selected for processing (5)
agent-skills/AGENTS.mdagent-skills/skills/atmos-ci/SKILL.mdagent-skills/skills/atmos-migration/SKILL.mdagent-skills/skills/atmos-migration/references/from-atlantis.mdagent-skills/skills/atmos-modernization/SKILL.md
🚧 Files skipped from review as they are similar to previous changes (4)
- agent-skills/AGENTS.md
- agent-skills/skills/atmos-modernization/SKILL.md
- agent-skills/skills/atmos-migration/SKILL.md
- agent-skills/skills/atmos-ci/SKILL.md
…uide - Add a conditional checklist step to configure planfile storage and --verify-plan for projects relying on Atlantis's $PLANFILE guarantee. - Split the parallel_plan/parallel_apply/automerge mapping: matrix jobs are only safe for independent components, so point dependency-ordered applies at `terraform deploy/apply --affected` instead. - Add automerge as a Known Gap: it assumes apply-before-merge, which doesn't match the default plan-before-merge, apply-after-merge Native CI flow. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
- Scope the "CI system only" intro claim to Shape A; Shape B also needs an IaC move to Atmos first. - Note that GitHub Environment required-reviewer rules only gate a job that sets environment: <name> on the deploy job itself. - Restrict $PLANFILE storage guidance to S3/GitHub Artifacts, since the PR plan and deploy workflows run on separate runners and a local path store can't carry the planfile between them. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #2870 +/- ##
==========================================
- Coverage 82.98% 82.98% -0.01%
==========================================
Files 1881 1881
Lines 183067 183067
==========================================
- Hits 151925 151924 -1
Misses 23317 23317
- Partials 7825 7826 +1
Flags with carried forward coverage won't be shown. Click here to find out more. 🚀 New features to boost your workflow:
|
|
Note GitHub couldn't provide a complete incremental comparison for this pull request, so CodeRabbit is performing a full review instead. This review may take a little longer. |
There was a problem hiding this comment.
🔇 Additional comments (3)
agent-skills/skills/atmos-migration/references/from-atlantis.md (3)
78-78: Document lock acquisition and cleanup.The guide lists
atmos pro lockandatmos pro unlock, but it does not state whether Native CI runs them or cleans them up after failed or cancelled jobs. State that Native CI does not manage project locks automatically. Document the required workflow calls and cleanup when project locking is required.Also applies to: 115-117
71-71: 🗄️ Data Integrity & Integration | 🟠 Major | ⚡ Quick win
⚠️ Unverified finding
Sandbox verification was unavailable.Do not map replacement commands directly to Atmos hooks.
Line 71 treats every Atlantis
workflow_templates.<name>.plan/apply.steps[].runstep as hook-compatible. An Atmos hook runs before or after an Atmos command. It does not replace the built-ininit,plan, orapplycommand. If an Atlantisrunstep replaces one of those commands, the migration can run both commands.Limit this mapping to additive steps. Use a custom command or CI job step for replacement behavior. Verify the linked lifecycle guidance before merging.
Verification script
1-70: LGTM!Also applies to: 72-77, 79-114, 118-147
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro Plus
Run ID: 754271c8-2a62-47f0-85c9-60f2fa04f8ba
📒 Files selected for processing (5)
agent-skills/AGENTS.mdagent-skills/skills/atmos-ci/SKILL.mdagent-skills/skills/atmos-migration/SKILL.mdagent-skills/skills/atmos-migration/references/from-atlantis.mdagent-skills/skills/atmos-modernization/SKILL.md
🚧 Files skipped from review as they are similar to previous changes (4)
- agent-skills/skills/atmos-ci/SKILL.md
- agent-skills/skills/atmos-migration/SKILL.md
- agent-skills/AGENTS.md
- agent-skills/skills/atmos-modernization/SKILL.md
what
agent-skills/skills/atmos-migration/references/from-atlantis.md, a migration referencethat maps Atlantis concepts (
projects[]/autoplan,workflow_templates,pre/post_workflow_hooks,apply_requirements, PR comments, the$PLANFILEhandoff, project locking) to their AtmosNative CI equivalents (
describe affectedmatrices, hooks/custom commands, GitHub Environmentprotection rules,
ci.comments/ci.checks,components.terraform.planfiles,atmos pro lock).integrations.atlantis/settings.atlantis, and a project on plain Terraform + Atlantis with no Atmos yet.OSS-native project locking, plan-only PR comments, deferred Azure/GCS planfile backends, no
GitLab CI provider yet).
atmos-migration/SKILL.md(routing table, escalation list,resources),
atmos-ci/SKILL.md(Integrations section), andatmos-modernization/SKILL.md(modernization checklist), and updates the skill index in
agent-skills/AGENTS.md.why
Atmos having mature, non-deprecated Atlantis integration (
atmos atlantis generate repo-config)on one side and a fully-built Native CI feature set on the other.
atmos-migrationskill (mirroring thefrom-native-terraform.md/from-terraform-workspaces.mdreference pattern) rather than adding a new top-level skill,consistent with this repo's "extend, don't fork" convention for agent skills.
references
Summary by CodeRabbit