-
Task
-
Resolution: Unresolved
-
Major
-
None
-
None
-
None
-
None
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