# 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
* [TQ] Add enable_centos_cr_repo var in release file - https://review.opendev.org/#/c/737015/
* [TOCI] Add enable_centos_cr_repo to fs override - https://review.opendev.org/736999
* [rdo-jobs] Added fs02 cr repo based jobs - https://review.rdoproject.org/r/#/c/28168/
#### Remarks
* It does not take the above consideration, so it is not valid.
### Adding a seperate component pipeline where cr repos will be enabled
* [rdo-jobs] WIP: Add component job for centos-8 CR repo - https://review.rdoproject.org/r/#/c/28489/
#### 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.