Uploaded image for project: 'Managed Service - API'
  1. Managed Service - API
  2. MGDAPI-6347

Create a pipeline for CRO to build an index from productized bundle and update CRO to use index image

XMLWordPrintable

    • Icon: Task Task
    • Resolution: Unresolved
    • Icon: Major Major
    • None
    • None
    • None
    • None
    • 5
    • False
    • None
    • False
    • Yes
    • RHOAM Sprint 58, RHOAM Sprint 60

      WHY
      All RHOAM images need to be productized

      WHAT
      Currently, the CRO operator is using local installation type: https://github.com/integr8ly/integreatly-operator/blob/master/products/installation.yaml#L68 - this means that the CRO bundle is applied to the cluster from this folder: https://github.com/integr8ly/integreatly-operator/tree/master/manifests/integreatly-cloud-resources and therefore, we are not using productized bundle of cro.

      CRO is about to become productized which means that its bundle will be built via CPaaS system. Although this is still in progress we are expecting soon closure of the task of moving the builder to CPaaS.

      Productized CRO means that the CRO build would go through CPaaS pipelines and the outcome of the process would be an errata (advisory) with "shipped_live" status, this would essentially mean that the CRO could found in the Red Hat Registry.

      Here's the example of CRO advisory: https://errata.devel.redhat.com/advisory/121686

      Need to look at Go toolbox images used in midstream also https://gitlab.cee.redhat.com/rhoam-midstream/cro-midstream/

      HOW
      We currently have a pipeline that builds the Keycloak, 3scale and MCG bundles into an index. That index is then used by RHOAM.
      We want this pipeline to also be able to consume CRO bundles and build up an index so that it can be consumed by RHOAM.
      The general approach is that we:
      1) Have a list of bundles in this folder: https://github.com/integr8ly/integreatly-operator/tree/master/bundles
      2) The pipeline https://gitlab.cee.redhat.com/integreatly-qe/ci-cd/-/blob/master/pipelines/build-product-index.groovy calls an INTY make command, for example: create/3scale/index
      3) The make command calls script: https://github.com/integr8ly/integreatly-operator/blob/master/scripts/create-product-index.sh
      4) The script pulls the bundle specified in #1
      5) It creates the index
      6) The index is then updated in the installation.yaml: https://github.com/integr8ly/integreatly-operator/blob/master/products/installation.yaml#L63 in form of PR and all necessary tests are being done

      Update RHOAM to use the new index

      TESTS
      The new CRO release flow will be as follows:
      1) CRO release upstream is done
      2) CPaaS generates a new bundle of CRO (at this point, we can move advisory to QE state)
      3) Once in QE state we need to test the productized bundle, this means pull the bundle from the advisory, creating a sample index and attempting fresh install and upgrade (please bare ni mind that CRO changes specific tests would be done prior to #1 since it's engineering who does the upstream release so in this step, all we need to do is to confirm that bundle can upgrade [metadata correctness])
      4) Once ENG confirms that it's all good, QE can move the state to shipped live
      5) Once shipped live, ENG bumps the bundle and performs the run of the index builder pipeline, which builds the new CRO index, then the index is updated in the installation.yaml

      DONE
      We have extended our pipeline to also support CRO index build
      We have extended our Intly makefile and scripts to support building CRO index
      We have included latest productized CRO in RHOAM
      RHOAM works as expected with the new CRO

              Unassigned Unassigned
              mstoklus_rhmi Michal Stokluska
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Created:
                Updated: