diff --git a/devstack/plugin.sh b/devstack/plugin.sh index b1ee8aa52..b621ad2cf 100644 --- a/devstack/plugin.sh +++ b/devstack/plugin.sh @@ -341,6 +341,14 @@ function configure_neutron_defaults { fi iniset "$KURYR_CONFIG" neutron_defaults external_svc_net "$ext_svc_net_id" iniset "$KURYR_CONFIG" octavia_defaults member_mode "$KURYR_K8S_OCTAVIA_MEMBER_MODE" + if [[ "$use_octavia" == "True" ]]; then + # Octavia takes a very long time to start the LB in the gate. We need + # to tweak the timeout for the LB creation. Let's be generous and give + # it up to 20 minutes. + # FIXME(dulek): This might be removed when bug 1753653 is fixed and + # Kuryr restarts waiting for LB on timeouts. + iniset "$KURYR_CONFIG" neutron_defaults lbaas_activation_timeout 1200 + fi } function configure_k8s_pod_sg_rules { diff --git a/kuryr_kubernetes/config.py b/kuryr_kubernetes/config.py index ea5193b75..04dd3d77c 100644 --- a/kuryr_kubernetes/config.py +++ b/kuryr_kubernetes/config.py @@ -161,6 +161,10 @@ neutron_defaults = [ cfg.StrOpt('external_svc_subnet', help=_("Optional external subnet ID for Kubernetes services"), default=None), + cfg.IntOpt('lbaas_activation_timeout', + help=_("Time (in seconds) that kuryr controller waits for " + "neutron LBaaS to be activated"), + default=300), ] octavia_defaults = [ diff --git a/kuryr_kubernetes/controller/drivers/lbaasv2.py b/kuryr_kubernetes/controller/drivers/lbaasv2.py index c7504969e..fada12d02 100644 --- a/kuryr_kubernetes/controller/drivers/lbaasv2.py +++ b/kuryr_kubernetes/controller/drivers/lbaasv2.py @@ -19,6 +19,7 @@ import time import requests from neutronclient.common import exceptions as n_exc +from oslo_config import cfg from oslo_log import log as logging from oslo_utils import excutils from oslo_utils import timeutils @@ -29,8 +30,10 @@ from kuryr_kubernetes.controller.drivers import base from kuryr_kubernetes import exceptions as k_exc from kuryr_kubernetes.objects import lbaas as obj_lbaas +CONF = cfg.CONF LOG = logging.getLogger(__name__) -_ACTIVATION_TIMEOUT = 300 + +_ACTIVATION_TIMEOUT = CONF.neutron_defaults.lbaas_activation_timeout _SUPPORTED_LISTENER_PROT = ('HTTP', 'HTTPS', 'TCP') diff --git a/releasenotes/notes/make-lbaas-timeout-configurable-8624ea32971c0cbe.yaml b/releasenotes/notes/make-lbaas-timeout-configurable-8624ea32971c0cbe.yaml new file mode 100644 index 000000000..ca2ef3bef --- /dev/null +++ b/releasenotes/notes/make-lbaas-timeout-configurable-8624ea32971c0cbe.yaml @@ -0,0 +1,7 @@ +--- +upgrade: + - | + As the openstack performance differs in production environments, + fixed timeout of LBaaS activation might create the kuryr-kubernetes error. + In order to adapt to the environment, a new option + ``[neutron_defaults]lbaas_activation_timeout`` was added.