From 0f4ea0ff920edebf3293852c0536f495b8af8790 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michal=20Kone=C4=8Dn=C3=BD?= Date: Tue, 7 Sep 2021 15:09:57 +0200 Subject: [PATCH] Review odcs 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/odcs.adoc | 44 ++++++++++++-------------- 2 files changed, 22 insertions(+), 24 deletions(-) diff --git a/modules/sysadmin_guide/nav.adoc b/modules/sysadmin_guide/nav.adoc index a45ff56..70340c1 100644 --- a/modules/sysadmin_guide/nav.adoc +++ b/modules/sysadmin_guide/nav.adoc @@ -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 ] diff --git a/modules/sysadmin_guide/pages/odcs.adoc b/modules/sysadmin_guide/pages/odcs.adoc index 79cd5fe..7592c23 100644 --- a/modules/sysadmin_guide/pages/odcs.adoc +++ b/modules/sysadmin_guide/pages/odcs.adoc @@ -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.