feat: implement automatic, atomic, and push-based repository synchronization
- Switched from systemd path monitoring to a custom wrapper script `mxos-trigger-dist-repo.sh` spawned by the Koji signing spooler. - Wrapper script runs Koji `dist-repo` synchronously and triggers the `mxos-repo-sync.sh` script to perform an atomic rsync of packages to the Caddy server. - Excluded reposerver from distro-sync to work around VM disk space constraints. - Configured Koji tag `mxos0` to cancel older pending/running `distRepo` tasks when a new one is triggered. - Verified successful repository generation, synchronization, and DNF resolution. Co-developed-by: Gemini AI <renich+gemini@woralelandia.com> Signed-off-by: Rénich Bon Ćirić <renich@woralelandia.com>
This commit is contained in:
parent
70060e9791
commit
38a0669db8
11 changed files with 191 additions and 54 deletions
|
|
@ -50,59 +50,59 @@
|
|||
changed_when: "'Target created' in koji_bootstrap_add_target_result.stdout"
|
||||
failed_when: "koji_bootstrap_add_target_result.rc != 0 and 'already exists' not in koji_bootstrap_add_target_result.stderr"
|
||||
|
||||
- name: Add CentOS Stream 10 BaseOS external repository
|
||||
ansible.builtin.command: >
|
||||
sudo -u {{ koji_admin_user }} koji
|
||||
--config={{ koji_hub_admin_user_koji_dir }}/config
|
||||
add-external-repo -t {{ koji_build_tag }}-build centos-stream-10-baseos
|
||||
{{ centos_stream_10_baseos_url }}
|
||||
register: koji_bootstrap_add_baseos_repo_result
|
||||
changed_when: "'External repository created' in koji_bootstrap_add_baseos_repo_result.stdout"
|
||||
failed_when: "koji_bootstrap_add_baseos_repo_result.rc != 0 and 'already exists' not in koji_bootstrap_add_baseos_repo_result.stderr"
|
||||
- name: Configure external repositories
|
||||
block:
|
||||
- name: Ensure external repositories exist globally
|
||||
ansible.builtin.command: >
|
||||
sudo -u {{ koji_admin_user }} koji
|
||||
--config={{ koji_hub_admin_user_koji_dir }}/config
|
||||
add-external-repo {{ item.name }} {{ item.url }}
|
||||
loop:
|
||||
- { name: "centos-stream-10-baseos", url: "{{ centos_stream_10_baseos_url }}" }
|
||||
- { name: "centos-stream-10-appstream", url: "{{ centos_stream_10_appstream_url }}" }
|
||||
- { name: "centos-stream-10-epel", url: "https://mirror.facebook.net/fedora/epel/10/Everything/x86_64/" }
|
||||
- { name: "centos-stream-10-crb", url: "https://mirror.stream.centos.org/10-stream/CRB/x86_64/os/" }
|
||||
register: koji_add_ext_repo_global
|
||||
changed_when: "'External repository created' in koji_add_ext_repo_global.stdout"
|
||||
failed_when: "koji_add_ext_repo_global.rc != 0 and 'already exists' not in koji_add_ext_repo_global.stderr"
|
||||
|
||||
- name: Update CentOS Stream 10 BaseOS external repository URL
|
||||
ansible.builtin.command: >
|
||||
sudo -u {{ koji_admin_user }} koji
|
||||
--config={{ koji_hub_admin_user_koji_dir }}/config
|
||||
edit-external-repo --url={{ centos_stream_10_baseos_url }} centos-stream-10-baseos
|
||||
changed_when: false
|
||||
- name: Ensure external repositories are associated with tag
|
||||
ansible.builtin.command: >
|
||||
sudo -u {{ koji_admin_user }} koji
|
||||
--config={{ koji_hub_admin_user_koji_dir }}/config
|
||||
add-external-repo -t {{ koji_build_tag }}-build {{ item.name }}
|
||||
loop:
|
||||
- { name: "centos-stream-10-baseos" }
|
||||
- { name: "centos-stream-10-appstream" }
|
||||
- { name: "centos-stream-10-epel" }
|
||||
- { name: "centos-stream-10-crb" }
|
||||
register: koji_add_ext_repo_tag
|
||||
changed_when: "'Added external repo' in koji_add_ext_repo_tag.stdout"
|
||||
failed_when: "koji_add_ext_repo_tag.rc != 0 and 'already associated' not in koji_add_ext_repo_tag.stderr"
|
||||
|
||||
- name: Add CentOS Stream 10 AppStream external repository
|
||||
ansible.builtin.command: >
|
||||
sudo -u {{ koji_admin_user }} koji
|
||||
--config={{ koji_hub_admin_user_koji_dir }}/config
|
||||
add-external-repo -t {{ koji_build_tag }}-build centos-stream-10-appstream
|
||||
{{ centos_stream_10_appstream_url }}
|
||||
register: koji_bootstrap_add_appstream_repo_result
|
||||
changed_when: "'External repository created' in koji_bootstrap_add_appstream_repo_result.stdout"
|
||||
failed_when: "koji_bootstrap_add_appstream_repo_result.rc != 0 and 'already exists' not in koji_bootstrap_add_appstream_repo_result.stderr"
|
||||
- name: Ensure external repository URLs are updated
|
||||
ansible.builtin.command: >
|
||||
sudo -u {{ koji_admin_user }} koji
|
||||
--config={{ koji_hub_admin_user_koji_dir }}/config
|
||||
edit-external-repo --url={{ item.url }} {{ item.name }}
|
||||
loop:
|
||||
- { name: "centos-stream-10-baseos", url: "{{ centos_stream_10_baseos_url }}" }
|
||||
- { name: "centos-stream-10-appstream", url: "{{ centos_stream_10_appstream_url }}" }
|
||||
- { name: "centos-stream-10-epel", url: "https://mirror.facebook.net/fedora/epel/10/Everything/x86_64/" }
|
||||
- { name: "centos-stream-10-crb", url: "https://mirror.stream.centos.org/10-stream/CRB/x86_64/os/" }
|
||||
changed_when: false
|
||||
|
||||
- name: Update CentOS Stream 10 AppStream external repository URL
|
||||
ansible.builtin.command: >
|
||||
sudo -u {{ koji_admin_user }} koji
|
||||
--config={{ koji_hub_admin_user_koji_dir }}/config
|
||||
edit-external-repo --url={{ centos_stream_10_appstream_url }} centos-stream-10-appstream
|
||||
changed_when: false
|
||||
|
||||
- name: Add CentOS Stream 10 EPEL external repository
|
||||
ansible.builtin.command: >
|
||||
sudo -u {{ koji_admin_user }} koji
|
||||
--config={{ koji_hub_admin_user_koji_dir }}/config
|
||||
add-external-repo -t {{ koji_build_tag }}-build centos-stream-10-epel
|
||||
https://mirror.facebook.net/fedora/epel/10/Everything/x86_64/
|
||||
register: koji_bootstrap_add_epel_repo_result
|
||||
changed_when: "'External repository created' in koji_bootstrap_add_epel_repo_result.stdout"
|
||||
failed_when: "koji_bootstrap_add_epel_repo_result.rc != 0 and 'already exists' not in koji_bootstrap_add_epel_repo_result.stderr"
|
||||
|
||||
- name: Add CentOS Stream 10 CRB external repository
|
||||
ansible.builtin.command: >
|
||||
sudo -u {{ koji_admin_user }} koji
|
||||
--config={{ koji_hub_admin_user_koji_dir }}/config
|
||||
add-external-repo -t {{ koji_build_tag }}-build centos-stream-10-crb
|
||||
https://mirror.stream.centos.org/10-stream/CRB/x86_64/os/
|
||||
register: koji_bootstrap_add_crb_repo_result
|
||||
changed_when: "'External repository created' in koji_bootstrap_add_crb_repo_result.stdout"
|
||||
failed_when: "koji_bootstrap_add_crb_repo_result.rc != 0 and 'already exists' not in koji_bootstrap_add_crb_repo_result.stderr"
|
||||
- name: Ensure external repository merge modes and priorities are set to bare
|
||||
ansible.builtin.command: >
|
||||
sudo -u {{ koji_admin_user }} koji
|
||||
--config={{ koji_hub_admin_user_koji_dir }}/config
|
||||
edit-external-repo -t {{ koji_build_tag }}-build -m bare -p {{ item.priority }} {{ item.name }}
|
||||
loop:
|
||||
- { name: "centos-stream-10-baseos", priority: 25 }
|
||||
- { name: "centos-stream-10-appstream", priority: 30 }
|
||||
- { name: "centos-stream-10-epel", priority: 15 }
|
||||
- { name: "centos-stream-10-crb", priority: 20 }
|
||||
changed_when: false
|
||||
|
||||
- name: Download repomd.xml from CentOS Stream 10 build repo
|
||||
ansible.builtin.get_url:
|
||||
|
|
|
|||
Loading…
Reference in a new issue