Add koji builders and change relationships between apps

* Koji builders are now part of the map.
* New relationship between rpmautospec and koji builders.
* New relationship between koji and koji builders.
* New relationship between pungi and bodhi.
* New relationship between pungi and mirrormanager.
* Changes the order of apps on page.

Signed-off-by: Michal Konečný <mkonecny@redhat.com>
This commit is contained in:
Michal Konečný 2022-05-27 10:05:03 +02:00 committed by zlopez
parent 3f5b6fd4c3
commit 7c49deccff
3 changed files with 63 additions and 58 deletions

View file

@ -1 +1 @@
<mxfile host="Electron" modified="2022-05-24T10:02:56.930Z" agent="5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/18.0.6 Chrome/100.0.4896.143 Electron/18.2.3 Safari/537.36" etag="hrtYp2KZEOG2Lb5EZY_4" version="18.0.6" type="device"><diagram id="C5RBs43oDa-KdzZeNtuy" name="Page-1">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</diagram></mxfile>
<mxfile host="Electron" modified="2022-05-27T07:49:28.575Z" agent="5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/18.0.6 Chrome/100.0.4896.143 Electron/18.2.3 Safari/537.36" etag="BKPS86rqKSmaCcy_HHdb" version="18.0.6" type="device"><diagram id="C5RBs43oDa-KdzZeNtuy" name="Page-1">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</diagram></mxfile>

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 80 KiB

After

Width:  |  Height:  |  Size: 85 KiB

Before After
Before After

View file

@ -9,45 +9,6 @@ It also contains a description of each app and reason why it's considered critic
[caption="Figure: "]
image::fedora_infra_diagram.drawio.svg[link="../_images/fedora_infra_diagram.drawio.svg"]
== Messaging bus
[cols="1,1,1"]
|===
|Name |Description |Why it's critical?
|https://www.rabbitmq.com/[RabbitMQ]
|RabbitMQ is a message broker used by fedora messaging. It assures that the message
is delivered from publisher to consumer.
|Without it the messages will not be delivered and most of the infra will stop working.
|https://github.com/fedora-infra/fedora-messaging[fedora messaging]
|Python library for working with fedora messaging system. It helps you create fedora
messaging publishers and consumers. Fedora messages are the main way the applications
communicate with each other in Fedora infrastructure.
|When there will be an issue with fedora messaging library it could cause issues
with fedora messages and affect whole Fedora infrastructure.
|===
== Fedora Release
[cols="1,1,1"]
|===
|Name |Description |Why it's critical?
|https://pagure.io/pungi[pungi]
|Pungi is a tool that creates composes of Fedora. It makes sure that all required
packages are included in the compose and the compose is available after finishing.
|Without pungi it would be much harder to create composes of Fedora.
|https://github.com/fedora-infra/mirrormanager2[mirrormanager]
|Mirrormanager is used to manage all the mirrors that are providing fedora packages.
|Without it Fedora infra wouldn't be able to manage all the mirrors of Fedora and DNF wouldn't
be able to automatically provide the best mirror for users.
|https://pagure.io/odcs[ODCS]
|ODCS (On Demand Compose Service) provides users Fedora composes on demand. It generates an RPM
repository with packages provided by the configuration.
|Without ODCS Fedora wouldn't be able to provide composes on demand.
|===
== Metadata providers
[cols="1,1,1"]
|===
@ -135,34 +96,44 @@ this library could cause these applications to stop working.
|===
|Name |Description |Why it's critical?
|https://pagure.io/fedora-infra/rpmautospec[rpmautospec]
|Python Package for Automatic Generation of RPM Release Fields and Changelogs. It's triggered during Koji build.
|Without rpmautospec some projects will lose the ability to automatically generate release fields
and changelogs which will render those projects unbuildable. More specifically the macros used in spec files.
|https://pagure.io/waiverdb[waiverdb]
|Companion app for ResultsDB that allows users to waive the results (allowing the packaging to continue
even if the tests are failing).
|Without it the users wouldn't be able to waive results.
|https://pagure.io/taskotron/resultsdb[resultsdb]
|Contains database of results for Fedora gating tests run by OpenQA.
|Without it the package gating wouldn't work, because the results aren't stored anywhere.
|Contains database of results for Fedora gating tests run by OpenQA and Fedora CI.
|Without it the tests results wouldn't be stored anywhere and the following processing of the test results
wouldn't be possible. This would render test pipelines unusable.
|https://pagure.io/fm-orchestrator[MBS]
|MBS (Module Build System) is used to build modules for Fedora.
|Without MBS Fedora modules couldn't be built.
|https://pagure.io/ci-resultsdb-listener[ci-resultsdb-listener]
|This component is listening for OpenQA announcement of tests results and then stores the results in resultsdb.
|Without it the tests results wouldn't be stored and the package gating wouldn't work.
|This component is listening for Fedora CI announcement of tests results and then stores the results in resultsdb.
|Without it the tests results from Fedora CI wouldn't be stored, which would render Fedora CI unusable.
|https://github.com/containerbuildsystem/osbs-client[OSBS]
|OSBS (OpenShift Build System) is used to build container images for Fedora.
|Without OSBS Fedora containers couldn't be built.
|https://pagure.io/fm-orchestrator[MBS]
|MBS (Module Build System) is used to build modules for Fedora.
|Without MBS Fedora modules couldn't be built.
|https://pagure.io/koji/[Koji builders]
|Koji builders are machines of various architectures used by Koji to build the artifacts.
|Without koji builders no artifact could be built.
|https://pagure.io/greenwave[greenwave]
|Greenwave is a component that decides whether the package can pass gating or not.
|Without Greenwave the packages will be stuck in the queue waiting for gating approval.
|https://pagure.io/koji/[Koji]
|Koji is a build system handling RPM package building.
|Without Koji we wouldn't be able to build any RPM package.
|Koji is a build system handling artifact building.
|Without Koji we wouldn't be able to build any artifact.
|https://github.com/fedora-infra/bodhi[Bodhi]
|Bodhi is a system that manages package updates for Fedora distribution.
@ -180,10 +151,6 @@ even if the tests are failing).
|Component that does signing of the artifacts. Called by robosignatory.
|Without sigul nothing in Fedora could be signed.
|https://github.com/release-engineering/dist-git[dist-git]
|Dist-git is used to initialize distribution git repository for Fedora.
|Without dist-git we wouldn't be able to initialize new distribution git repository for Fedora.
|https://github.com/fedora-infra/koschei[Koschei]
|Koschei is a software for running a service for scratch-rebuilding RPM packages in Koji instance
when their build-dependencies change or after some time elapse.
@ -194,10 +161,27 @@ when their build-dependencies change or after some time elapse.
https://src.fedoraproject.org/[dist-git].
|Without pagure-dist-git there wouldn't be any web interface for dist-git for Fedora.
|https://pagure.io/fedora-infra/rpmautospec[rpmautospec]
|Python Package for Automatic Generation of RPM Release Fields and Changelogs.
|Without rpmautospec some projects will lose the ability to automatically generate release fields
and changelogs which will render those projects unbuildable.
|https://github.com/release-engineering/dist-git[dist-git]
|Dist-git is used to initialize distribution git repository for Fedora.
|Without dist-git we wouldn't be able to initialize new distribution git repository for Fedora.
|===
== Messaging bus
[cols="1,1,1"]
|===
|Name |Description |Why it's critical?
|https://www.rabbitmq.com/[RabbitMQ]
|RabbitMQ is a message broker used by fedora messaging. It assures that the message
is delivered from publisher to consumer.
|Without it the messages will not be delivered and most of the infra will stop working.
|https://github.com/fedora-infra/fedora-messaging[fedora messaging]
|Python library for working with fedora messaging system. It helps you create fedora
messaging publishers and consumers. Fedora messages are the main way the applications
communicate with each other in Fedora infrastructure.
|When there will be an issue with fedora messaging library it could cause issues
with fedora messages and affect whole Fedora infrastructure.
|===
== Community facing
@ -222,3 +206,24 @@ https://fedoraproject.org/wiki[Fedora wiki pages].
message sends notifications to users in Fedora projects.
|Without FMN no notifications will be sent in Fedora Infra.
|===
== Fedora Release
[cols="1,1,1"]
|===
|Name |Description |Why it's critical?
|https://pagure.io/pungi[pungi]
|Pungi is a tool that creates composes of Fedora. It makes sure that all required
packages are included in the compose and the compose is available after finishing.
|Without pungi it would be much harder to create composes of Fedora.
|https://github.com/fedora-infra/mirrormanager2[mirrormanager]
|Mirrormanager is used to manage all the mirrors that are providing fedora packages.
|Without it Fedora infra wouldn't be able to manage all the mirrors of Fedora and DNF wouldn't
be able to automatically provide the best mirror for users.
|https://pagure.io/odcs[ODCS]
|ODCS (On Demand Compose Service) provides users Fedora composes on demand. It generates an RPM
repository with packages provided by the configuration.
|Without ODCS Fedora wouldn't be able to provide composes on demand.
|===