cloudformation-resource-schema
cloudformation-resource-schema copied to clipboard
Schematize nuanced immutability (conditional resource replacement, downtime, etc.)
Currently, the CloudFormation resource specification and the documentation do not distinguish the difference between an update operation which fully replaces a resource (including data loss) from those updates which cause some other kind of downtime (e.g a server or database reboot).
The documentation maps both of these concepts to 'Update requires: some interruption' and the resource spec maps only the fully immutable replacement operation, as does the schema currently.
We could include a schema property to signal that a property may cause downtime without data loss as a distinguishing concept.
@rjlohan trying to assemble a list of likely stateful resource types here to help prevent data loss: https://github.com/aws-cloudformation/cfn-python-lint/blob/f476b226753a6df494091f392d78990ef93517ef/src/cfnlint/rules/resources/UpdateReplacePolicyDeletionPolicyOnStatefulResourceTypes.py#L22-L44
In addition to this problem with createOnlyProperties
being more nuanced than being expressable in just a boolean, the same problem applies to readOnlyProperties
and writeOnlyProperties
as well
https://twitter.com/InesParnisari/status/1327040431138299904