Skip to main content

atmos aws cloudformation changeset create

Create a changeset for later review and execution. Use changeset execute to deploy the reviewed changes.

Experimental
CloudFormation Configuration

Configure templates, parameters, and delivery targets for your component.

atmos aws cloudformation changeset create --help
 

Usage​

atmos aws cloudformation changeset create <component> --stack <stack> [options]

Examples​

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

Arguments​

component (required unless selecting multiple components)
CloudFormation component name in the Atmos stack.

Flags​

--stack, -s (required for a single component)
Atmos stack. With bulk selection flags, limits the selected components to this stack.
--all (optional)
Process all aws/cloudformation components. Deployment runs dependencies first; deletion runs consumers first.
--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 CI integration for supported operations when ci.enabled is configured. Summary and output-variable publishing use their respective CI settings. Also enabled by CI and ATMOS_CI.
--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.
--skip-hooks (optional)
Skip lifecycle hooks for this invocation. --skip-hooks with no value skips every hook; --skip-hooks=name1,name2 skips only the named hooks. Equivalent to the ATMOS_SKIP_HOOKS environment variable.

Behavior​

Unlike a named changeset, the temporary preview created by diff or plan is deleted after rendering, along with any preview-created stack placeholder still in REVIEW_IN_PROGRESS. Cleanup failures are returned as errors.

  • 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.

This command fires the before.aws/cloudformation.changeset-create and after.aws/cloudformation.changeset-create lifecycle hooks. These events are separate from apply, so a hook listed only for before.aws/cloudformation.apply does not run here.

To run an existing asset packaging hook before the changeset is created, add the event to the hook's events list:

hooks:
package-lambda:
events:
- before.aws/cloudformation.apply
- before.aws/cloudformation.changeset-create