-
Epic
-
Resolution: Done
-
Critical
-
None
-
Declarative Index Configuration Veneer
-
46
-
False
-
False
-
Green
-
To Do
-
OCPPLAN-7744 - Declarative Index Config
-
Impediment
-
OCPPLAN-7744Declarative Index Config
-
0% To Do, 0% In Progress, 100% Done
-
Undefined
-
L
Epic Goal
- Allow Operator Authors to easily change the layout of the update graph in a single location so they can version/maintain/release it via git and have more approachable controls about graph vertices than today's replaces, skips and/or skipRange taxonomy
- Allow Operators authors to have control over channel and bundle channel membership
Why is this important?
- The imperative catalog maintenance approach so far with opm is being moved to a declarative format (
OLM-2127and OLM-1780) moving away from bundle-level controls but the update graph properties are still attached to a bundle - We've received feedback from the RHT internal developer community that maintaining and reasoning about the graph in the context of a single channel is still too hard, even with visualization tools
- making the update graph easily changeable is important to deliver on some of the promises of declarative index configuration
- The current interface for declarative index configuration still relies on skips, skipRange and replaces to shape the graph on a per-bundle level - this is too complex at a certain point with a lot of bundles in channels, we need to something at the package level
Scenarios
- An Operator author wants to release a new version replacing the latest version published previously
- After additional post-GA testing an Operator author wants to establish a new update path to an existing released version from an older, released version
- After finding a bug post-GA an Operator author wants to temporarily remove a known to be problematic update path
- An automated system wants to push a bundle inbetween an existing update path as a result of an Operator (base) image rebuild (Freshmaker use case)
- A user wants to take a declarative graph definition and turn it into a graphical image for visually ensuring the graph looks like they want
- An Operator author wants to promote a certain bundle to an additional / different channel to indicate progress in maturity of the operator.
Acceptance Criteria
- The declarative format has to be user readable and terse enough to make quick modifications
- The declarative format should be machine writeable (Freshmaker)
- The update graph is declared and modified in a text based format aligned with the declarative config
- it has to be possible to add / removes edges at the leave of the graph (releasing/unpublishing a new version)
- it has to be possible to add/remove new vertices between existing edges (releasing/retracting a new update path)
- it has to be possible to add/remove new edges in between existing vertices (releasing/unpublishing a version inbetween, freshmaker user case)
- it has to be possible to change the channel member ship of a bundle after it's published (channel promotion)
- CI - MUST be running successfully with tests automated
- it has to be possible to add additional metadata later to implement OLM-2087 and OLM-259 if required
Dependencies (internal and external)
- Declarative Index Config (
OLM-2127)
Previous Work:
- Declarative Index Config (OLM-1780)
Related work
Open questions:
- What other manipulation scenarios are required?
- Answer: deprecation of content in the spirit of OLM-2087
- Answer: cross-channel update hints as described in OLM-2059 if that implementation requires it
When working on this Epic, it's important to keep in mind this other potentially related Epic: https://issues.redhat.com/browse/OLM-2276
- blocks
-
OPRUN-2107 Support usage of declarative index config by upstream index authors
- Closed
- is related to
-
OPECO-2111 Scaffold git-friendly automated build workflows for File-based Catalog
- Closed
There are no Sub-Tasks for this issue.