Implement variables for EPEL minor version management
This introduces a set of variables for managing infrastructure changes as EPEL minor versions change over time. This should drastically simplify our changes during EPEL mass branching. This also drops the earlier attempt of EPELCycleNumber and EPELBootstrapNumber variables, which are no longer used. Signed-off-by: Carl George <carlwgeorge@gmail.com>
This commit is contained in:
parent
f912e96049
commit
79259c6911
8 changed files with 51 additions and 51 deletions
|
|
@ -116,7 +116,7 @@
|
|||
# bodhi2/backend/files/koji_sync_listener.py
|
||||
# This cronjob runs only once a day. The listener script runs reactively.
|
||||
cron: name="owner-sync" minute="15" hour="4" user="root"
|
||||
job="/usr/local/bin/lock-wrapper owner-sync '/usr/local/bin/owner-sync-pagure f44 f43 f42 f41 epel10.1 epel10.0 epel9 epel9-next epel8'"
|
||||
job="/usr/local/bin/lock-wrapper owner-sync '/usr/local/bin/owner-sync-pagure f44 f43 f42 f41 {{ epel_tags | join(' ') }} epel9 epel9-next epel8'"
|
||||
cron_file=update-koji-owner
|
||||
user=apache
|
||||
when: env == "production"
|
||||
|
|
|
|||
|
|
@ -47,8 +47,9 @@ taglist = [
|
|||
"f41",
|
||||
"f41-container",
|
||||
"f41-flatpak",
|
||||
"epel10.1",
|
||||
"epel10.0",
|
||||
{% for tag in epel_tags %}
|
||||
"{{ tag }}",
|
||||
{% endfor %}
|
||||
"epel9",
|
||||
"epel9-next",
|
||||
"epel8",
|
||||
|
|
|
|||
|
|
@ -228,7 +228,7 @@ package_list =
|
|||
# Stable releases: only adding and unblocking is allowed.
|
||||
tag f{{FedoraCycleNumber}} f{{FedoraPreviousCycleNumber}} && match action add unblock :: allow
|
||||
# EPEL: adding, blocking, and unblocking are allowed
|
||||
tag epel8 epel9 epel9-next epel10.0 epel10.1 && match action add unblock block :: allow
|
||||
tag epel8 epel9 epel9-next {{ epel_tags | join(' ') }} && match action add unblock block :: allow
|
||||
}
|
||||
# Infra people can themselves add/block/unblock packages in their
|
||||
# tags without bothering admins.
|
||||
|
|
@ -248,8 +248,9 @@ sidetag =
|
|||
tag f42-build :: allow
|
||||
tag f41-build :: allow
|
||||
tag eln-build :: allow
|
||||
tag epel10.1-build :: allow
|
||||
tag epel10.0-build :: allow
|
||||
{% for tag in epel_tags %}
|
||||
tag {{ tag }}-build :: allow
|
||||
{% endfor %}
|
||||
tag epel9-next-build :: allow
|
||||
tag epel9-build :: allow
|
||||
tag epel8-build :: allow
|
||||
|
|
|
|||
|
|
@ -248,29 +248,19 @@ handlers = ["console"]
|
|||
|
||||
# Gated bodhi updates
|
||||
|
||||
{% for tag in epel_tags %}
|
||||
[[consumer_config.koji_instances.primary.tags]]
|
||||
from = "epel10.1-signing-pending"
|
||||
to = "epel10.1-testing-pending"
|
||||
key = "{{ (env == 'production')|ternary('epel-10', 'testkey') }}"
|
||||
keyid = "{{ (env == 'production')|ternary('e37ed158', 'd300e724') }}"
|
||||
from = "{{ tag }}-signing-pending"
|
||||
to = "{{ tag }}-testing-pending"
|
||||
key = "{{ (env == 'production')|ternary('epel-{}'.format(epel_major), 'testkey') }}"
|
||||
keyid = "{{ (env == 'production')|ternary(epel_key, 'd300e724') }}"
|
||||
|
||||
[consumer_config.koji_instances.primary.tags.sidetags]
|
||||
pattern = 'epel10.1-build-side-<seq_id>'
|
||||
from = '<sidetag>-signing-pending'
|
||||
to = '<sidetag>-testing-pending'
|
||||
trusted_taggers = ['bodhi']
|
||||
|
||||
[[consumer_config.koji_instances.primary.tags]]
|
||||
from = "epel10.0-signing-pending"
|
||||
to = "epel10.0-testing-pending"
|
||||
key = "{{ (env == 'production')|ternary('epel-10', 'testkey') }}"
|
||||
keyid = "{{ (env == 'production')|ternary('e37ed158', 'd300e724') }}"
|
||||
|
||||
[consumer_config.koji_instances.primary.tags.sidetags]
|
||||
pattern = 'epel10.0-build-side-<seq_id>'
|
||||
pattern = '{{ tag }}-build-side-<seq_id>'
|
||||
from = '<sidetag>-signing-pending'
|
||||
to = '<sidetag>-testing-pending'
|
||||
trusted_taggers = ['bodhi']
|
||||
{% endfor %}
|
||||
|
||||
[[consumer_config.koji_instances.primary.tags]]
|
||||
from = "epel9-signing-pending"
|
||||
|
|
|
|||
|
|
@ -1,2 +0,0 @@
|
|||
---
|
||||
EPELCycleNumber: 9
|
||||
26
vars/all/EPEL.yaml
Normal file
26
vars/all/EPEL.yaml
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
---
|
||||
# The most recent EPEL major version.
|
||||
epel_major: 10
|
||||
|
||||
# The GPG key ID for this EPEL major version.
|
||||
epel_key: "e37ed158"
|
||||
|
||||
# The EPEL minor version that matches CentOS. Set to false once CentOS reaches
|
||||
# EOL, i.e. the start of the RHEL maintenance phase.
|
||||
epel_minor: 1
|
||||
|
||||
# The EPEL minor version that has been branched, but doesn't have a
|
||||
# mathing RHEL minor version released yet. Set to false if not available.
|
||||
epel_branched_minor: false
|
||||
|
||||
# The EPEL minor version that matches RHEL. Set to false prior to the RHEL GA.
|
||||
epel_z_minor: 0
|
||||
|
||||
# Assemble a list of EPEL tag names. When a minor version is set to false,
|
||||
# that list item will be an empty string, which is then removed with select in
|
||||
# the epel_tags list.
|
||||
epel_tags_in:
|
||||
- "{{ '' if epel_minor is false else 'epel{}.{}'.format(epel_major, epel_minor) }}"
|
||||
- "{{ '' if epel_branched_minor is false else 'epel{}.{}'.format(epel_major, epel_branched_minor) }}"
|
||||
- "{{ '' if epel_z_minor is false else 'epel{}.{}'.format(epel_major, epel_z_minor) }}"
|
||||
epel_tags: "{{ epel_tags_in | select }}"
|
||||
|
|
@ -1,2 +0,0 @@
|
|||
---
|
||||
EPELBootstrapNumber: "{{ EPELCycleNumber|int + 1 }}.0"
|
||||
|
|
@ -37,31 +37,17 @@ FedoraPreviousPrevious.yaml - true if there is a previous previous, otherwise fa
|
|||
FedoraRawhideNumber.yaml - The number of the current rawhide
|
||||
Frozen.yaml - If infra (InfraFrozen) and the pending release (NextReleaseFrozen) are frozen or not, true or false
|
||||
|
||||
This directory also contains variables (one per file) that are loaded into
|
||||
various playbooks. The first set of these is to allow templates to
|
||||
handle the various stages of EPEL development so we don't have to
|
||||
remember all the places that need changing.
|
||||
|
||||
There's 3 states for EPEL releases:
|
||||
The second set of these is to allow templates to handle the various stages of
|
||||
EPEL minor versions so we don't have to remember all the places that need
|
||||
changing. These only apply to EPEL 10 going forward, as previous major
|
||||
versions didn't have minor versions.
|
||||
|
||||
1:
|
||||
There are several states that an EPEL minor version will move through.
|
||||
|
||||
EPEL N (stable)
|
||||
EPEL N-1 (stable)
|
||||
* epel_minor: built from epelX branch against CentOS
|
||||
* epel_branched_minor: built from epelX.Y branch against CentOS snapshot
|
||||
* epel_z_minor: built from epelX.Y branch against RHEL
|
||||
|
||||
2: We enable branch requests for a new release:
|
||||
|
||||
EPEL N+1 (bootstrap)
|
||||
EPEL N (stable)
|
||||
EPEL N-1 (stable)
|
||||
|
||||
3. That release is launched:
|
||||
|
||||
EPEL N (stable)
|
||||
EPEL N-1 (stable)
|
||||
EPEL N-2 (stable)
|
||||
|
||||
These are controlled by some variables:
|
||||
|
||||
00-EPELCycleNumber.yaml - The current stable release
|
||||
EPELBootstrapNumber.yaml - The number of the bootstrap release
|
||||
At any given time, we may have one, two, or three active minor version branches
|
||||
for an EPEL major version. See the comments in EPEL.yaml for more details.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue