242 lines
11 KiB
Text
242 lines
11 KiB
Text
= Map of critical services
|
|
|
|
This document provides readers with a map of all critical services hosted by Fedora infra
|
|
and their relationship with each other.
|
|
It also contains a description of each app and reason why it's considered critical.
|
|
|
|
.Map of critical services
|
|
[#img-critical-map]
|
|
[caption="Figure: "]
|
|
image::fedora_infra_diagram.drawio.svg[link="../_images/fedora_infra_diagram.drawio.svg"]
|
|
|
|
== Metadata providers
|
|
[cols="1,1,1,1"]
|
|
|===
|
|
|Name |Description |Why it's critical? |Hostname
|
|
|
|
|https://pagure.io/mdapi[mdapi]
|
|
|mdapi (MetaData API) is similar to PDC in a way that it provides API that allows users to
|
|
obtain various metadata about Fedora packages. It contains information that is not available
|
|
in PDC.
|
|
|Plenty of other services in Fedora Infra are depending on the information stored in mdapi
|
|
and will stop to work when the mdapi is not available.
|
|
|Hosted in OpenShift
|
|
|===
|
|
|
|
== Monitoring
|
|
[cols="1,1,1,1"]
|
|
|===
|
|
|Name |Description |Why it's critical? |Hostname
|
|
|
|
|https://www.nagios.org/[Nagios]
|
|
|Nagios is used by Fedora Infrastructure to watch the state of all the hardware we have available
|
|
in Fedora infrastructure. It alerts members of Fedora Infra about any potential problem happening
|
|
in infrastructure.
|
|
|Nagios is essential for monitoring infrastructure and without it Fedora infra team will be in dark.
|
|
|`noc01.rdu3.fedoraproject.org` - internal `noc02.fedoraproject.org` - external
|
|
|
|
|https://pagure.io/fedora-ci/monitor-gating[monitor-gating]
|
|
|Monitor gating is service that runs dummy package through whole gating process. It files issue
|
|
when any error happens.
|
|
|Monitor gating helps us keeping eye on the health of the whole gating process and packaging workflow.
|
|
|Hosted in OpenShift
|
|
|===
|
|
|
|
== Infra tools
|
|
[cols="1,1,1,1"]
|
|
|===
|
|
|Name |Description |Why it's critical? |Hostname
|
|
|
|
|https://pagure.io/fedora-infra/toddlers[toddlers]
|
|
|Toddlers are a collection of fedora messaging consumers that are listening for various fedora messages
|
|
and trigger tasks based on those messages.
|
|
|Some of the tasks executed by toddlers are essential for whole Fedora Community.
|
|
|Hosted in OpenShift
|
|
|
|
|https://pagure.io/fedora-infra/mirror_from_pagure[mirror_from_pagure]
|
|
|Mirror from Pagure is a service that is mirroring git repositories to/from pagure to another git repository.
|
|
|Ansible repository containing all deployment playbooks for Fedora Infrastructure needs to be hosted on
|
|
both Pagure and directly on batcave (entry machine for fedora infra) in case the Pagure wouldn't work.
|
|
mirror_from_pagure is taking care of that.
|
|
|`batcave01.rdu3.fedoraproject.org`
|
|
|===
|
|
|
|
== Authentication
|
|
[cols="1,1,1,1"]
|
|
|===
|
|
|Name |Description |Why it's critical? |Hostname
|
|
|
|
|https://github.com/fedora-infra/noggin[noggin]
|
|
|Noggin is a frontend for FreeIPA service and serves as a community facing part of Fedora Authentication Server
|
|
(FAS).
|
|
|Without it the users wouldn't be able to manage or access their Fedora accounts settings.
|
|
|Hosted in OpenShift
|
|
|
|
|https://www.freeipa.org/page/Main_Page[IPA]
|
|
|FreeIPA is an identity management service which handles authentication of Fedora users in Fedora ecosystem.
|
|
|Without FreeIPA nobody would be able to authenticate with any Fedora service.
|
|
|`ipa01.rdu3.fedoraproject.org` `ipa02.rdu3.fedoraproject.org` `ipa03.rdu3.fedoraproject.org`
|
|
|
|
|https://ipsilon-project.org/[Ipsilon]
|
|
|Ipsilon is handling Single Sign-On (SSO) in Fedora ecosystem.
|
|
|Without Ipsilon SSO in Fedora wouldn't work. Plenty of web apps in Fedora using SSO as a main authentication
|
|
system.
|
|
|`ipsilon01.rdu3.fedoraproject.org` `ipsilon02.rdu3.fedoraproject.org`
|
|
|
|
|https://github.com/fedora-infra/fasjson[fasjson]
|
|
|FASJson is a gateway that allows to query data from FreeIPA.
|
|
|Without FASJson we will lack the easy way to query data from FreeIPA which will cause plenty of apps to stop
|
|
working as intended.
|
|
|Hosted in OpenShift
|
|
|
|
|https://github.com/fedora-infra/fasjson-client[fasjson-client]
|
|
|Client library for FASJson.
|
|
|This library is used by various applications in Fedora infrastructure to communicate with FASJson. Issue with
|
|
this library could cause these applications to stop working.
|
|
|Not a service
|
|
|===
|
|
|
|
== Packaging
|
|
|===
|
|
|Name |Description |Why it's critical? |Hostname
|
|
|
|
|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.
|
|
|Not a service
|
|
|
|
|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.
|
|
|Hosted in OpenShift
|
|
|
|
|https://pagure.io/taskotron/resultsdb[resultsdb]
|
|
|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.
|
|
|Hosted in OpenShift
|
|
|
|
|https://pagure.io/ci-resultsdb-listener[ci-resultsdb-listener]
|
|
|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.
|
|
|Hosted in OpenShift
|
|
|
|
|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.
|
|
|`buildvm-{x86,a64,ppc64le,a32}-\{01-XX}.rdu3.fedoraproject.org` `buildvm-s390x-\{01-XX}.s390.fedoraproject.org`
|
|
|
|
|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.
|
|
|Hosted in OpenShift
|
|
|
|
|https://pagure.io/koji/[Koji]
|
|
|Koji is a build system handling artifact building.
|
|
|Without Koji we wouldn't be able to build any artifact.
|
|
|`koji0\{1-2}.rdu3.fedoraproject.org`
|
|
|
|
|https://github.com/fedora-infra/bodhi[Bodhi]
|
|
|Bodhi is a system that manages package updates for Fedora distribution.
|
|
|Without Bodhi packagers couldn't submit new updates for existing packages.
|
|
|`bodhi-backend01.rdu3.fedoraproject.org`
|
|
|
|
|https://pagure.io/robosignatory[robosignatory]
|
|
|Fedora messaging consumer that automatically signs artifacts.
|
|
|Without Robosignatory no artifact would be automatically signed.
|
|
|`sign-bridge01.rdu3.fedoraproject.org`
|
|
|
|
|https://pagure.io/releng/tag2distrepo[tag2distrepo]
|
|
|Koji plugin that automatically generates dist repositories on tag operations.
|
|
|Without tag2distrepo packagers wouldn't be able to create repositories on specific tag.
|
|
|`koji0\{1-2}.rdu3.fedoraproject.org`
|
|
|
|
|https://pagure.io/sigul[sigul]
|
|
|Component that does signing of the artifacts. Called by robosignatory.
|
|
|Without sigul nothing in Fedora could be signed.
|
|
|`sign-bridge01.rdu3.fedoraproject.org`
|
|
|
|
|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.
|
|
|Without Koschei we wouldn't have automatic rebuild of packages on dependencies change.
|
|
|Hosted in OpenShift
|
|
|
|
|https://pagure.io/pagure-dist-git[pagure-dist-git]
|
|
|Pagure-dist-git is a plugin for Pagure which forms the base for web interface of Fedora
|
|
https://src.fedoraproject.org/[dist-git].
|
|
|Without pagure-dist-git there wouldn't be any web interface for dist-git for Fedora.
|
|
|`pkgs01.rdu3.fedoraproject.org`
|
|
|
|
|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.
|
|
|Not a service
|
|
|===
|
|
|
|
== Messaging bus
|
|
[cols="1,1,1,1"]
|
|
|===
|
|
|Name |Description |Why it's critical? |Hostname
|
|
|
|
|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.
|
|
|`rabbitmq0\{1-3}.rdu3.fedoraproject.org`
|
|
|
|
|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.
|
|
|Not a service
|
|
|===
|
|
|
|
== Community facing
|
|
|===
|
|
|Name |Description |Why it's critical? |Hostname
|
|
|
|
|https://wiki.list.org/Mailman3[Mailman3]
|
|
|GNU Mailman 3 is a set of apps used by Fedora to manage all their mailing lists.
|
|
|Without Mailman3 mailing lists and archives wouldn't work.
|
|
|`mailman01.rdu3.fedoraproject.org`
|
|
|
|
|https://pagure.io/pagure[Pagure]
|
|
|Pagure is a git forge used by Fedora project. It is a main component of Fedora dist-git as well.
|
|
|Without pagure most of the projects git repositories and issue trackers in Fedora are not available.
|
|
|`pagure02.fedoraproject.org`
|
|
|
|
|https://www.mediawiki.org/[wiki]
|
|
|Mediawiki is used by Fedora as their choice of Wikipedia-like web server. It's powering
|
|
https://fedoraproject.org/wiki[Fedora wiki pages].
|
|
|Without wiki Fedora wiki pages wouldn't run.
|
|
|`wiki0\{1-2}.rdu3.fedoraproject.org`
|
|
|
|
|https://github.com/fedora-infra/fmn[FMN]
|
|
|FMN (FedMSG Notifications) is an application listening for messages in Fedora infra and based on the
|
|
message sends notifications to users in Fedora projects.
|
|
|Without FMN no notifications will be sent in Fedora Infra.
|
|
|`notifs-web01.rdu3.fedoraproject.org` `notifs-backend01.rdu3.fedoraproject.org`
|
|
|===
|
|
|
|
== Fedora Release
|
|
[cols="1,1,1,1"]
|
|
|===
|
|
|Name |Description |Why it's critical? |Hostname
|
|
|
|
|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.
|
|
|`compose-x86-01.rdu3.fedoraproject.org` `compose-branched01.rdu3.fedoraproject.org` `compose-rawhide01.rdu3.fedoraproject.org` `compose-iot01.rdu3.fedoraproject.org`
|
|
|
|
|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.
|
|
|Hosted in OpenShift
|
|
|===
|