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

Create dummy Cincinnati data for testing CVO and oc nightly

XMLWordPrintable

    • Icon: Story Story
    • Resolution: Done
    • Icon: Undefined Undefined
    • None
    • None
    • None
    • None
    • OTA 210

      After the CVO implementation lands (OTA-396) and ends up in a Quay-mirrored nightly (and then maybe again after OTA-482 lands), we should push up some static Cincinnati JSON with conditionalEdges to make it easy for folks to:

      1. Launch that nightly, e.g. with cluster-bot
      2. Patch their ClusterVersion spec.upstream to point at the dummy Cincinnati "service".
      3. Have the CVO pull the Cincinnati JSON and populate conditionalUpdates.
      4. Run the updated oc (OTA-482) to get the new UX.

      One through three are basically the QE flow for OTA-396, and leaving the static JSON up in a fixed location will make it easier for other interested parties to kick the tires and convince themselves that the system works and make it easy to provide feedback.

      Static JSON would look like this, but with:

      {"from": "$VERSION_OF_SELECTED_NIGHTLY", "to": "$DOES_NOT_MATTER_BUT_SUBSEQUENT_SELECTED_NIGHTLY_WOULD_BE_NICE"},
      

      as the conditionalEdges[].edges entry. And then a few dummy entries under risks that exercised some likely PromQL (vSphere/None? SDN/OVN? etc.), along with something that was easy to adjust on the fly so folks could experience the CVO re-evaluating the PromQL to notice in-cluster changes (selected channel name? Because that's easy to change, and has no actual effect on Cincinnati requests for our static JSON).

      There are many, many ways to host static JSON, but my personal favorite is to lean on Git(Hub):

      $ git checkout --orphan cincinnati-graph-for-targeted-edge-blocking-demo
      $ git rm -rf .   # we don't want any of the previous branch's files in this branch
      $ cat <<EOF >cincinnati-graph.json      
      > { 
      >   "nodes": [...],
      >   "edges": [...],
      >   "conditionalEdges": [...] 
      > }
      > EOF
      $ jq . cincinnati-graph.json  # sanity check your syntax as valid JSON to catch missing commas and such
      $ git add cincinnati-graph.json  
      $ git commit -m 'WIP: Static Cincinnati graph to demo targeted edge blocking'
      $ git push -u "${YOUR_REMOTE_NAME}" cincinnati-graph-for-targeted-edge-blocking-demo
      

      That graph is hosted at https://raw.githubusercontent.com/wking/cincinnati-graph-data/cincinnati-graph-for-targeted-edge-blocking-demo/cincinnati-graph.json , and we can set the cluster up to consume with:

      $ oc patch clusterversion version --type json -p '[{"op": "add", "path": "/spec/upstream", "value": "https://raw.githubusercontent.com/wking/cincinnati-graph-data/cincinnati-graph-for-targeted-edge-blocking-demo/cincinnati-graph.json"}]'
      

      Lala has docs for a similar process in flight in CVO#681.

            trking W. Trevor King
            trking W. Trevor King
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: