aws-cloudformation / aws-cloudformation/cloudformation-coverage-roadmap
Support setting stack termination protection, rollback configuration, and stack policy in the CloudFormation template
- Dominant language
- No language data
- Stars
- 1.1k
- Forks
- 62
- PR merge metrics
- No merged PRs in 30d
Description
### Name of the resource
Other. CloudFormation API.
### Resource name
AWS::CloudFormation template
### Description
There's a set of parameters for configuring a stack that can only be set through direct API calls to CloudFormation. These parameters are expected to be provided on change set and stack create / update:
```
[--disable-rollback | --no-disable-rollback]
[--rollback-configuration ]
[--timeout-in-minutes ]
[--notification-arns ]
[--capabilities ]
[--resource-types ]
[--role-arn ]
[--on-failure ]
[--stack-policy-body ]
[--stack-policy-url ]
[--tags ]
[--enable-termination-protection | --no-enable-termination-protection]
```
Integration with CloudFormation happens across many services, including CodePipeline. Each service, as a new parameter is introduced, has to support it and expose it through its own API, lagging months (years) behind CloudFormation.
The ask in this issue is that CloudFormation expose a new section in a template that can take in these parameters. Similar to [metadata](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html), a new section for `StackSettings`, can take in say `RollbackConfiguration`.
This section is parsed prior to processing the template, and its values merged with what's passed in through the API call (API takes precedence).
This will allow users to use only a template to configure the behavior of their stack. It solves these issues:
https://github.com/aws/aws-cdk/issues/17871
https://github.com/aws/aws-cdk/issues/5170
The above are related to [CodePipeline's CloudFormation Deploy action](https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference-CloudFormation.html) only selectively supporting the full capabilities exposed via CloudFormation's API, but other integrations, for example, deploying to CloudFormation from a GitHub action (https://github.com/aws-actions/aws-cloudformation-github-deploy/blob/master/src/main.ts#L101-L112) would no longer rely on the author of these integrations updating to add parameters like `RollbackConfiguration` (missing from the linked code).
### Other Details
_No response_
Contributor guide
Research direction
Start by comparing the listed CloudFormation API parameters with the proposed StackSettings section and its API-precedence rule. Read the linked aws-cdk issues, CodePipeline action documentation, and GitHub Action code for the integration gaps. Done means the requested template-based settings and precedence behavior are specified and supported across the relevant CloudFormation integrations.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- aws
- Domain
- cloud, infrastructure
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 32/100