Review odcs SOP

Signed-off-by: Michal Konečný <mkonecny@redhat.com>
This commit is contained in:
Michal Konečný 2021-09-07 15:09:57 +02:00
parent 5a5cb271b6
commit 0f4ea0ff92
2 changed files with 22 additions and 24 deletions

View file

@ -79,7 +79,7 @@
** xref:new-hosts.adoc[DNS Host Addition - SOP]
** xref:nonhumanaccounts.adoc[Non-human Accounts Infrastructure - SOP]
** xref:nuancier.adoc[Nuancier - SOP]
** xref:odcs.adoc[odcs - SOP in review ]
** xref:odcs.adoc[On Demand Compose Service - SOP]
** xref:openqa.adoc[openqa - SOP in review ]
** xref:openshift.adoc[openshift - SOP in review ]
** xref:openvpn.adoc[openvpn - SOP in review ]

View file

@ -1,7 +1,6 @@
= On Demand Compose Service SOP
[NOTE]
.Note
====
The ODCS is very new and changing rapidly. We'll try to keep this up to
date as best we can.
@ -18,32 +17,30 @@ Contact::
#fedora-modularity, #fedora-admin, #fedora-releng
Persons::
jkaluza, cqi, qwan, threebean
Location::
Phoenix
Public addresses::
* odcs.fedoraproject.org
Servers::
* odcs-frontend0[1-2].phx2.fedoraproject.org
* odcs-backend01.phx2.fedoraproject.org
* odcs-frontend0[1-2].iad2.fedoraproject.org
* odcs-backend01.iad2.fedoraproject.org
Purpose::
Generate temporary compose from Koji tag(s) using Pungi.
== Description
ODCS clients submit request for a compose to odcs.fedoraproject.org. The
requests are submitted using python2-odcs-client Python module or just
ODCS clients submit request for a compose to _odcs.fedoraproject.org_. The
requests are submitted using `python2-odcs-client` Python module or just
using plain JSON.
The request contains all the information needed to build a compose:
* source type: Type of compose source, for example "tag" or "module"
* source: Name of Koji tag or list of modules defined by
* *source type*: Type of compose source, for example "tag" or "module"
* *source*: Name of Koji tag or list of modules defined by
name-stream-version.
* packages: List of packages to include in a compose.
* seconds to live: Number of seconds after which the compose is removed
* *packages*: List of packages to include in a compose.
* *seconds to live*: Number of seconds after which the compose is removed
from the filesystem and is marked as "removed".
* flags: Various flags further defining the compose - for example the
"no_deps" flag saying that the [.title-ref]#packages# dependencies
* *flags*: Various flags further defining the compose - for example the
"no_deps" flag saying that the *packages* dependencies
should not be included in a compose.
The request is received by the ODCS flask app running on odcs-frontend
@ -59,7 +56,7 @@ executable. Backend also changes the compose request status to
"generating" and sends fedmsg message about this event.
The number of concurrent pungi processes can be set using the
[.title-ref]#num_concurrent_pungi# variable in ODCS configuration file.
_num_concurrent_pungi_ variable in ODCS configuration file.
The output directory for a compose is shared between frontend and
backend node. Once the compose is generated, the backend changes the
@ -73,10 +70,10 @@ default this is on https://odcs.fedoraproject.org/composes/ URL.
If the compose generation goes wrong, the backend changes the state of
the compose request to "failed" and again sends fedmsg message about
this event. The "failed" compose is still available for
[.title-ref]#seconds to live# time in the shared directory for further
*seconds to live* time in the shared directory for further
examination of pungi logs if needed.
After the [.title-ref]#seconds to live# time, the backend node removes
After the *seconds to live* time, the backend node removes
the compose from filesystem and changes the state of compose request to
"removed".
@ -85,7 +82,7 @@ reuse older compose instead of generating new one and points the new
compose to older one.
The "removed" compose can be renewed by a client to generate the same
compose as in the past. The [.title-ref]#seconds to live# attribute of a
compose as in the past. The *seconds to live* attribute of a
compose can be extended by a client when needed.
== Observing ODCS Behavior
@ -107,7 +104,7 @@ https://odcs.fedoraproject.org/composes.
== Removing compose before its expiration time
Members of FAS group defined in the [.title-ref]#admins# section of ODCS
Members of FAS group defined in the _admins_ section of ODCS
configuration can remove any compose by sending DELETE request to
following URL:
@ -119,23 +116,24 @@ The frontend logs are on odcs-frontend0[1-2] in
`/var/log/httpd/error_log` or `/var/log/httpd/ssl_error_log`.
The backend logs are on odcs-backend01. Look in the journal for the
[.title-ref]#odcs-backend# service.
_odcs-backend_ service.
== Upgrading
The package in question is [.title-ref]#odcs-server#. Please use the
[.title-ref]#playbooks/manual/upgrade/odcs.yml# playbook.
The package in question is _odcs-server_. Please use the
https://pagure.io/fedora-infra/ansible/blob/main/f/playbooks/manual/upgrade/odcs.yml[playbooks/manual/upgrade/odcs.yml]
playbook.
== Things that could go wrong
=== Not enough space on shared volume
In case there are too many composes, member of FAS group defined in the
ODCS configuration file [.title-ref]#admins# section should:
ODCS configuration file _admins_ section should:
* Remove the oldest composes to get some free space immediatelly. List
of such composes can be found on
https://odcs.fedoraproject.org/composes/ by sorting by Last modified
fields.
* Decrease the [.title-ref]#max_seconds_to_live# in ODCS configuration
* Decrease the *max_seconds_to_live* in ODCS configuration
file.