Uploaded image for project: 'Red Hat Advanced Cluster Management'
  1. Red Hat Advanced Cluster Management
  2. ACM-17914

Prototype fleet API support for multicluster plugins

XMLWordPrintable

    • Product / Portfolio Work
    • False
    • Hide

      None

      Show
      None
    • False
    • Hide

      Provide the required acceptance criteria using this template.

      • ...
      Show
      Provide the required acceptance criteria using this template. ...
    • None

      Value Statement

      ACM is a platform aligned operator, supporting managed clusters running N-2 through N+1 versions of OCP for a given release N.

      Any plugins that wish to leverage multicluster support provided by ACM may want to support all API versions of CRDs provided by their operators that may be encountered across the fleet.

      For example, suppose operator FOO(N) wants to integrate with ACM(N) and also provides support for N-2 through N+1 when installed on OCP.

      • ACM(N) could be managing an OCP(N-2) cluster. And this cluster could have FOO(N-3) installed on it, because FOO supports N+1.
      • ACM(N) could be managing an OCP(N+1) cluster, and this cluster could have FOO(N+2) installed on it, because FOO supports N-2.

      Overall, FOO(N) running in a multicluster context should support CRD API versions spanning those provided by FOO(N-3) to FOO(N+2). The number of possible API versions to support would vary depending on the deprecation and removal policy.

      For the kubevirt-plugin, support is only generally only for the matching N version of OCP, so the range is smaller: N-2 to N+1

      ACM can assist plugins in providing multicluster support by providing functions to determine which API versions are available on a given managed cluster.

      Definition of Done for Spike

      • Prototype a function that can return the available API versions given a cluster, group, and kind
        • The caller should be able to provide a default version that is returned without performing any communication to a managed cluster for the single-cluster case. This is to avoid branching in the calling code.
      • Prototype use of this function for the kubevirt-plugin for the VirtualMachineSnapshots kind in the snapshot.kubevirt.io group
        • Copy types for older versions from @kubevirt-ui/kubevirt-api
        • If UI changes are needed, forward-port them from previous releases of the kubevirt-plugin
        • Demonstrate creating snapshots with different API versions from the tree view running in a multicluster context 

              rbrunopi Randy Bruno-Piverger
              rh-ee-kcormier Kevin Cormier
              David Huynh David Huynh
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

                Created:
                Updated:
                Resolved: