Call tripleo_container_manage for FRR during updates

We need to duplicate the container management steps in the update_tasks
section, otherwise the frr container will not be updated during a
minor update.

In addition:
- we set tripleo_container_manage_systemd_teardown=true to
  force a proper frr stop instead of a simple restart.
- we add a sleep to allow FRR to reconvege, making the timeout
  configurable.
- we pass  "ExecStopPost=/usr/bin/sleep 10" in the systemd tripleo_frr
  unit file so that frr has the time to properly close its connections
  on shutdown.

Depends-on: https://review.opendev.org/c/openstack/tripleo-ansible/+/894171

Change-Id: I73c27d65dadcb01c89036e03ac0b4026a0268435
This commit is contained in:
Luca Miccini 2023-09-04 13:21:03 +02:00
parent df461df15f
commit ade51c4026

@ -170,6 +170,10 @@ parameters:
default: ''
description: Set source ip for ipv6 traffic (optional)
type: string
FrrConvergeTimeout:
default: 10
description: Time needed for FRR to populate the routing table after a restart.
type: number
resources:
RoleParametersValue:
@ -239,6 +243,7 @@ outputs:
image: {get_attr: [RoleParametersValue, value, ContainerFrrImage]}
net: host
restart: always
post_stop_exec: '/usr/bin/sleep 10'
healthcheck:
test: /openstack/healthcheck
cap_add:
@ -317,5 +322,26 @@ outputs:
tripleo_container_manage_config_patterns: "frr.json"
tripleo_container_manage_systemd_order: true
tripleo_container_manage_clean_orphans: false
update_tasks: []
- name: Wait to give FRR time to converge
wait_for:
timeout: {get_param: FrrConvergeTimeout}
update_tasks:
- name: Update FRR
when:
- step|int == 0
block:
- name: Update FRR container
include_role:
name: tripleo_container_manage
vars:
tripleo_container_manage_config: "/var/lib/tripleo-config/container-startup-config/step_0"
tripleo_container_manage_config_id: "frr"
tripleo_container_manage_config_patterns: "frr.json"
tripleo_container_manage_systemd_order: true
tripleo_container_manage_clean_orphans: false
# workaround frr restart issue rhbz#2193145
tripleo_container_manage_systemd_teardown: true
- name: Wait to give FRR time to converge
wait_for:
timeout: {get_param: FrrConvergeTimeout}
upgrade_tasks: []