From 7d0b205093b65bb7af37d5a6dc333836cbeb2e5b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michal=20Kone=C4=8Dn=C3=BD?= Date: Mon, 6 Sep 2021 17:13:54 +0200 Subject: [PATCH] Review mbs SOP MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Michal Konečný --- modules/sysadmin_guide/nav.adoc | 2 +- modules/sysadmin_guide/pages/mbs.adoc | 59 +++++++++++---------------- 2 files changed, 24 insertions(+), 37 deletions(-) diff --git a/modules/sysadmin_guide/nav.adoc b/modules/sysadmin_guide/nav.adoc index eb944d8..9e0617a 100644 --- a/modules/sysadmin_guide/nav.adoc +++ b/modules/sysadmin_guide/nav.adoc @@ -67,7 +67,7 @@ ** xref:making-ssl-certificates.adoc[SSL Certificate Creation - SOP] ** xref:massupgrade.adoc[Mass Upgrade 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:message-tagging-service.adoc[message-tagging-service - SOP in review ] ** xref:mirrorhiding.adoc[mirrorhiding - SOP in review ] diff --git a/modules/sysadmin_guide/pages/mbs.adoc b/modules/sysadmin_guide/pages/mbs.adoc index d805d33..a42bdfa 100644 --- a/modules/sysadmin_guide/pages/mbs.adoc +++ b/modules/sysadmin_guide/pages/mbs.adoc @@ -12,26 +12,25 @@ Contact:: #fedora-modularity, #fedora-admin, #fedora-releng Persons:: jkaluza, fivaldi, breilly, mikem -Location:: - Phoenix Public addresses:: * mbs.fedoraproject.org Servers:: - * mbs-frontend0[1-2].phx2.fedoraproject.org - * mbs-backend01.phx2.fedoraproject.org + * mbs-frontend0[1-2].iad2.fedoraproject.org + * mbs-backend01.iad2.fedoraproject.org Purpose:: Build modules for Fedora. == Description -Users submit builds to mbs.fedoraproject.org referencing their modulemd -file in dist-git. (In the future, users will not submit their own module -builds. The [.title-ref]#freshmaker# daemon (running in infrastructure) -will watch for .spec file changes and modulemd.yaml file changes -- it +Users submit builds to _mbs.fedoraproject.org_ referencing their modulemd +file in https://src.fedoraproject.org/[dist-git]. (In the future, +users will not submit their own module +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.) 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 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: -* 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 time. It serves as a throttle. * 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 https://pagure.io/fm-orchestrator[fm-orchestrator repo] and the -[.title-ref]#module-build-service# package provide an -[.title-ref]#mbs-build# command with a few subcommands. For general +_module-build-service_ package provide an +_mbs-build_ command with a few subcommands. For general help: .... @@ -127,8 +126,8 @@ psabata's build #570 of shared-userspace-f26 is in the "build" state === The releng repo -There are more tools located in the [.title-ref]#scripts/mbs/# directory -of the releng repo: https://pagure.io/releng/blob/master/f/scripts/mbs +There are more tools located in the `scripts/mbs/` directory +of the releng repo: https://pagure.io/releng/blob/main/f/scripts/mbs == Cancelling a module build @@ -141,11 +140,10 @@ $ mbs-build cancel $BUILD_ID MBS admins can also cancel builds of any user. [NOTE] -.Note ==== MBS admins are defined as members of the groups listed in the -[.title-ref]#ADMIN_GROUPS# configuration options in -[.title-ref]#roles/mbs/common/templates/config.py#. +`ADMIN_GROUPS` configuration options in +`roles/mbs/common/templates/config.py`. ==== == Logs @@ -153,12 +151,12 @@ The frontend logs are on mbs-frontend0[1-2] in `/var/log/httpd/error_log`. The backend logs are on mbs-backend01. Look in the journal for the -[.title-ref]#fedmsg-hub# service. +`fedmsg-hub` service. == Upgrading -The package in question is [.title-ref]#module-build-service#. Please -use the [.title-ref]#playbooks/manual/upgrade/mbs.yml# playbook. +The package in question is `module-build-service`. Please +use the `playbooks/manual/upgrade/mbs.yml` playbook. == 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 dependency for other yet-to-be-built modules by querying PDC. During 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. -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 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 === Overloading koji 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 ==== 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 @@ -213,5 +200,5 @@ after startup that checks koji for anything it may have missed, at which point it will resume functioning. ==== If koji continues to be overloaded after startup, try decreasing the -[.title-ref]#NUM_CONCURRENT_BUILDS# option in the config file in -[.title-ref]#roles/mbs/common/templates/#. +`NUM_CONCURRENT_BUILDS` option in the config file in +`roles/mbs/common/templates/`.