- containers.podman.podman_container_info: name: keystone delay: 30 failed_when: - keystone_infos.containers.0.Healthcheck.Status is defined - '''healthy'' not in keystone_infos.containers.0.Healthcheck.Status' name: validate keystone container state register: keystone_infos retries: 10 tags: - opendev-validation - opendev-validation-keystone when: - container_cli == 'podman' - not container_healthcheck_disabled - step|int == 4 - containers.podman.podman_container_info: name: nova_api delay: 30 failed_when: - nova_api_infos.containers.0.Healthcheck.Status is defined - '''healthy'' not in nova_api_infos.containers.0.Healthcheck.Status' name: validate nova-api container state register: nova_api_infos retries: 10 tags: - opendev-validation - opendev-validation-nova when: - container_cli == 'podman' - not container_healthcheck_disabled - step|int == 4 - become: true block: - copy: content: '#!/bin/bash pgrep -f /sbin/virtqemud [ $? -eq 0 ] && exit 0 kill -9 $(cat /run/nova_virtqemud.pid) ' dest: /usr/libexec/recover_tripleo_nova_virtqemud.sh mode: '0755' name: Create virtqemud recovery script - copy: content: '[Unit] Description=Check and recover tripleo_nova_virtqemud After=tripleo_nova_virtqemud.service Requisite=tripleo_nova_virtqemud.service [Service] Type=oneshot ExecStart=bash /usr/libexec/recover_tripleo_nova_virtqemud.sh SyslogIdentifier=recover_tripleo_nova_virtqemud [Install] WantedBy=multi-user.target ' dest: /etc/systemd/system/tripleo_nova_virtqemud_recover.service mode: '0644' name: Create virtqemud recovery trigger service - copy: content: '[Unit] Description=Check and recover tripleo_nova_virtqemud every 10m PartOf=tripleo_nova_virtqemud.service [Timer] OnCalendar=*:5/10 OnActiveSec=120 OnUnitActiveSec=60 RandomizedDelaySec=1m [Install] WantedBy=timers.target ' dest: /etc/systemd/system/tripleo_nova_virtqemud_recover.timer mode: '0644' name: Create virtqemud recovery trigger timer - name: Enable virtqemud recovery trigger service systemd: daemon_reload: true enabled: true name: tripleo_nova_virtqemud_recover.service - name: Enable virtqemud recovery trigger timer register: virtqemud_recover_timer_result systemd: daemon_reload: true enabled: true name: tripleo_nova_virtqemud_recover.timer state: restarted - name: Really enable virtqemud recovery trigger timer shell: cmd: systemctl enable --now tripleo_nova_virtqemud_recover.timer when: virtqemud_recover_timer_result.status.UnitFileState != "enabled" name: Ensure recovery of containerized virtqemud when: step|int == 4 - block: - become: true copy: content: '[Unit] Wants=tripleo_nova_virtsecretd.service Wants=tripleo_nova_virtnodedevd.service Wants=tripleo_nova_virtstoraged.service Wants=tripleo_nova_virtproxyd.service Wants=tripleo_nova_virtqemud.service After=tripleo_nova_virtsecretd.service After=tripleo_nova_virtnodedevd.service After=tripleo_nova_virtstoraged.service After=tripleo_nova_virtproxyd.service After=tripleo_nova_virtqemud.service ' dest: /etc/systemd/system/tripleo_nova_libvirt.target group: root mode: '0644' owner: root name: Create systemd file register: libvirt_target_result - become: true name: Reload systemd systemd: daemon_reload: true enabled: true name: tripleo_nova_libvirt.target state: restarted when: libvirt_target_result.changed name: Set up systemd target for libvirt services when: step|int == 4 - block: - block: - include_role: name: tripleo_container_manage loop: - ovn_cluster_north_db_server - ovn_cluster_south_db_server - ovn_cluster_northd loop_control: loop_var: ovn_container name: Start OVN container vars: tripleo_container_manage_config: /var/lib/tripleo-config/container-startup-config/step_0 tripleo_container_manage_config_id: '{{ ovn_container }}' tripleo_container_manage_config_patterns: '{{ ovn_container }}.json' - become: true delay: 5 name: Set NB connection register: nb_result retries: 20 shell: 'podman exec ovn_cluster_north_db_server bash -c "ovn-nbctl --no-leader-only --inactivity-probe={{ tripleo_ovn_cluster_probe_interval }} set-connection p{{ tripleo_ovn_cluster_dbs_protocol }}:{{ tripleo_ovn_cluster_nb_db_port }}:{{ tripleo_ovn_cluster_dbs_addr }}" ' until: nb_result.rc == 0 vars: tripleo_ovn_cluster_dbs_addr: 0.0.0.0 tripleo_ovn_cluster_dbs_protocol: '{{ enable_internal_tls | ternary(''ssl'', ''tcp'', ''tcp'') }}' tripleo_ovn_cluster_nb_db_port: 6641 tripleo_ovn_cluster_network: internal_api tripleo_ovn_cluster_probe_interval: 60000 when: - is_ovn_dbs_bootstrap_node | bool - become: true delay: 5 name: Set SB connection register: sb_result retries: 20 shell: 'podman exec ovn_cluster_south_db_server bash -c "ovn-sbctl --no-leader-only --inactivity-probe={{ tripleo_ovn_cluster_probe_interval }} set-connection p{{ tripleo_ovn_cluster_dbs_protocol }}:{{ tripleo_ovn_cluster_sb_db_port }}:{{ tripleo_ovn_cluster_dbs_addr }}" ' until: sb_result.rc == 0 vars: tripleo_ovn_cluster_dbs_addr: 0.0.0.0 tripleo_ovn_cluster_dbs_protocol: '{{ enable_internal_tls | ternary(''ssl'', ''tcp'', ''tcp'') }}' tripleo_ovn_cluster_network: internal_api tripleo_ovn_cluster_probe_interval: 60000 tripleo_ovn_cluster_sb_db_port: 6642 when: - is_ovn_dbs_bootstrap_node | bool name: Start OVN DBs and northd containers (non-bootstrap nodes) when: - step|int == 4 - not is_ovn_dbs_bootstrap_node | bool