Blame docs/buildsys/intro.md

27db0d
# Build Systems overview
27db0d
27db0d
To build artifacts that will be released/pushed to the mirror network, CentOS Project relies on distributed build systems, mostly :
27db0d
27db0d
  * [Koji](https://pagure.io/koji)
1c0ded
  * [reimzul](reimzul.md)
27db0d
27db0d
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)
27db0d
1c0ded
RPM packages built by/for Special Interest Groups on our [Community Build Service](koji-cbs.md) are also built on a koji instance, different from the one[s] used to build CentOS Linux/Stream distributions.
27db0d
27db0d
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 :
27db0d
27db0d
  * kojihub/kojiweb : this is the main component, itself needing:
27db0d
    * authentication system in place (using either TLS/x509 certificates of kerberos tickets)
27db0d
    * postgresql database access : to store build results, activity, etc
27db0d
    * NFS storage: to store all builds logs and rpm packages and composed repositories
27db0d
    * httpd running with proper TLS certificates to encrypt traffic between hub and builders
27db0d
  * kojid : multiple builders, responsible to pick tasks (on the hub), and then use mock to build rpm packages and send results back to the kojihub
27db0d
    * depending if one of these nodes is also in the `createrepo` channel, it will itself RW rights on the NFS volume to be able to update repodata after some builds 
27db0d
27db0d
Now you can read other sub-sections about dedicated koji and some specific notes around these implementations
27db0d
27db0d
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)
27db0d
27db0d
Some links to ansible roles:
27db0d
27db0d
  * [kojihub](https://github.com/centos/ansible-role-kojihub)
27db0d
  * [kojid](https://github.com/centos/ansible-role-kojid)
27db0d
  * [nfs-server](https://github.com/centos/ansible-role-nfs-server)
27db0d
  * (only used for SIGs)[stylo](https://github.com/centos/ansible-role-stylo)