CDK CLI: execute deployment on CONFIGURATION_COMPLETE event #29443
Labels
@aws-cdk/core
Related to core CDK functionality
cli
Issues related to the CDK CLI
feature-request
A feature should be added or improved.
p1
package/tools
Related to AWS CDK Tools or CLI
wontfix
We have determined that we will not resolve the issue.
Describe the feature
When creating a CloudFormation stack, a resource can sometimes take longer to provision, making it appear as if it’s stuck in an IN_PROGRESS state. This can be because CloudFormation is waiting for the resource to complete consistency checks during its resource stabilization step. To improve visibility into resource provisioning status, CloudFormation has introduced a new “CONFIGURATION_COMPLETE” event. This event is emitted at both the individual resource level and the overall stack level during the create workflow when resource(s) creation or configuration is complete, but stabilization is still in progress.
CDK can use this new event and speed up the deployment time.
Use Case
I'm annoyed by how long it takes to deploy or redeploy my CDK app while I'm developing and testing. I can speed it up by taking a risk with CloudFormation's stabilization phase, but it's not safe for production.
Proposed Solution
Propose new CDK CLI command or additional switch to
cdk deploy
to execute a new optimistic stabilization strategy to shorten stack deployment times. In this mode, CDK will continue the deployment sequence using the newCONFIGURATION_COMPLETE
event and not wait forCREATE_COMPLETE
.Other Information
There's a chance that resource creation might fail during the stabilization phase, which occurs between the
CONFIGURATION_COMPLETE
event and theCREATE_COMPLETE
event. This shouldn't be the default deployment mode, and users should be warned about the risk. CDK deploy should be capable of rolling back in case of late-arriving resource creation failures.Acknowledgements
CDK version used
2.132.0
Environment details (OS name and version, etc.)
MACOS
The text was updated successfully, but these errors were encountered: