Enable continous relase (CR) repo Design

tags: Design

What is CR repos?

The continuous release (CR) repository makes generally available packages that will appear in
the next point release of CentOS, on a testing and hotfix basis until formally released.

Where it is enabled previously?

In Fs021, https://opendev.org/openstack/tripleo-quickstart/src/branch/master/config/general_config/featureset021.yml#L246
It was enabled earlier. From master release, this job no longer exists due to existance of multiple standalone scenarios.

Why we used it in our CI in one job?

To find issues and breakages early from the early released contents of the upcoming new CentOS 8.x and 7.x versions without disturbing
the existing pipeline

Where we find issues early in promotion pipelines?

Now a days component pipeline is the first line of defence and integration pipeline is the second line of defence. So finding issues early using
component pipeline is the goal.

What is the problem with the previous fs021 job?

As fs021 job was always failing, we had given less attension to this job and also leading to wasting resources.

Things to keep in consideration for new design

  • Donot waste resources
  • Make sure failure gets tracked and monitored regularly
  • We are finding issues in first line defence.

Current proposed design and problems with that?

Enabling cr repos in duplicated version of fs02 jobs using featureset override

Remarks

​​​​* It does not take the above consideration, so it is not valid.

Adding a seperate component pipeline where cr repos will be enabled

Remarks

​​​​* It will provide value in component pipeline.
​​​​* things that needs to improved:
​​​​    * Make sure the all the jobs passes
​​​​    * Repo needs to be enabled only when contents are available there
​​​​* If it fails, it should block the promotion
​​​​* Naming is hard, we can think about that (are we talking one component line per repo or an 'external components line to keep all the tests?')
​​​​* If we consider CR a component, we will have to make some changes to get_hash to support that
​​​​* Speaking of get_hash ... it would be good to have a way to identify the repo we tested. Like the md5 hash we have so we have some tracking/reporting
​​​​* Do we care about reporting to dlrn? If not, we may be able to by pass some changes.

Further extensions

Right now we have third party jobs exists like podman and ceph-ansible, May we we can add build the rpms of podman and ceph-ansible and create a third party repo with cr repos and add the same in this new component pipeline and monitor that.

Select a repo