-
Notifications
You must be signed in to change notification settings - Fork 205
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Feature: reconcile-policy:recreate-on-modification-failure #3747
Comments
Wouldn't this be incredibly dangerous? A Redis cache doesn't really contain any state (and one could argue that an app should work even if Redis is unavailable, just more slowly), but not every Azure Resource is stateless. Imagine the consequences if this annotation were applied to a PostgreSQL Database, Storage Queue, etc. Any design for this needs to carefully consider potential failure modes - last thing we want is to destroy customer data. |
Here is an example (again) of why this feature may be useful: I'm recreating an environment by first destroying everything—the resource group and its nested resources. However, a role assignment is not an Azure object like a database or storage, so I can't visually confirm in the portal whether it has been deleted completely. When I attempt to recreate the environment with the same name, the role assignment operation fails because the previous one was either not completely wiped out or is still in the process of being deleted.
Which makes me to delete the role using Management API which is annoying. |
We're interested in other scenarios where users would find this useful. |
Feature: new annotation
serviceoperator.azure.com/reconcile-policy:recreate-on-modification-failure
that re-creates a resource upon modification failure.Some resources do not support modifications, such as changes to names, SKUs, etc. For example, you cannot downgrade a RedisDB once it has been scaled up. Similarly, the name of a RoleAssignment can't be updated. Changes to the CRD may result in operation errors. While this behavior might be acceptable for production installations, it would be beneficial to have an opt-in downgrade option for dev/test/staging environments, even though it comes with downtime. During this process, the ASO operator would delete the old resource and create a new one with the desired SKU with the same name.
Imagine manually modifying an existing resource; if the operator detects that progressing towards the goal state results in a 4xx error from Azure (assuming the annotation is set), it would then delete the resource and recreate it with the same name.
The text was updated successfully, but these errors were encountered: