aws-cloudformation / aws-cloudformation/cloudformation-coverage-roadmap

Support setting stack termination protection, rollback configuration, and stack policy in the CloudFormation template

Open
#1,127 1 comment 14 reactions 0 assignees View on GitHub
enhancement
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.