Currently upgrade of ovn-host rpm package affects active traffic. This is because systemctl try-restart ovn-controller is invoked during rpm package upgrade. It calls ovn-ctl stop_controller and then start_controller.
Adding ovn-ctl stop_controller --restart to %postun upgrade case right before systemctl try-restart. Also, upgrade ovn-ctl script to support --restart argument in it. Ideally this should be done by systemd when restart is called, but it's impossible to pass restart command to systemd. Signed-off-by: Vladislav Odintsov <[email protected]> --- rhel/ovn-fedora.spec.in | 8 ++++++++ utilities/ovn-ctl | 10 ++++++++-- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/rhel/ovn-fedora.spec.in b/rhel/ovn-fedora.spec.in index 6716dd0d2..5fe0f990f 100644 --- a/rhel/ovn-fedora.spec.in +++ b/rhel/ovn-fedora.spec.in @@ -400,6 +400,14 @@ fi %endif %postun host +if [ "$1" -ge "1" ] ; then + # Package upgrade, not uninstall + # We perform lightweight stop here not to affect active traffic during + # ovn-controller upgrade. + # Ideally this would be held by systemd, but it's impossible + # to pass custom restart command to systemd service. + %{_datadir}/ovn/scripts/ovn-ctl stop_controller --restart +fi %if 0%{?systemd_postun_with_restart:1} %systemd_postun_with_restart ovn-controller.service %else diff --git a/utilities/ovn-ctl b/utilities/ovn-ctl index ff61f21d0..b30eb209d 100755 --- a/utilities/ovn-ctl +++ b/utilities/ovn-ctl @@ -584,7 +584,11 @@ stop_ic () { } stop_controller () { - OVS_RUNDIR=${OVS_RUNDIR} stop_ovn_daemon ovn-controller "" "" "$@" + set "ovn-controller" "" "" + if test X"$RESTART" = Xyes; then + set "$@" "--restart" + fi + OVS_RUNDIR=${OVS_RUNDIR} stop_ovn_daemon "$@" } stop_controller_vtep () { @@ -606,7 +610,8 @@ restart_ic () { } restart_controller () { - stop_controller --restart + RESTART=yes + stop_controller start_controller } @@ -651,6 +656,7 @@ restart_ic_sb_ovsdb () { set_defaults () { OVN_MANAGE_OVSDB=yes + RESTART=no OVS_RUNDIR=${OVS_RUNDIR:-${rundir}} OVN_RUNDIR=${OVN_RUNDIR:-${ovn_rundir}} -- 2.30.0 _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
