-
Feature
-
Resolution: Duplicate
-
Critical
-
None
-
None
-
None
-
Strategic Product Work
-
False
-
-
False
-
OCPSTRAT-27OLM V1: Operators, Operator Lifecycle Management, and Operator Hub
-
0% To Do, 0% In Progress, 100% Done
-
0
-
Program Call
Feature Overview (aka. Goal Summary)
OLM 1.0 ensures CustomResourceDefinition (CRD) upgrades are safe so that operators/extensions don’t break during an upgrade.
Goals (aka. expected user outcomes)
OLM needs to implement proper support for validating CRD upgrades; without it, OLM could upgrade to a revision of a CRD that is backward incompatible and result in:
- CustomResources (CRs) that currently exist in the object store are no longer valid
- Causes operator/extensions to fail reconciliation of existing CRs
- Manual user intervention to update all existing CRs to the new version
- operator/extensions, workloads, and tooling that depend on CRs mapping to a specific version of the CRD may break
Requirements (aka. Acceptance Criteria):
- An upgrade must be prevented if the new CRD:
- Removes any existing API version that is stored in the object store (etcd) as a stored version.
- Makes breaking changes to data serialization of existing API versions:
- No field’s type may be changed
- No field may be dropped
- New fields can not be marked as required
- No enum values removed
- Makes validation more restrictive
- When an upgrade is prevented, the status of the Operator is updated to inform users that an upgrade could not proceed due to CRD incompatibility
Anyone reviewing this Feature needs to know which deployment configurations that the Feature will apply to (or not) once it's been completed. Describe specific needs (or indicate N/A) for each of the following deployment scenarios. For specific configurations that are out-of-scope for a given release, ensure you provide the OCPSTRAT (for the future to be supported configuration) as well.
Deployment considerations | List applicable specific needs (N/A = not applicable) |
Self-managed, managed, or both | |
Classic (standalone cluster) | |
Hosted control planes | |
Multi node, Compact (three node), or Single node (SNO), or all | |
Connected / Restricted Network | |
Architectures, e.g. x86_x64, ARM (aarch64), IBM Power (ppc64le), and IBM Z (s390x) | |
Operator compatibility | |
Backport needed (list applicable versions) | |
UI need (e.g. OpenShift Console, dynamic plugin, OCM) | |
Other (please specify) |
Use Cases (Optional):
Include use case diagrams, main success scenarios, alternative flow scenarios. Initial completion during Refinement status.
<your text here>
Questions to Answer (Optional):
Include a list of refinement / architectural questions that may need to be answered before coding can begin. Initial completion during Refinement status.
<your text here>
Out of Scope
High-level list of items that are out of scope. Initial completion during Refinement status.
<your text here>
Background
Upstream engineering brief: https://docs.google.com/document/d/1J5LP1l46AcLB2AlGoVXRWvHWA5XeZLkgSnQk8yb5brQ/edit?usp=sharing
Customer Considerations
Provide any additional customer-specific considerations that must be made when designing and delivering the Feature. Initial completion during Refinement status.
<your text here>
Documentation Considerations
Provide information that needs to be considered and planned so that documentation will meet customer needs. If the feature extends existing functionality, provide a link to its current documentation. Initial completion during Refinement status.
<your text here>
Interoperability Considerations
Which other projects, including ROSA/OSD/ARO, and versions in our portfolio does this feature impact? What interoperability test scenarios should be factored by the layered products? Initial completion during Refinement status.
<your text here>