2023-04: Azure Resource Deprecation
Context
As succinctly raised by @sakthi-vetrivel
in (#2070)[https://github.com/Azure/azure-service-operator/issues/2070]:
Today, there’s no change to the support for an Azure Service Operator CRD when the underlying Azure service/offering is being deprecated. How should we communicate these deprecations and what timelines should we follow? How will we keep our catalog up to date?
Starting in Kubernetes v1.19, it’s possible to flag individual versions of a custom resource as (deprecated)[https://kubernetes.io/docs/tasks/extend-kubernetes/custom-resources/custom-resource-definition-versioning/#version-deprecation]. This results in the follow behaviour:
When API requests to a deprecated version of that resource are made, a warning message is returned in the API response as a header. The warning message for each deprecated version of the resource can be customized if desired.
Decision
To make deprecations visible, we will modify our ObjectModelConfiguration to allow flagging a particular resource (or resource version) as deprecated (including a message), with this flowing through into the generated code and our custom resource definitions.
When we become aware of resource or version deprecation, we’ll do the following:
- Modify our configuration to indicate deprecation of the resource
- Include deprecation details in our release notes for that release of ASO
- Add a documentation fragment to our Supported Resource page
- List the deprecation as a future breaking change
After the Azure deprecation has taken effect (that is, the resource or version is no longer deployable), we’ll remove it from the following ASO release, with the breaking change noted in both the release notes and on our website.
Status
TBC
Consequences
TBC
Experience Report
TBC
References
TBC