This document defines the Deprecation Policy for External Secrets Operator components.
External Secrets Operator is a Kubernetes operator that integrates external secret management systems like AWS Secrets Manager, HashiCorp Vault, Google Secrets Manager, Azure Key Vault, CyberArk Secrets Manager and many more. The operator reads information from external APIs and automatically injects the values into a Kubernetes Secret.
We follow the Kubernetes Deprecation Policy and API Versioning Scheme: alpha, beta, GA.
The project is currently in beta state. Please try the beta features and provide feedback. After the features exit beta, it may not be practical to make more changes.
alpha
beta
GA
We define the following scope that is covered by our deprecation policy. We follow the 9 Rules of the Kubernetes Deprecation Policy.
.Spec, .Status and .Status.Conditions[]ExternalSecret update mechanicsEverything not listed in scope is not subject to this deprecation policy and it is subject to breaking changes, updates at any point in time, and deprecation - as long as it follows the Deprecation Process listed below.
This includes, but isn't limited to:
Any maintainer may propose including a feature, component, or behavior out of scope to be in scope of the deprecation policy.
The proposal must clearly outline the rationale for inclusion, the impact on users, stability, long term maintenance plan, and day-to-day activities, if such.
The proposal must be formalized by submitting a design document as a Pull Request.
Any maintainer may propose deprecating a feature, component, or behavior (both in and out of scope). In Scope changes must abide to the Deprecation Policy above.
The proposal must clearly outline the rationale for deprecation, the impact on users, and any alternatives, if such.
The proposal must be formalized by submitting a design document as a Pull Request.
The proposing maintainer must present the proposed deprecation to the maintainer group. This can be done synchronously during a community meeting or asynchronously, through a GitHub Pull Request.
A majority vote of maintainers is required to approve the deprecation. Votes may be conducted asynchronously, with a reasonable deadline for responses (e.g., one week). Lazy Consensus applies if the reasonable deadline is extended, with a minimal of at least one other maintainer approving the changes.
Upon approval, the proposing maintainer is responsible for implementing the changes required to mark the feature as deprecated. This includes:
Deprecation must be introduced in the next release. The release must follow semantic versioning:
The release notes must prominently include:
When a deprecated feature is removed, it must be communicated in the release notes of the removal version. The removal must follow standard Kubernetes deprecation timelines if the feature is in scope.