Merge "Fixed down server issue after reloading keepalived"

This commit is contained in:
Zuul 2019-08-07 17:59:23 +00:00 committed by Gerrit Code Review
commit c65329391a
3 changed files with 20 additions and 0 deletions

View File

@ -198,6 +198,13 @@ class KeepalivedLvs(udp_listener_base.UdpListenerApiServerBase):
message='Invalid Request',
details="Unknown action: {0}".format(action)), status=400)
# When octavia requests a reload of keepalived, force a restart since
# a keepalived reload doesn't restore members in their initial state.
#
# TODO(gthiemonge) remove this when keepalived>=2.0.14 is widely use
if action == consts.AMP_ACTION_RELOAD:
action = consts.AMP_ACTION_RESTART
self._check_udp_listener_exists(listener_id)
if action == consts.AMP_ACTION_RELOAD:
if consts.OFFLINE == self._check_udp_listener_status(listener_id):

View File

@ -558,6 +558,7 @@ SYSCTL_CMD = '/sbin/sysctl'
AMP_ACTION_START = 'start'
AMP_ACTION_STOP = 'stop'
AMP_ACTION_RELOAD = 'reload'
AMP_ACTION_RESTART = 'restart'
GLANCE_IMAGE_ACTIVE = 'active'
INIT_SYSTEMD = 'systemd'

View File

@ -0,0 +1,12 @@
---
issues:
- |
When a load balancer with a UDP listener is updated, the listener service
is restarted, which causes an interruption of the flow of traffic during a
short period of time. This issue is caused by a keepalived bug
(https://github.com/acassen/keepalived/issues/1163) that was fixed in
keepalived 2.0.14, but this package is not yet provided by distributions.
fixes:
- |
Fix a bug that prevented UDP servers to be restored as members of a pool
after removing a health monitor resource.