- include_role: name: tripleo_podman tasks_from: tripleo_podman_rsyslog_cleanup name: remove rsyslog configuration for podman healthcheck log - name: Fetch running ovn_controller image register: running_ovn_image shell: 'set -e podman inspect --format "{{''{{''}}.ImageName{{''}}''}}" ovn_controller ' tags: - ovn - ovn_image when: - step|int == 4 - block: - containers.podman.podman_image: force: true name: registry.redhat.io/rhosp-rhel9/openstack-ovn-controller:17.1 validate_certs: false name: Force pull image in case image name doesn't change. tags: - ovn - ovn_image when: step|int == 4 - name: Update OVN OVS related parameters before update. shell: 'set -e ovs-vsctl set Open_vSwitch . external_ids:ovn-ofctrl-wait-before-clear={{ timeout }} ovs-vsctl set Open_vSwitch . external_ids:ovn-monitor-all=true ovs-vsctl set Open_vSwitch . external_ids:ovn-match-northd-version=false ' tags: - ovn vars: timeout: 8000 when: - step|int == 4 - find: paths: /var/lib/tripleo-config/container-startup-config/ patterns: '*ovn_controller.json' recurse: true name: Find ovn_controller configs in container-startup-configs register: ovn_cont_17_0 tags: - ovn when: - step|int == 4 - name: get directory path from the ovn_cont_17_0 set_fact: ovn_config_path: '{{ ovn_cont_17_0.files.0.path | dirname }}' tags: ovn when: step|int == 4 - name: Get PIDfile used by systemd on each ovn node register: pidfile shell: 'set -e grep PID /etc/systemd/system/tripleo_ovn_controller.service | cut -d= -f2 ' tags: - ovn when: - step|int == 4 - name: Update ovn_controller. tags: ovn tripleo_container_manage: config_dir: '{{ ovn_config_path }}' config_id: - tripleo_step{{config_step}} config_overrides: .*ovn_controller: conmon_pidfile: '{{ pidfile.stdout }}' image: registry.redhat.io/rhosp-rhel9/openstack-ovn-controller:17.1 name: ovn_controller config_patterns: '*ovn_controller.json' debug: '{{ enable_debug | bool }}' log_base_path: '{{ container_log_stdout_path }}' vars: config_step: '{{ (''step_4'' in ovn_config_path) | ternary(''4'', ''3'')}}' when: step|int == 4 - name: Pause for 30s to give ovn_controllers time to reconnect to dbs tags: ovn wait_for: timeout: 30 when: - step|int == 4 name: Run ovn_controller upgrade tags: - ovn - ovn_image vars: ovn_controller_image: registry.redhat.io/rhosp-rhel9/openstack-ovn-controller:17.1 when: - step|int == 4 - running_ovn_image.stdout != ovn_controller_image - name: Gather missing facts setup: gather_subset: - '!all' - '!min' - distribution tags: - always - name: Set leapp facts set_fact: upgrade_leapp_command_options: '' upgrade_leapp_debug: false upgrade_leapp_devel_skip: '' upgrade_leapp_enabled: "{{ _upgradeLeappEnabled | bool and\n ansible_facts['distribution']\ \ == 'RedHat' and\n ansible_facts['distribution_major_version'] is version('8',\ \ '==') }}" upgrade_leapp_post_reboot_delay: 120 upgrade_leapp_reboot_timeout: 3600 tags: - always vars: _upgradeLeappEnabled: false - block: - loop: '{{ modules_to_unload }}' name: Delete the kernel modules in Leapp database (device_driver_deprecation_data.json) shell: 'set -o pipefail && jq ''. | del(.data[] | select(.driver_name == "{{ item }}"))'' /etc/leapp/files/device_driver_deprecation_data.json > /etc/leapp/files/device_driver_deprecation_data.json_modified && mv /etc/leapp/files/device_driver_deprecation_data.json_modified /etc/leapp/files/device_driver_deprecation_data.json ' vars: modules_to_unload: [] - command: cmd: find /usr/share/leapp-repository/repositories/ -name {{ item }} -type d -print -exec rm -rf "{}" + loop: '{{ actors_to_remove }}' name: Remove leapp actors to prevent them inhibiting the upgrade vars: actors_to_remove: [] - name: set leapp required answers shell: 'leapp answer --add --section check_vdo.confirm=True ' - import_role: name: tripleo_kernel tasks_from: efigrub.yml name: Replace EFI grub.cfg with redirect to /boot/grub2/grub.cfg - loop: '{{ nics_prefixes_to_keep|list }}' name: Keep nics with prefix in NICsPrefixesToUdev from renaming shell: "ip -j link show | \\ jq -r --arg prefix \"{{ item }}\" '.[] |\n select((.ifname\ \ | startswith($prefix)) and\n (.ifname | test(\"^.*v[0-9]*$\") | not) and\n\ \ (.ifname | test(\"^.*_[0-9]*$\") | not) and\n (.ifname | test(\"^.*\\\\\ ..*$\") | not)) |\n if .permaddr? then .address=.permaddr else . end |\n \"\ SUBSYSTEM==\\\"net\\\",ACTION==\\\"add\\\",DRIVERS==\\\"?*\\\",\" + \"NAME=\\\ \"\" + .ifname +\"\\\" ,ATTR{address}==\\\"\" + .address + \"\\\"\"' >> /etc/udev/rules.d/70-rhosp-persistent-net.rules\n" vars: nics_prefixes_to_keep: [] - name: run leapp upgrade (download packages) shell: '{% if upgrade_leapp_devel_skip|default(false) %}{{ upgrade_leapp_devel_skip }}{% endif %} leapp upgrade {% if upgrade_leapp_debug|default(true) %}--debug{% endif %} {% if upgrade_leapp_command_options|default(false) %}{{ upgrade_leapp_command_options }}{% endif %} ' when: upgrade_leapp_enabled name: system_upgrade_prepare step 4 tags: - never - system_upgrade - system_upgrade_prepare when: - step|int == 4 - upgrade_leapp_enabled - block: - name: Run LeappPreRebootCommand shell: '#!/bin/bash ' - name: Check that nova_libvirt is running register: is_virtlogd_image_running shell: 'podman ps --filter name=^nova_virtlogd$ --format "{% raw %}{{ .Image }}{% endraw %}" ' - file: path: /etc/systemd/system/{{ item }} state: absent name: Remove systemd files to disable them when: is_virtlogd_image_running.stdout != '' with_items: - tripleo_nova_libvirt.service - tripleo_nova_virtlogd_wrapper.service - tripleo_nova_libvirt.target - name: reboot to perform the upgrade reboot: post_reboot_delay: '{{ upgrade_leapp_post_reboot_delay }}' reboot_timeout: '{{upgrade_leapp_reboot_timeout}}' test_command: source /etc/os-release; [ "${VERSION_ID%.*}" -ge "8" ] && systemctl is-system-running | grep -qE "running|degraded" || exit 1 - name: Set selinux back to enforcing after leapp reboot selinux: policy: targeted state: enforcing - name: Run LeappPostRebootCommand shell: '#!/bin/bash ' name: system_upgrade_run step 4 tags: - never - system_upgrade - system_upgrade_run - system_upgrade_reboot when: - step|int == 4 - upgrade_leapp_enabled - '''Undercloud'' not in group_names'