Review mbs SOP

Signed-off-by: Michal Konečný <mkonecny@redhat.com>
This commit is contained in:
Michal Konečný 2021-09-06 17:13:54 +02:00
parent 3823b5ccdf
commit 7d0b205093
2 changed files with 24 additions and 37 deletions

View file

@ -67,7 +67,7 @@
** xref:making-ssl-certificates.adoc[SSL Certificate Creation - SOP] ** xref:making-ssl-certificates.adoc[SSL Certificate Creation - SOP]
** xref:massupgrade.adoc[Mass Upgrade Infrastructure - SOP] ** xref:massupgrade.adoc[Mass Upgrade Infrastructure - SOP]
** xref:mastermirror.adoc[Master Mirror Infrastructure - SOP] ** xref:mastermirror.adoc[Master Mirror Infrastructure - SOP]
** xref:mbs.adoc[mbs - SOP in review ] ** xref:mbs.adoc[Module Build Service Infra - SOP]
** xref:memcached.adoc[memcached - SOP in review ] ** xref:memcached.adoc[memcached - SOP in review ]
** xref:message-tagging-service.adoc[message-tagging-service - SOP in review ] ** xref:message-tagging-service.adoc[message-tagging-service - SOP in review ]
** xref:mirrorhiding.adoc[mirrorhiding - SOP in review ] ** xref:mirrorhiding.adoc[mirrorhiding - SOP in review ]

View file

@ -12,26 +12,25 @@ Contact::
#fedora-modularity, #fedora-admin, #fedora-releng #fedora-modularity, #fedora-admin, #fedora-releng
Persons:: Persons::
jkaluza, fivaldi, breilly, mikem jkaluza, fivaldi, breilly, mikem
Location::
Phoenix
Public addresses:: Public addresses::
* mbs.fedoraproject.org * mbs.fedoraproject.org
Servers:: Servers::
* mbs-frontend0[1-2].phx2.fedoraproject.org * mbs-frontend0[1-2].iad2.fedoraproject.org
* mbs-backend01.phx2.fedoraproject.org * mbs-backend01.iad2.fedoraproject.org
Purpose:: Purpose::
Build modules for Fedora. Build modules for Fedora.
== Description == Description
Users submit builds to mbs.fedoraproject.org referencing their modulemd Users submit builds to _mbs.fedoraproject.org_ referencing their modulemd
file in dist-git. (In the future, users will not submit their own module file in https://src.fedoraproject.org/[dist-git]. (In the future,
builds. The [.title-ref]#freshmaker# daemon (running in infrastructure) users will not submit their own module
will watch for .spec file changes and modulemd.yaml file changes -- it builds. The _freshmaker_ daemon (running in infrastructure)
will watch for `.spec` file changes and `modulemd.yaml` file changes -- it
will submit the relevant module builds to the MBS on behalf of users.) will submit the relevant module builds to the MBS on behalf of users.)
The request to build a module is received by the MBS flask app running The request to build a module is received by the MBS flask app running
on the mbs-frontend nodes. on the `mbs-frontend` nodes.
Cursory validation of the submitted modulemd is performed on the Cursory validation of the submitted modulemd is performed on the
frontend: are the named packages valid? Are their branches valid? The frontend: are the named packages valid? Are their branches valid? The
@ -46,7 +45,7 @@ the rpm builds are submitted.
These are grouped and limited in two ways: These are grouped and limited in two ways:
* First, there is a global NUM_CONCURRENT_BUILDS config option that * First, there is a global `NUM_CONCURRENT_BUILDS` config option that
controls how many koji builds the MBS is allowed to have open at any controls how many koji builds the MBS is allowed to have open at any
time. It serves as a throttle. time. It serves as a throttle.
* Second, a given module may specify that it's components should have a * Second, a given module may specify that it's components should have a
@ -66,8 +65,8 @@ future CI interactions.)
=== The mbs-build command === The mbs-build command
The https://pagure.io/fm-orchestrator[fm-orchestrator repo] and the The https://pagure.io/fm-orchestrator[fm-orchestrator repo] and the
[.title-ref]#module-build-service# package provide an _module-build-service_ package provide an
[.title-ref]#mbs-build# command with a few subcommands. For general _mbs-build_ command with a few subcommands. For general
help: help:
.... ....
@ -127,8 +126,8 @@ psabata's build #570 of shared-userspace-f26 is in the "build" state
=== The releng repo === The releng repo
There are more tools located in the [.title-ref]#scripts/mbs/# directory There are more tools located in the `scripts/mbs/` directory
of the releng repo: https://pagure.io/releng/blob/master/f/scripts/mbs of the releng repo: https://pagure.io/releng/blob/main/f/scripts/mbs
== Cancelling a module build == Cancelling a module build
@ -141,11 +140,10 @@ $ mbs-build cancel $BUILD_ID
MBS admins can also cancel builds of any user. MBS admins can also cancel builds of any user.
[NOTE] [NOTE]
.Note
==== ====
MBS admins are defined as members of the groups listed in the MBS admins are defined as members of the groups listed in the
[.title-ref]#ADMIN_GROUPS# configuration options in `ADMIN_GROUPS` configuration options in
[.title-ref]#roles/mbs/common/templates/config.py#. `roles/mbs/common/templates/config.py`.
==== ====
== Logs == Logs
@ -153,12 +151,12 @@ The frontend logs are on mbs-frontend0[1-2] in
`/var/log/httpd/error_log`. `/var/log/httpd/error_log`.
The backend logs are on mbs-backend01. Look in the journal for the The backend logs are on mbs-backend01. Look in the journal for the
[.title-ref]#fedmsg-hub# service. `fedmsg-hub` service.
== Upgrading == Upgrading
The package in question is [.title-ref]#module-build-service#. Please The package in question is `module-build-service`. Please
use the [.title-ref]#playbooks/manual/upgrade/mbs.yml# playbook. use the `playbooks/manual/upgrade/mbs.yml` playbook.
== Managing Bootstrap Modules == Managing Bootstrap Modules
@ -179,32 +177,21 @@ The existence of the tag is not enough for the bootstrap module to be
useable by MBS. MBS discovers the bootstrap module as a possible useable by MBS. MBS discovers the bootstrap module as a possible
dependency for other yet-to-be-built modules by querying PDC. During dependency for other yet-to-be-built modules by querying PDC. During
normal operation, these entries in PDC are automatically created by normal operation, these entries in PDC are automatically created by
pdc-updater on pdc-backend02, but for the bootstrap tag they need to be `pdc-updater` on _pdc-backend02_, but for the bootstrap tag they need to be
manually created and linked to the new bootstrap tag. manually created and linked to the new bootstrap tag.
The fm-orchestrator repo has a
https://pagure.io/fm-orchestrator/blob/master/f/bootstrap[bootstrap/]
directory with tools that we used to create the first bootstrap entries.
If you need to create a new bootsrap entry or modify an existing one,
use these tools for inspiration. They are not general purpose and will
likely have to be modified to do what is needed. In particular, see
[.title-ref]#import-to-pdc.py# as an example of creating a new entry and
[.title-ref]#activate-in-pdc.py# for an example of editing an existing
entry.
To be usable, you'll need a token with rights to speak to staging/prod To be usable, you'll need a token with rights to speak to staging/prod
PDC. See the PDC SOP for information on client configuration in PDC. See the PDC SOP for information on client configuration in
[.title-ref]#/etc/pdc.d/# and on where to find those tokens. `/etc/pdc.d/` and on where to find those tokens.
== Things that could go wrong == Things that could go wrong
=== Overloading koji === Overloading koji
If koji is overloaded, it should be acceptable to _stop_ the fedmsg-hub If koji is overloaded, it should be acceptable to _stop_ the fedmsg-hub
daemon on mbs-backend01 at any time. daemon on _mbs-backend01_ at any time.
[NOTE] [NOTE]
.Note
==== ====
As builds finish in koji, they will be _missed_ by the backend.. but As builds finish in koji, they will be _missed_ by the backend.. but
when it restarts it should find them in datagrepper. If that fails as when it restarts it should find them in datagrepper. If that fails as
@ -213,5 +200,5 @@ after startup that checks koji for anything it may have missed, at which
point it will resume functioning. point it will resume functioning.
==== ====
If koji continues to be overloaded after startup, try decreasing the If koji continues to be overloaded after startup, try decreasing the
[.title-ref]#NUM_CONCURRENT_BUILDS# option in the config file in `NUM_CONCURRENT_BUILDS` option in the config file in
[.title-ref]#roles/mbs/common/templates/#. `roles/mbs/common/templates/`.