cirrus
Cirrus is a CLI tool for managing cloudformation stacks and templates.
(screencasts were done when I had terrible internet, so they're slow)
Commands
list
This command lists all the existing non-deleted stacks.
If you pass --showdeleted
then it will include deleted stacks.
resources
This command lists all resources belonging to a particular stack.
events
This command lists all events that have happened for a stack.
account
This command gives you information about your AWS account.
estimate
This will give you a URL to an AWS cost estimation page that has your cloudformation resources automatically filled in.
Requires --file
and --parameters
args.
This command requires you have a browser installed as it will open the URL with your default application.
validate
Validates a template + parameter file.
Requires --file
and --parameters
.
Pass:
Fail:
create
Creates a new template.
Requires a stack name, --file
, and --parameters
.
update
Updates an existing template.
Requires a stack name, --file
, and --parameters
.
delete
Deletes an existing stack.
Will prompt for confirmation.
diff
Note: This command is a WIP and the output will almost definitely change.
Displays information about what will change if you apply this template to an existing stack.
CF Parameters
Deprecation of cloudformation style params
The old way of defining parameters is now deprecated, to be replaced with a single JSON object.
Old:
[ { ParameterKey: "Hello", ParameterValue: "World" } ]
New:
{ Hello: "World" }
Interpolation
Parameter values can be interpolated from existing cloudformation stacks.
Instead of having:
{
PublicSubnet1: "subnet-123456"
}
you could change it to
{
PublicSubnet1: "<<mainVPC.PublicSubnet1>>"
}
Where mainVPC
is the name of another stack, and PublicSubnet1
is the resource name.
The value will be replaced with the ID of the resource you specify.
Prompting
You can prompt for a value when you run create
or update
.
{
SecretParameter: "<<prompt>>"
}
KMS Encrypted values
You can include data that has been encrypted using KMS for create
or update
.
These values will be decrypted using the KMS API when the tasks are run.
{
SecretParameter: "<<kms: BASE64_ENCODED_DATA>>"
}