From 0db51c47da14c7aee3f8c4792105f42bf953bcad Mon Sep 17 00:00:00 2001 From: Bart Wensley Date: Thu, 29 Nov 2018 12:27:05 -0600 Subject: [PATCH] Do not apply NoExecute taint to hosts The VIM is currently appying the NoExecute taint to controller and compute hosts when they are disabled, in order to cause the pods on those hosts to be evicted. This is causing problems when configuring a non-AIO system because the VIM goes through disable/enable cycles while the pods are coming up on these hosts. This causes the NoExecute taint to be applied/removed and prevents the OpenStack pods from ever coming up successfully. For now, the VIM will not apply the NoExecute taint. We will revisit this later. Change-Id: Icc8cece900c69b8d2620023a00ac906359d59d84 Story: 2003910 Task: 26796 Signed-off-by: Bart Wensley --- .../nfvi_plugins/nfvi_infrastructure_api.py | 25 ++++++++----------- 1 file changed, 11 insertions(+), 14 deletions(-) diff --git a/nfv/nfv-plugins/nfv_plugins/nfvi_plugins/nfvi_infrastructure_api.py b/nfv/nfv-plugins/nfv_plugins/nfvi_plugins/nfvi_infrastructure_api.py index eef158eb..5c52a44e 100755 --- a/nfv/nfv-plugins/nfv_plugins/nfvi_plugins/nfvi_infrastructure_api.py +++ b/nfv/nfv-plugins/nfv_plugins/nfvi_plugins/nfvi_infrastructure_api.py @@ -1419,20 +1419,17 @@ class NFVIInfrastructureAPI(nfvi.api.v1.NFVIInfrastructureAPI): raise if self._host_supports_kubernetes(host_personality): - if 'controller' in host_personality and \ - 'compute' in host_personality: - # This is an AIO host (either simplex or duplex). For now, - # we do not want to apply the NoExecute taint. When - # the host reboots (e.g. on a lock/unlock), the VIM will - # not initialize if it cannot register with rabbitmq - # (which is running in a pod). But the VIM must first - # remove the NoExecute taint, before that pod will run. - # This is only necessary on AIO simplex hosts, but we have - # no way to know whether the host is simplex or duplex - # in this plugin. Long term, this decision will be moved to - # the VIM, before invoking the plugin, once the plugins are - # refactored into separate enable/disable functions for - # nova, neutron, kubernetes, etc... + if True: + # For now, we do not want to apply the NoExecute taint. + # When the VIM detects that a service is failed on a host, + # it goes through a disable/enable cycle. This would cause + # the NoExecute taint to be applied/removed which causes + # most pods to be stopped/started. If the pods don't come + # back quickly enough the VIM will attempt another + # disable/enable, which can go on forever. For now, + # we will just avoid tainting hosts. + # TODO(bwensley): Rework when support for pure k8s hosts is + # added. pass else: response['reason'] = 'failed to disable kubernetes services'