Clark Boylan 279cb28e34 Add Noble packages to Docker mirror
Each Ubuntu and Debian release get a separate independent repository
(though served from the same AFS volume) which means we need to
explicitly add each release to reprepro when they occur. Now that we've
switched to Noble as our default nodeset it has become apparent we did
not do this for Noble's Docker packages.

Go ahead and add a debian docker noble mirror. Note that reprepro has a
*.log logrotate rule for all logs produced by reprepro so we don't need
to explicitly add a rule for the new log file. We also don't need a new
volume in AFS as a single deb-docker volume is used for all of these
repo mirrors.

We pin the tox-linters and buildset-registry jobs to jammy because they
don't currently run on Noble. Linters faile because we need to use newer
hacking whcih we'll do in a followup that cleans up new errors and the
registry fails due to the issue we are trying to fix in this very change
(need docker packages for noble).

Change-Id: I289f19a11539b490c3b7327d01d517948b95e072
2024-08-21 16:39:56 -07:00

44 lines
1.4 KiB
YAML

- name: Deploy Docker key
include_tasks: utils/keys.yaml
vars:
_keys:
- { key_id: '0EBFCD88', file: 'debian-docker.asc' }
# Unfortunately docker upstream doesn't do the pool model correctly,
# and we have to mirror each distro separately to avoid file
# conflicts (they have the same .deb files)
- name: Copy Debian Docker Xenial config
include_tasks: utils/copy-config.yaml
vars:
_dir: 'debian-docker-xenial'
- name: Copy Debian Docker Bionic
include_tasks: utils/copy-config.yaml
vars:
_dir: 'debian-docker-bionic'
- name: Copy Debian Docker Focal config
include_tasks: utils/copy-config.yaml
vars:
_dir: 'debian-docker-focal'
- name: Copy Debian Docker Jammy config
include_tasks: utils/copy-config.yaml
vars:
_dir: 'debian-docker-jammy'
- name: Copy Debian Docker Noble config
include_tasks: utils/copy-config.yaml
vars:
_dir: 'debian-docker-noble'
# Beacuse they all live on the same volume, run in order
- name: Install update cron jobs
cron:
name: 'Debian Docker reprepro mirror sync'
job: 'flock -n /var/run/reprepro/debian-docker.lock bash -c "for DISTRO in xenial bionic focal jammy noble; do reprepro-mirror-update /etc/reprepro/debian-docker-\$DISTRO mirror.deb-docker >>/var/log/reprepro/debian-docker-\$DISTRO-mirror.log 2>&1; done"'
state: present
hour: '*/2'
minute: '{{ 45 | random(seed=inventory_hostname) }}'