Skip to main content

atmos aws cloudformation changeset create

Create a CloudFormation changeset for the component and leave it in place for later manual review and execution — the explicit-control complement to diff/plan's temporary preview changeset. After rendering, diff/plan deletes its changeset and any preview-created stack placeholder still in REVIEW_IN_PROGRESS. Cleanup failures are returned as errors.

Experimental
atmos aws cloudformation changeset create --help
 

Usage​

atmos aws cloudformation changeset create <component> --stack <stack> [options]
atmos aws cloudformation changeset create vpc -s plat-ue2-dev

Create changesets for all or affected components in dependency order:

atmos aws cloudformation changeset create --all -s plat-ue2-dev
atmos aws cloudformation changeset create --affected --base origin/main

Flags​

--stack, -s (required for a single component)
Atmos stack. Required when operating on a single component; optional (and used only to narrow the selected set) with --all/--affected.
--all (optional)
Process all aws/cloudformation components in dependency order.
--affected (optional)
Process affected aws/cloudformation components and their dependencies. Compares the working tree against a base: see --base and the Git flags below.
--include-dependents (optional)
With --affected, include dependent aws/cloudformation components.
--base (optional)
Git base ref or SHA to compare against for affected detection: --base=origin/main. A value that looks like a commit SHA is treated as --sha, anything else as --ref. Used with --affected.
--tags (optional)
Filter by tags (comma-separated, matches any): --tags=production,tier-1. Composes with --all/--affected to narrow the selected set further; cannot be combined with a single component argument.
--labels (optional)
Filter by labels (repeatable and/or comma-separated key=value or key:value pairs, matches all): --labels=cost-center=platform,compliance=sox. Composes with --all/--affected/--tags; cannot be combined with a single component argument.
--ci (optional)
Enable native CI integration (requires ci.enabled): writes the job summary and output variables for the operation. Also enabled by the CI and ATMOS_CI environment variables.
--ref (optional)
Git ref to compare against for affected detection. Used with --affected.
--sha (optional)
Git SHA to compare against for affected detection. Used with --affected.
--repo-path (optional)
Path to an already cloned target repository to use as the affected baseline. Used with --affected.
--clone-target-ref (optional)
Clone the target ref instead of checking it out in the current repository for affected detection. Used with --affected.
--ssh-key (optional)
Path to the SSH private key used to clone the target ref for affected detection. Used with --clone-target-ref.
--ssh-key-password (optional)
Password for the SSH private key used to clone the target ref for affected detection. Used with --clone-target-ref.

Behavior​

  • A changeset that would change nothing is not kept. CloudFormation reports it as a FAILED changeset ("didn't contain changes"), so Atmos deletes it and prints No changes; changeset not kept.
  • A changeset that fails to compute is deleted, together with the empty REVIEW_IN_PROGRESS stack it registered when Atmos created that stack for a never-deployed component.
  • A successful changeset is kept, and so is the REVIEW_IN_PROGRESS stack of a never-deployed component: that is the reusable artifact you asked for, and changeset execute needs it.
  • A stack in ROLLBACK_COMPLETE cannot be updated, so changeset create fails with a hint to delete the stack first.

Output​

On success, the summary includes the changeset's ID and name, whether it was a no-op (no changes to apply), and the predicted changes — the same diff summary diff renders. Execute the named changeset later with changeset execute.

note

changeset create does not fire before/after hook events — only apply, diff, delete, drift detect, and drift describe do.