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

Cluster-version operator should declare risks for Update Service updates in other channels

XMLWordPrintable

    • Icon: Story Story
    • Resolution: Duplicate
    • Icon: Undefined Undefined
    • None
    • None
    • None
    • None
    • 1
    • OTA 255, OTA 256, OTA 257, OTA 258, OTA 259

      The cluster-version operator uses the existing io.openshift.upgrades.graph.release.channels metadata to populate the Release.channels property.  The CVO currently assumes all the releases in an Update Service response belong to the currently-configured channel.  For this ticket, the CVO should begin walking the retrieved Releases and injecting a DifferentChannel conditional update risk if the current channel is not a member of the Release's channels set.

      Definition of done:

      Create a mock update services (OTA-520) containing:

      {
        "nodes": [
          {"version": "4.18.0-0.test-FIXME-latest", "payload": "registry.build02.ci.openshift.org/ci-ln-hyd2jpt/release@sha256:FIXME", "metadata": {"io.openshift.upgrades.graph.release.channels": "candidate-4.18,fast-4.18,stable-4.18"}},
          {"version": "4.18.0", "payload": "quay.io/openshift-release-dev/ocp-release@sha256:0000000000000000000000000000000000000000000000000000000000000000", "metadata": {"io.openshift.upgrades.graph.release.channels": "candidate-4.18,fast-4.18,stable-4.18"}},
          {"version": "4.18.1", "payload": "quay.io/openshift-release-dev/ocp-release@sha256:1111111111111111111111111111111111111111111111111111111111111111", "metadata": {"io.openshift.upgrades.graph.release.channels": "candidate-4.18,fast-4.18"}},
          {"version": "4.18.2", "payload": "quay.io/openshift-release-dev/ocp-release@sha256:2222222222222222222222222222222222222222222222222222222222222222", "metadata": {"io.openshift.upgrades.graph.release.channels": "candidate-4.18"}}
       ],
        "edges": [[0,1],[0,2]],
        "conditionalEdges": [
          {
            "edges": [{"from": "4.18.0-0.test-FIXME-latest", "to": "4.18.2"}],
            "risks": [
              {"url": "https://bug.example.com/a", "name": "A", "message": "A.", "matchingRules": [{"type": "Always"}]}
            ]
          }
        ]
      }
      

      with the FIXME updated to reference the test release.

      Point the cluster at the mock update service with:

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

      with the FIXME updated to reference the mock update service.

      Set the cluster's channel with:

      $ oc adm upgrade channel stable-4.18
      

      Check the update data to see that all the not-yet-stable releases have a DifferentChannel update risk:

      $ oc adm upgrade --include-not-recommended
      Cluster version is 4.18.0-0.test-FIXME-latest
      
      Upstream: https://raw.githubusercontent.com/FIXME/cincinnati-graph-data/demo-branch-FIXME/cincinnati-graph.json
      Channel: stable-4.18 (available channels: candidate-4.18, fast-4.18, stable-4.18)
      
      Recommended updates:
      
        VERSION     IMAGE
        4.18.0      quay.io/openshift-release-dev/ocp-release@sha256:0000000000000000000000000000000000000000000000000000000000000000
      
      Supported but not recommended updates:
      
        Version: 4.18.2
        Image: quay.io/openshift-release-dev/ocp-release@sha256:2222222222222222222222222222222222222222222222222222222222222222
        Recommended: False
        Reason: MultipleReasons
        Message: A. https://bug.example.com/a
        
        4.18.2 channels (candidate-4.18) do not include this cluster's stable-4.18 https://example.com/FIXME
      
        Version: 4.18.1
        Image: quay.io/openshift-release-dev/ocp-release@sha256:1111111111111111111111111111111111111111111111111111111111111111
        Recommended: False
        Reason: DifferentChannel
        Message: 4.18.1 channels (candidate-4.18, fast-4.18) do not include this cluster's stable-4.18 https://example.com/FIXME
      

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

                Created:
                Updated:
                Resolved: