Uploaded image for project: 'OpenShift Over the Air'
  1. OpenShift Over the Air
  2. OTA-1045

Cincinnati: Forwards compatibility for graph-data versions

XMLWordPrintable

    • 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.

              pratikam Pratik Mahajan
              trking W. Trevor King
              Jian Li Jian Li
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

                Created:
                Updated:
                Resolved: