[CentOS-devel] CBS and SIGs consuming CentOS 8 / Stream

Wed Oct 2 15:07:01 UTC 2019
Thomas Oulevey <thomas.oulevey at cern.ch>

Hi Folks,

>> We are going to announce soon a plan to upgrade cbs.centos.org and
>> associated builders to be able to build standard C8 RPM packages,
>> without interfering too much with SIGs ongoing work.
> 
> is this plan discussed on Mondays CBS meetings?
> I don't see it logged in https://www.centos.org/minutes/2019/September/

We didn't manage to have a meeting on Monday.

>> To conclude, we will send an update beginning of next week with more
>> information, a schedule and a list of points that need to be sorted out
>> with the community.

I'll try to give a summary of my investigation. I'll decouple two 
problems : the koji upgrade and having a working CentOS 8 
target/buildroot in cbs.centos.org with CentOS 7 builders.

1/ koji upgrade

The first step is to upgrade our version of koji to match the version 
mbox uses. At the same time we move away from puppet to ansible (thanks 
Arrfab for all the work! [1] & [2]) and upgrade the base operating 
system from CentOS 6 to CentOS 7.

At the same time the builders (where mock runs) need to run specific 
version of certain tools for C8 buildroots :

distribution-gpg-keys.noarch       1.21-1.el7
kernel.x86_64                      4.19.34-300.el7 

mock.noarch                        1.3.4-1.el7_build.rhel8
python-perf.x86_64                 4.19.34-300.el7
python2-distro.noarch              1.0.3-1.el7.rhel8

* Status: Update works and db schema can be easily upgraded. We have few 
more test to validate that the previous mentioned RPM updates don't 
break anything for C6 & C7 targets.
Next step is to announce a downtime and execute the upgrade plan.

2/ CentOS 8 buildroot

When 1/ is done we can create an C8 buildroot without enabling the 
Appstream repo.

Due to the nature of Appstream, and how koji uses mergerepo 
(--koji)/updaterepo/mock, more work is needed to get a working buildroot.

I don't fully understand the underlying issue so comments are very 
welcome to enlighten us !

One of the solution found by Fedora team is to split Appstream per 
repository and enable only the one needed in a specific buildroot [3].

We are evaluating the tools. And see if we can use koji external-repo or 
tag inheritance to achieve it (which is mbox solution [4])

However for a community build service, we don't know exactly what people 
will build and what Appstream packages will be needed in each buildroot 
(we have 290 targets at this time for C7). So we still need time and new 
ideas :-)

* Status: Investigating possible solutions.

-- 
Thomas Oulevey

[1] : https://github.com/CentOS/ansible-role-kojihub
[2] : https://github.com/CentOS/ansible-role-kojid
[3] : https://github.com/fedora-modularity/GrobiSplitter
[4] : https://koji.mbox.centos.org/koji/taginfo?tagID=3