-
Feature
-
Resolution: Done
-
Critical
-
None
-
None
-
Product / Portfolio Work
-
-
-
False
-
-
False
-
None
-
None
-
None
-
None
-
-
None
-
None
-
None
-
None
Feature Overview (aka. Goal Summary)
For phase one, our goal is to implement a prototype to prove that it is possible to run core payload openshift operator controllers in a portable way. In order to do that, we will initially target the Cluster Authentication Operator and deliver a proof of concept. Since a main goal of this project is to make those controllers portable so that they can be run as part of HyperShift, we will also target a proof of concept where our OM-ified Cluster Authentication Operator is running in an HCP deployment. To do this we will:
- Update the Cluster Authentication Operator to use the OpenShift Manager libraries and allow the controller reconciliation functions to be called from a binary. This code will be merged into the production version of the CAO, although since we are not targeting building an OM process for standalone in phase 1, it will be inert and not called as part of the standalone OCP deployment in phase 1.
- Build an initial proof of concept that can call the OM binary in a deployment running on HyperShift to demonstrate that we can generate the same manifests created by the CPO
- Where there are differences between what is generated by standalone vs what is in HCP, reconcile the two
- Update the Control Plane Operator (CPO) to use the OM binary rather than its existing Auth Operator code to generate manifests. Since this is phase 1 and a proof of concept, we will not target merging this code into the default CPO deployment in this phase. The outcome here should be a demoable implementation and an API that can be used as part of phase 2.
In addition, one of the main goals of this project is to enable OpenShift operator controllers to have real integration tests written against them. By using the abstraction layer between the OM and the API server, we can theoretically generate synthetic sequences of events that are reproducible in a testing context. For this phase, we will build a set of example tests with our auth operator proof of concept to demonstrate this is possible. Additionally, we will work towards defining a framework to make running and writing these tests possible.
Finally, an outcome for this phase will be to write designs and an eventual enhancement proposal for what our eventual set of APIs will look like, for how this work can be rolled out to the set of operators we will eventually target, and for how these changes can be integrated both in HyperShift and standalone.
Goals (aka. expected user outcomes)
The observable functionality that the user now has as a result of receiving this feature. Include the anticipated primary user type/persona and which existing features, if any, will be expanded. Complete during New status.
<your text here>
Requirements (aka. Acceptance Criteria):
A list of specific needs or objectives that a feature must deliver in order to be considered complete. Be sure to include nonfunctional requirements such as security, reliability, performance, maintainability, scalability, usability, etc. Initial completion during Refinement status.
<enter general Feature acceptance here>
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
Provide any additional context is needed to frame the feature. Initial completion during Refinement status.
<your text here>
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>
- links to