From 15a3eb26582ac92b06a119f749845e157cf80c29 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aur=C3=A9lien=20Bompard?= Date: Tue, 6 Aug 2024 07:51:15 +0200 Subject: [PATCH] MirrorManager: add a command to rebuild a repo MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Aurélien Bompard --- .../mirrormanager/emergency-expire-repo.yml | 37 +++++++++++++++++++ .../templates/cmd-emergency-expire-repo.yml | 30 --------------- .../mirrormanager/templates/configmap.yml | 2 - .../templates/emergency-expire-repo.sh | 8 ---- 4 files changed, 37 insertions(+), 40 deletions(-) create mode 100644 playbooks/manual/mirrormanager/emergency-expire-repo.yml delete mode 100644 roles/openshift-apps/mirrormanager/templates/cmd-emergency-expire-repo.yml delete mode 100644 roles/openshift-apps/mirrormanager/templates/emergency-expire-repo.sh diff --git a/playbooks/manual/mirrormanager/emergency-expire-repo.yml b/playbooks/manual/mirrormanager/emergency-expire-repo.yml new file mode 100644 index 0000000000..31803ccf86 --- /dev/null +++ b/playbooks/manual/mirrormanager/emergency-expire-repo.yml @@ -0,0 +1,37 @@ +# This playbook forces an update of the mirrorlist cache in MirrorManager + +# Usage: +# --extra-vars="product='EPEL' version='7'" +# product => The product name in MirrorManager's DB. Currently one of: +# "Fedora", "EPEL" or "RHEL" +# version => The version that must be expired and updated. + +- name: Run the emergency-expire-repo script + hosts: os_control[0]:os_control_stg[0] + user: root + vars_files: + - /srv/web/infra/ansible/vars/global.yml + - /srv/private/ansible/vars.yml + - /srv/web/infra/ansible/vars/{{ ansible_distribution }}.yml + - /srv/web/infra/ansible/vars/apps/mirrormanager.yml + handlers: + - import_tasks: "{{ handlers_path }}/restart_services.yml" + + pre_tasks: + - name: Validate the product {{ product }} + assert: + that: + - product is defined + - product in ["Fedora", "EPEL", "RHEL"] + fail_msg: "The 'product' variable is not set correctly" + - name: Validate the version {{ version }} + assert: + that: + - version is defined + fail_msg: "The 'version' variable is not defined" + + roles: + - role: openshift/job + app: mirrormanager + name: emergency-expire-repo-{{ product|lower|replace(" ", "-") }}-{{ version|lower|replace(" ", "-") }} + command: "/opt/app-root/bin/mm2_emergency-expire-repo {{ product }} {{ version }} && bash /opt/scripts/update-mirrorlist-cache.sh" diff --git a/roles/openshift-apps/mirrormanager/templates/cmd-emergency-expire-repo.yml b/roles/openshift-apps/mirrormanager/templates/cmd-emergency-expire-repo.yml deleted file mode 100644 index de6ee02f1d..0000000000 --- a/roles/openshift-apps/mirrormanager/templates/cmd-emergency-expire-repo.yml +++ /dev/null @@ -1,30 +0,0 @@ -{% from "_macros.yml" import common_volume_mounts, common_volumes, common_env, security_context with context %} -# Manual command ---- -apiVersion: batch/v1 -kind: Job -metadata: - name: {{ job_name }} -spec: - parallelism: 1 - completions: 1 - activeDeadlineSeconds: 1800 - backoffLimit: 3 - template: - spec: - restartPolicy: Never - containers: - - name: mirrormanager - image: image-registry.openshift-image-registry.svc:5000/mirrormanager/mirrormanager2:latest - command: - - "bash" - - "/opt/scripts/emergency-expire-repo.sh" - - "{{ product }}" - - "{{ version }}" - env: - {{ common_env() }} - volumeMounts: - {{ common_volume_mounts(with_ssh=True) }} - volumes: - {{ common_volumes(with_ssh=True) }} - {{ security_context() }} diff --git a/roles/openshift-apps/mirrormanager/templates/configmap.yml b/roles/openshift-apps/mirrormanager/templates/configmap.yml index 10809d4347..1da3c0c792 100644 --- a/roles/openshift-apps/mirrormanager/templates/configmap.yml +++ b/roles/openshift-apps/mirrormanager/templates/configmap.yml @@ -50,5 +50,3 @@ items: {{ load_file('update-mirrorlist-cache.sh') | indent(6) }} primary-mirror-wrapper.sh: |- {{ load_file('primary-mirror-wrapper.sh') | indent(6) }} - emergency-expire-repo.sh: |- - {{ load_file('emergency-expire-repo.sh') | indent(6) }} diff --git a/roles/openshift-apps/mirrormanager/templates/emergency-expire-repo.sh b/roles/openshift-apps/mirrormanager/templates/emergency-expire-repo.sh deleted file mode 100644 index bc1931d8c8..0000000000 --- a/roles/openshift-apps/mirrormanager/templates/emergency-expire-repo.sh +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/bash - -MM_ROOT=/opt/app-root - -set -e - -${MM_ROOT}/bin/mm2_emergency-expire-repo $@ -bash /opt/scripts/update-mirrorlist-cache.sh