diff --git a/roles/discover_latest_image/defaults/main.yml b/roles/discover_latest_image/defaults/main.yml index d76c458a8f..89bbf735ac 100644 --- a/roles/discover_latest_image/defaults/main.yml +++ b/roles/discover_latest_image/defaults/main.yml @@ -21,3 +21,4 @@ cifmw_discover_latest_image_debug: "{{ (ansible_verbosity | int) >= 2 | bool }}" cifmw_discover_latest_image_base_url: https://cloud.centos.org/centos/{{ ansible_distribution_major_version }}-stream/x86_64/images/ cifmw_discover_latest_image_qcow_prefix: CentOS-Stream-GenericCloud- cifmw_discover_latest_image_images_file: CHECKSUM +cifmw_discover_latest_image_prefix: "cifmw_discovered" diff --git a/roles/discover_latest_image/tasks/main.yml b/roles/discover_latest_image/tasks/main.yml index 3bc5d6dc40..99bb74edb5 100644 --- a/roles/discover_latest_image/tasks/main.yml +++ b/roles/discover_latest_image/tasks/main.yml @@ -14,17 +14,34 @@ # License for the specific language governing permissions and limitations # under the License. +- name: If one override is set, ensure all are set + when: >- + _discover_latest_image_baseurl_override is defined or + _discover_latest_image_qcow_prefix_override is defined or + _discover_latest_image_images_file_override is defined + ansible.builtin.assert: + that: + - _discover_latest_image_baseurl_override is defined + - _discover_latest_image_qcow_prefix_override is defined + - _discover_latest_image_images_file_override is defined + fail_msg: >- + Attempted to call the discover_latest_image role with an override + var set, but not all were set. Ensure that either all are set or none of them are set. + _discover_latest_image_baseurl_override: {{ _discover_latest_image_baseurl_override | default('UNDEFINED') }} + _discover_latest_image_qcow_prefix_override: {{ _discover_latest_image_qcow_prefix_override | default('UNDEFINED') }} + _discover_latest_image_images_file_override: {{ _discover_latest_image_images_file_override | default('UNDEFINED') }} + - name: Get latest image register: discovered_image cifmw.general.discover_latest_image: - url: "{{ cifmw_discover_latest_image_base_url }}" - image_prefix: "{{ cifmw_discover_latest_image_qcow_prefix }}" - images_file: "{{ cifmw_discover_latest_image_images_file }}" + url: "{{ _discover_latest_image_baseurl_override | default(cifmw_discover_latest_image_base_url) }}" + image_prefix: "{{ _discover_latest_image_qcow_prefix_override | default(cifmw_discover_latest_image_qcow_prefix) }}" + images_file: "{{ _discover_latest_image_images_file_override | default(cifmw_discover_latest_image_images_file) }}" - name: Export facts accordingly ansible.builtin.set_fact: - cifmw_discovered_image_name: "{{ discovered_image['data']['image_name'] }}" - cifmw_discovered_image_url: "{{ discovered_image['data']['image_url'] }}" - cifmw_discovered_hash: "{{ discovered_image['data']['hash'] }}" - cifmw_discovered_hash_algorithm: "{{ discovered_image['data']['hash_algorithm'] }}" + "{{ cifmw_discover_latest_image_prefix }}_image_name": "{{ discovered_image['data']['image_name'] }}" + "{{ cifmw_discover_latest_image_prefix }}_image_url": "{{ discovered_image['data']['image_url'] }}" + "{{ cifmw_discover_latest_image_prefix }}_hash": "{{ discovered_image['data']['hash'] }}" + "{{ cifmw_discover_latest_image_prefix }}_hash_algorithm": "{{ discovered_image['data']['hash_algorithm'] }}" cacheable: true diff --git a/roles/reproducer/defaults/main.yml b/roles/reproducer/defaults/main.yml index 504f305341..a9393fa6ae 100644 --- a/roles/reproducer/defaults/main.yml +++ b/roles/reproducer/defaults/main.yml @@ -40,6 +40,7 @@ cifmw_reproducer_supported_hypervisor_os: minimum_version: 9 RedHat: minimum_version: 9.3 +cifmw_reproducer_discover_extra_vm_images: {} # Allow to disable validations - user toggle this at their # own risks! diff --git a/roles/reproducer/tasks/main.yml b/roles/reproducer/tasks/main.yml index deebf619d0..bd7e1866f6 100644 --- a/roles/reproducer/tasks/main.yml +++ b/roles/reproducer/tasks/main.yml @@ -21,6 +21,23 @@ ansible.builtin.import_role: name: discover_latest_image +- name: Discover extra VM type images + tags: + - bootstrap + - bootstrap_layout + when: + - cifmw_reproducer_discover_extra_vm_images | default({}) | length > 0 + ansible.builtin.include_role: + name: discover_latest_image + vars: + _discover_latest_image_baseurl_override: "{{ item.value.base_url }}" + _discover_latest_image_qcow_prefix_override: "{{ item.value.qcow_prefix }}" + _discover_latest_image_images_file_override: "{{ item.value.images_file }}" + cifmw_discover_latest_image_prefix: "{{ item.value.prefix }}" + loop: "{{ cifmw_reproducer_discover_extra_vm_images | dict2items }}" + loop_control: + label: "{{ item.key }}" + - name: Load CI job environment tags: - bootstrap_layout