-
Story
-
Resolution: Done
-
Major
-
None
-
None
-
5
-
False
-
None
-
False
-
-
-
OTA 251
cincinnati#314 landed version support in Cincinnati, but it's "is this a version I recognize?", which can cause an older Cincinnati to fail on newer graph-data, like:
$ curl -s https://gcsweb-ci.apps.ci.l2s4.p1.openshiftapps.com/gcs/origin-ci-test/pr-logs/pull/openshift_cincinnati-operator/176/pull-ci-openshift-cincinnati-operator-master-operator-e2e-hypershift-local-graph-data/1722001220597452800/artifacts/operator-e2e-hypershift-local-graph-data/e2e-test/artifacts/inspect/namespaces/openshift-updateservice/pods/example-5cd78cdf8b-vqcgv/graph-builder/graph-builder/logs/current.log | tail -n3 2023-11-07T21:50:33.646877602Z [2023-11-07T21:50:33Z TRACE cincinnati::plugins] Running next plugin 'openshift-secondary-metadata-parse' 2023-11-07T21:50:33.657154577Z [2023-11-07T21:50:33Z ERROR graph_builder::graph] unrecognized graph-data version 1.2.0 2023-11-07T21:50:33.657154577Z ; supported versions: ["1.0.0", "1.1.0"]
However, we want to be able to add new data to graph-data to support new functionality (like 1.2.0's signatures, OTA-949). An older Cincinnati that only understands up through 1.1.0 should still be able to consume 1.2.0 graph-data, it will just only provide the 1.1.0 features. For example, you would still have channels, edges, and conditional edges. You would not get signatures.
Definition of done:
- Instead of failing on unrecognized graph-data version, Cincinnati should use SemVer parsing to decide if the graph-data version is acceptable vs. the current parser's understanding. An operator that parsed 1.1.0 would be completely happy parsing 1.0.0 and 1.1.0 graph-data. It would be able to parse 1.2.0, 1.99.0, etc. graph-data, but might not support all that features that that graph-data could have backed. It would not be able to parse 2.0.0 graph-data.
- Cincinnati should log a message explaining the graph-data support situation. E.g. graph data 1.0.0 is compatible with this 1.1.0 parser or graph data 1.99.0 is compatible with this 1.1.0 parser, but some features may not be available.
- Discuss mechanisms for bubbling this information up to UpdateStatus so customers can easily understand why they aren't getting 1.99.0 features. Operator could scrape operand logs? Operator could scrape a new operand metric? Other? It's possible we deside to punt or defer this after discussing it.
- links to
-
RHEA-2024:130539 RHEA: OSUS Enhancement Update