atmos aws cloudformation apply
Create or update a CloudFormation stack. Atmos shows the proposed changes, asks for confirmation, and streams deployment events. A successful deployment ends with the stack outputs.
Configure templates, parameters, and delivery targets for your component.
Usage
atmos aws cloudformation apply <component> --stack <stack> [options]
Examples
atmos aws cloudformation apply vpc -s plat-ue2-dev
Skip the interactive confirmation prompt:
atmos aws cloudformation apply vpc -s plat-ue2-dev --auto-approve
Apply all or affected components in dependency order:
atmos aws cloudformation apply --all -s plat-ue2-dev
atmos aws cloudformation apply --affected --base origin/main
Apply components selected by tags or labels:
atmos aws cloudformation apply --all --tags production,tier-1
atmos aws cloudformation apply --affected --labels cost-center=platform
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.
--target(optional)- Provision target to deliver to. Defaults to
provision.default, otherwise the implicit direct-deploy target. --auto-approve(optional)- Skip the interactive confirmation prompt. Without it,
applyshows the predicted changes and then prompts for confirmation on a TTY before executing the changeset. Without a TTY,applyfails unless this flag is set. --all(optional)- Process all
aws/cloudformationcomponents. Deployment runs dependencies first; deletion runs consumers first. --affected(optional)- Process affected
aws/cloudformationcomponents and their dependencies. Compares the working tree against a base: see--baseand the Git flags below. --include-dependents(optional)- With
--affected, include dependentaws/cloudformationcomponents. --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/--affectedto narrow the selected set further; cannot be combined with a single component argument. --labels(optional)- Filter by labels (repeatable and/or comma-separated
key=valueorkey:valuepairs, 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.enabledis configured. Summary and output-variable publishing use their respective CI settings. Also enabled byCIandATMOS_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-hookswith no value skips every hook;--skip-hooks=name1,name2skips only the named hooks. Equivalent to theATMOS_SKIP_HOOKSenvironment variable.
atmos aws cloudformation deploy is an alias for apply
that defaults --auto-approve to true. Both fire the
before.aws/cloudformation.apply/after.aws/cloudformation.apply hook events.
How apply runs
For direct deployment, Atmos:
- Creates a changeset and prints the proposed changes on stderr.
- Asks for confirmation, unless
--auto-approveis set. - Installs the configured stack policy before an update.
- Executes the changeset and streams stack events until completion.
- Applies post-deployment settings and displays stack outputs.
No Changes
For an empty changeset, Atmos prints No changes and deletes the changeset.
It still applies the stack policy and configured termination protection, then
shows outputs. A new stack receives its policy after creation succeeds.
Confirmation and Cleanup
In a non-interactive session, pass --auto-approve. Without it, the command
fails before creating a changeset.
Declining confirmation deletes the changeset and returns a user-aborted error.
If this invocation created an empty REVIEW_IN_PROGRESS stack, Atmos also
removes it when abandoning the changeset, provided it is still in that state.
Existing stacks are preserved.
Failed Stack Creation
A stack in ROLLBACK_COMPLETE cannot be updated. Delete that failed stack with
delete, then apply again.
Atmos does not delete it automatically.
Other provision targets
Publish-only targets do not prompt for a stack change:
- An S3 target uploads the template and reports its S3 URI and HTTPS URL.
The run summary records
package_s3_uriandpackage_url. - A Git target reports the delivered file and destination.
Use the stackset commands for
StackSet targets. See Delivery Targets.
Try it out
- Install Atmos
- Try the example
Copy the example into a new directory and make it your own:
atmos init examples/cloudformation
cd cloudformation
Requires Docker or Podman, Python 3, and network access for the emulator image. Run against the local AWS emulator; the final commands clean up. No AWS account is needed.
atmos config set aliases.cft "aws cloudformation"
atmos emulator up aws -s local
atmos cft apply demo -s local --auto-approve
atmos cft delete demo -s local --auto-approve
atmos emulator down aws -s local