From 5acf648df8d52065d2c65f0618ce0d8bc6748fea Mon Sep 17 00:00:00 2001 From: Carl George Date: Nov 07 2025 05:49:36 +0000 Subject: Create initial EPEL minor version EOL process Signed-off-by: Carl George --- diff --git a/modules/ROOT/nav.adoc b/modules/ROOT/nav.adoc index 6739668..64e943b 100644 --- a/modules/ROOT/nav.adoc +++ b/modules/ROOT/nav.adoc @@ -53,6 +53,7 @@ *** xref:release_guide:sop_final_release.adoc[Final Release] *** xref:release_guide:sop_post-release_cleanup.adoc[Post-Release Cleanup] *** xref:release_guide:sop_release_eol.adoc[End Of Life] +*** xref:release_guide:sop_epel_minor_eol.adoc[EPEL Minor Version End of Life] ** xref:releng_misc_guide:index.adoc[Miscellaneous SOPs] *** xref:releng_misc_guide:sop_unretire.adoc[Unretire a Package] *** xref:releng_misc_guide:sop_package_blocking.adoc[Block a Package] diff --git a/modules/release_guide/pages/sop_epel_minor_eol.adoc b/modules/release_guide/pages/sop_epel_minor_eol.adoc new file mode 100644 index 0000000..04b5d53 --- /dev/null +++ b/modules/release_guide/pages/sop_epel_minor_eol.adoc @@ -0,0 +1,199 @@ +include::_partials/attributes.adoc[] + += EPEL Minor Version End of Life + +== Description + +Each minor release of EPEL is maintained as laid out in +xref:epel:epel-policy.adoc#policy_for_end_of_life_releases[EPEL policy]. + + +At the conclusion of the maintenance period, +an EPEL release enters "End of Life" status, +also known as retirement. +This procedure describes the tasks necessary to move a release to that status. + +== Actions + +=== Reminder announcement + +Before the actual retirement takes place, +send a reminder that it will be happening soon. +Post this to Fedora Discussion in the +https://discussion.fedoraproject.org/c/project/7[Project Discussion category] +with the `#epel-sig` tag +(https://discussion.fedoraproject.org/t/upcoming-epel-10-0-retirement/171810[example]). +Also send an email to the `epel-devel@` and `devel@` lists +(https://lists.fedoraproject.org/archives/list/epel-devel@lists.fedoraproject.org/thread/JUFNPNAYY6CECX54UN64IPBECTMDVDMM/[example]). + +[NOTE] +==== +We're not able to declare a specific date for the retirement +because it is dependent on the RHEL schedule. +As a rough guideline, +try to send the reminder announcement at the beginning of the month +in which the next RHEL minor version is expected to occur. +==== + +=== Koji tasks + +Disable builds by removing targets. + +[source,console,subs="attributes"] +---- +$ koji remove-target epel10.0 +$ koji remove-target epel10.0-candidate +---- + +Remove any existing sidetags from the EOL release. + +[source,console,subs="attributes"] +---- +$ koji remove-sidetag $(koji list-sidetags --basetag epel10.0-build) +---- + +This must be done with `+koji remove-sidetag+` and not `+koji remove-target+` +because just removing the target of a sidetag will leave it in a weird state where it cannot be removed. + + +=== Final stable push + +Do a final stable push for the EPEL-10.0 release in Bodhi, following the +xref:releng_misc_guide:sop_pushing_updates.adoc[Pushing Updates SOP]. + +=== Bodhi tasks + +Run the following bodhi commands to set the EPEL-10.0 release to the *archived* state. + +[source,console,subs="attributes"] +---- +$ bodhi releases edit --name EPEL-10.0 --state archived +---- + +=== Fedora Infra Ansible Changes + +We need to make some changes and then run several roles in the ansible repo. + +==== Update EPEL.yaml in ansible repository + +Edit `+/vars/all/EPEL.yaml+` and change: + +* `+epel_branched_minor+` from `+1+` to `+false+` +* `+epel_z_minor+` from `+0+` to `+1+` + +==== Remove EOL release from new-updates-sync + +Edit `+roles/bodhi2/backend/files/new-updates-sync+` +and remove the `+epel10.0+` section of the `+RELEASES+` dictionary. + +==== Switch rhel10-sync to new minor version + +Switch `+RELEASEVERS+` in `+roles/batcave/files/rhel10-sync+` from `+10.0+` to `+10.1+`. + +==== Run the playbooks + +First, push the above edits. Then run the associated playbooks on _batcave01_: + +[source,console,subs="attributes"] +---- +$ 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/openshift-apps/bodhi.yml +---- + +You will need to have someone enable sshd on autosign02 and then run: + +[source,console,subs="attributes"] +---- +$ sudo ansible-playbook /srv/web/infra/ansible/playbooks/manual/autosign.yml +---- + +And then someone with the robosignatory passphrase will need to restart it. + +[NOTE] +==== +Another way to run the playbook is using rbac-playbook, in case you don't have sysadmin-main rights or can't become root. +Syntax: sudo rbac-playbook groups/bodhi-backend.yml +==== + +=== Manually sync RHEL repos + +Normally RHEL repos are synced via a cron job, +but run them manually the first time to ensure completion. +Run the sync script on _batcave01_: + +[source,console,subs="attributes"] +---- +$ sudo /mnt/fedora/app/fi-repo/rhel/rhel10/rhel10-sync +---- + +=== Koji tasks again + +Remove the CentOS snapshot external repos. + +[source,console,subs="attributes"] +---- +$ koji remove-external-repo c10-snapshot-baseos epel10.1-base +$ koji remove-external-repo c10-snapshot-appstream epel10.1-base +$ koji remove-external-repo c10-snapshot-crb epel10.1-base +---- + +Add the RHEL 10.1 external repos. + +[source,console,subs="attributes"] +---- +$ koji add-external-repo --mode bare --priority 10 --tag epel10.1-base rhel10.1-baseos 'https://infrastructure.fedoraproject.org/repo/rhel/rhel10/10.1/repos/$arch/baseos/' +$ koji add-external-repo --mode bare --priority 20 --tag epel10.1-base rhel10.1-appstream 'https://infrastructure.fedoraproject.org/repo/rhel/rhel10/10.1/repos/$arch/appstream/' +$ koji add-external-repo --mode bare --priority 30 --tag epel10.1-base rhel10.1-crb 'https://infrastructure.fedoraproject.org/repo/rhel/rhel10/10.1/repos/$arch/crb/' +---- + +Move epel10z floating tag to next minor version. + +[source,console,subs="attributes"] +---- +$ koji remove-tag-inheritance epel10z epel10.0 +$ koji add-tag-inheritance epel10z epel10.1 +---- + +Move epel10-infra floating tag to next minor version. + +[source,console,subs="attributes"] +---- +$ koji remove-tag-inheritance epel10-infra epel10.0-build +$ koji add-tag-inheritance epel10-infra epel10.1-build +---- + +=== Mirror tasks + +Log into the +https://mirrormanager.fedoraproject.org/admin/[MirrorManager Admin Panel] +and reconfigure the repository redirects as follows. + +* epel-z-10 → epel-z-10.1 +* epel-z-debug-10 → epel-z-debug-10.1 +* epel-z-source-10 → epel-z-source-10.1 +* epel-z-testing-10 → epel-z-testing-10.1 +* epel-z-testing-debug-10 → epel-z-testing-debug-10.1 +* epel-z-testing-source-10 → epel-z-testing-source-10.1 + +Run the following commands on _batcave01_ to switch symlinks on the mirrors. + +[source,console,subs="attributes"] +---- +$ sudo ln -sfn 10.1 /pub/epel/10z +$ sudo ln -sfn 10.1 /pub/epel/testing/10z +---- + +=== Final announcement + +Announce the completion of the retirement. +Post this to Fedora Discussion in the +https://discussion.fedoraproject.org/c/project/7[Project Discussion category] +with the `#epel-sig` tag. +Also send an email to the `epel-devel@` and `devel@` lists. + +== 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