Each CloudFormation stack must have a name that is unique within the stack's region. Takomo uses stack names to match stacks found from the local configuration with the target accounts' stacks.
You specify the regions where to deploy a stack using the regions property. You can give a single region or a list of regions. Each stack must have at least one region.
You put CloudFormation template files for stacks in the templates directory or its subdirectories.
📄️ Template bucket
By default, the maximum size for a CloudFormation template file is 51,200 bytes. Using larger template files, up to 460,800 bytes, requires that you upload them to an S3 bucket before deployment.
📄️ Command role
When you execute a Takomo command, the AWS credentials present in the current terminal session dictate the target AWS account. We call these credentials the default credentials.
📄️ Account ids
Working simultaneously with multiple accounts usually requires switching between many credentials or IAM roles. This poses a real risk of accidentally deploying infrastructure to the wrong account.
It’s a good practice to split the infrastructure into multiple stacks that group related resources together. Naturally, there will be dependencies between the stacks.
You use the parameters property to define input parameters for a stack. It's an object of key-value pairs where the keys are parameter names, and the values are configuration for the corresponding parameter values.
You specify stack tags with the tags property. CloudFormation automatically adds the tags to each resource in the stack that supports tagging.
📄️ Inherit tags
By default, stacks and stack groups inherit tags from their parent stack group. You can disable this behaviour by setting inheritTags to false.
📄️ Termination protection
You can enable termination protection for a stack with the terminationProtection property.
You specify a timeout in seconds for stack create and update operations by using the timeout property. Takomo cancels the operation if it takes longer than what you have specified in the timeout property. You can't set a timeout for the delete operation. Use 0 to disable the timeout.
You specify stack capabilities with the capabilities property.
📄️ Stack policy
You specify a stack policy with the stackPolicy property. It accepts a string or an object.
You can exclude stacks and stack groups from the configuration with the ignore property.
You can exclude stacks from configuration by marking them as obsolete with the obsolete property. Obsolete stacks can be removed with prune stacks command.
You use the hooks property to specify actions Takomo should execute at different stages of deploy and undeploy commands. The hooks property accepts a list of hook configuration objects. A hook configuration object has the following properties:
You can define custom properties by using the data property. The properties specified in a stack group configuration are available in its children's and stack's configuration files and stack templates files.
You can use custom Joi validation schemas to validate the following parts of stack configuration: