End Of Life

Description

Each release of Fedora is maintained as laid out in the maintenance schedule. At the conclusion of the maintenance period, a Fedora release enters end of life status. This procedure describes the tasks necessary to move a release to that status.

Actions

Reminder announcement

Send an email to devel@, devel-announce@, test-announce@, announce@ lists as remainder about the release EOL. Use template from release engineering repo

Koji tasks

  • Disable builds by removing targets

$ koji remove-target 36
$ koji remove-target 36-candidate
$ koji remove-target 36-container-candidate
$ koji remove-target 36-flatpak-candidate
$ koji remove-target 36-infra
$ koji remove-target 36-coreos-continuous
$ koji remove-target 36-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 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 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 "F36" --state archived
$ bodhi releases edit --name "F36M" --state archived
$ bodhi releases edit --name "F36C" --state archived
$ bodhi releases edit --name "F36F" --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:f36

Final announcement

  • Send the final announcement to devel@, devel-announce@, test-announce@, announce@ lists

Use template from release engineering repo

Update FedoraPreviousPrevious.yaml in ansible repository

set the variable to False

Move the EOL release to archive
  1. log into to bodhi-backend01 and become root

    $ ssh bodhi-backend01.iad2.fedoraproject.org
    $ sudo su
    $ su - ftpsync
  2. then change into the releases directory.

    $ cd /pub/fedora/linux/releases
  3. check to see that the target directory doesnt already exist.

    $ ls /pub/archive/fedora/linux/releases/
  4. do a recursive rsync to update any changes in the trees since the previous copy.

    $ rsync -avAXSHP ./36/ /pub/archive/fedora/linux/releases/36/
  5. we now do the updates and updates/testing in similar ways.

    $ cd ../updates/
    $ rsync -avAXSHP 36/ /pub/archive/fedora/linux/updates/36/
    $ cd testing
    $ rsync -avAXSHP 36/ /pub/archive/fedora/linux/updates/testing/36/
  6. do the same with fedora-secondary.

  7. announce to the mirror list this has been done and that in 2 weeks you will move the old trees to archives.

  8. 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='/36/Everything'
  9. 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.

  10. wait an hour or so then you can remove the files from the main tree.

    $ ssh bodhi-backend01
    $ cd /pub/fedora/linux
    $ cd releases/36
    $ ls # make sure you have stuff here
    $ rm -rf *
    $ ln ../20/README .
    $ cd ../../updates/36
    $ ls #make sure you have stuff here
    $ rm -rf *
    $ ln ../20/README .
    $ cd ../testing/36
    $ 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