[releng] - more EOL & compose docs

Signed-off-by: Tomas Hrcka <thrcka@redhat.com>
This commit is contained in:
Tomáš Hrčka 2023-03-03 09:08:14 +01:00
parent 0aab9c4758
commit dde340b904
4 changed files with 176 additions and 2 deletions

View file

@ -1,4 +1,4 @@
== Release candidate == Beta Release candidate
When Quality Engineering (QE) requests a Release Candidate (RC) they do When Quality Engineering (QE) requests a Release Candidate (RC) they do
so by opening an issue in the releng repository on pagure. Release so by opening an issue in the releng repository on pagure. Release

View file

@ -1,2 +1,3 @@
include::_partials/attributes.adoc[]
== Final Release candidate == Final Release candidate

View file

@ -1 +1,2 @@
include::_partials/attributes.adoc[]
== Fedora Final Freeze == Fedora Final Freeze

View file

@ -1,3 +1,4 @@
include::_partials/attributes.adoc[]
== End Of Life == End Of Life
=== Description === Description
@ -14,4 +15,175 @@ necessary to move a release to that status.
==== Reminder announcement ==== Reminder announcement
Send an email to devel@, devel-announce@, test-announce@, announce@ Send an email to devel@, devel-announce@, test-announce@, announce@
lists as remainder about the release EOL. Use https://pagure.io/releng/blob/main/f/mail-templates/07-end-of-life.txt[template] from release engineering repo lists as remainder about the release EOL. Use https://pagure.io/releng/blob/main/f/mail-templates/07-end-of-life.txt[template] from release engineering repo
==== Koji tasks
* Disable builds by removing targets
....
$ koji remove-target {old_release}
$ koji remove-target {old_release}-candidate
$ koji remove-target {old_release}-container-candidate
$ koji remove-target {old_release}-flatpak-candidate
$ koji remove-target {old_release}-infra
$ koji remove-target {old_release}-coreos-continuous
$ koji remove-target {old_release}-rebuild
$ koji remote-target <side-targets> #any side targets that are still around
....
* Purge from disk the signed copies of rpms that are signed with the
EOL'd release key. To acheive this, add the release key to
*koji_cleanup_signed.py* script in https://pagure.io/releng[releng] repo
and the script on compose-branched01.iad2.fedoraproject.org
....
./scripts/koji_cleanup_signed.py
....
==== PDC tasks
* Set PDC *active* value for the release to *False*
....
curl -u: -H 'Authorization: Token <token>' -H 'Accept: application/json' -H 'Content-Type:application/json' -X PATCH -d '{"active":"false"}' https://pdc.fedoraproject.org/rest_api/v1/releases/fedora-31/
....
* Set the EOL dates in PDC for all the components to the release EOL
date if they are not already set. Run the following script from
https://pagure.io/releng[releng] repo
....
python scripts/pdc/adjust-eol-all.py <token> f31 2020-11-24
....
==== Bodhi tasks
* Run the following bodhi commands to set the releases state to
*archived*
....
$ bodhi releases edit --name "F31" --state archived
$ bodhi releases edit --name "F31M" --state archived
$ bodhi releases edit --name "F31C" --state archived
$ bodhi releases edit --name "F31F" --state archived
....
==== Fedora Infra Ansible Changes
* We need to make changes to bodhi, koji, mbs, releng, autosign roles in
ansible repo.
* Run the associated playbooks on _batcave_
....
$ sudo ansible-playbook /srv/web/infra/ansible/playbooks/groups/bodhi-backend.yml
$ sudo ansible-playbook /srv/web/infra/ansible/playbooks/groups/koji-hub.yml
$ sudo ansible-playbook /srv/web/infra/ansible/playbooks/groups/mbs.yml
$ sudo ansible-playbook /srv/web/infra/ansible/playbooks/groups/releng-compose.yml
$ sudo ansible-playbook /srv/web/infra/ansible/playbooks/groups/proxies -t pkgdb2
$ sudo ansible-playbook /srv/web/infra/ansible/playbooks/manual/autosign.yml
$ sudo ansible-playbook /srv/web/infra/ansible/playbooks/openshift-apps/bodhi.yml
....
==== MBS Platform Retirement
* To retire the platform in mbs, run the following command on
mbs-backend01.iad2.fedoraproject.org
....
$ sudo mbs-manager retire platform:f31
....
==== Final announcement
* Send the final announcement to devel@, devel-announce@,
test-announce@, announce@ lists
Use https://pagure.io/releng/blob/main/f/mail-templates/07-end-of-life.txt[template] from release engineering repo
===== Update FedoraPreviousPrevious.yaml in ansible repository
set the variable to False
===== Move the EOL release to archive
. log into to bodhi-backend01 and become root
+
____
....
$ ssh bodhi-backend01.iad2.fedoraproject.org
$ sudo su
$ su - ftpsync
....
____
. then change into the releases directory.
+
____
....
$ cd /pub/fedora/linux/releases
....
____
. check to see that the target directory doesnt already exist.
+
____
....
$ ls /pub/archive/fedora/linux/releases/
....
____
. do a recursive rsync to update any changes in the trees since the
previous copy.
+
____
....
$ rsync -avAXSHP ./35/ /pub/archive/fedora/linux/releases/35/
....
____
. we now do the updates and updates/testing in similar ways.
+
____
....
$ cd ../updates/
$ rsync -avAXSHP 35/ /pub/archive/fedora/linux/updates/35/
$ cd testing
$ rsync -avAXSHP 35/ /pub/archive/fedora/linux/updates/testing/35/
....
____
. do the same with fedora-secondary.
. announce to the mirror list this has been done and that in 2 weeks you
will move the old trees to archives.
. in two weeks, log into mm-backend01 and run the archive script
+
____
....
$ sudo -u mirrormanager mm2_move-to-archive --originalCategory="Fedora Linux" --archiveCategory="Fedora Archive" --directoryRe='/35/Everything'
....
____
. if there are problems, the postgres DB may have issues and so you need
to get a DBA to update the backend to fix items.
. wait an hour or so then you can remove the files from the main tree.
+
____
....
$ ssh bodhi-backend01
$ cd /pub/fedora/linux
$ cd releases/35
$ ls # make sure you have stuff here
$ rm -rf *
$ ln ../20/README .
$ cd ../../updates/35
$ ls #make sure you have stuff here
$ rm -rf *
$ ln ../20/README .
$ cd ../testing/35
$ ls # make sure you have stuff here
$ rm -rf *
$ ln ../20/README .
....
____
== Consider Before Running
* Resource contention in infrastructure, such as outages
* Extenuating circumstances for specific planned updates, if any
* Send the reminder announcement, if it isn't sent already