To build artifacts that will be released/pushed to the mirror network, CentOS Project relies on distributed build systems, mostly :
While reimzul is still being used for CentOS Linux 7 rpm builds, koji is now the one being used for CentOS Linux 8 and all Stream releases (but different environments)
RPM packages built by/for Special Interest Groups on our Community Build Service are also built on a koji instance, different from the one[s] used to build CentOS Linux/Stream distributions.
We adviced you to read upstream koji documentation to have details of all needed components and how they can be combined all together to be able to build/distribute packages, but here is a quick overview :
createrepo
channel, it will itself RW rights on the NFS volume to be able to update repodata after some builds Now you can read other sub-sections about dedicated koji and some specific notes around these implementations
It's through worth knowing that all koji enviroments (almost) are deployed from the same Ansible roles (but with different settings, per different inventory or group variables)
Some links to ansible roles: