Merge "Use label selector to get kuryr controller pods"
This commit is contained in:
commit
42d4185dad
@ -33,6 +33,8 @@ from tempest.lib.common.utils import test_utils
|
|||||||
from tempest.lib import exceptions as lib_exc
|
from tempest.lib import exceptions as lib_exc
|
||||||
from tempest.scenario import manager
|
from tempest.scenario import manager
|
||||||
|
|
||||||
|
from kuryr_tempest_plugin.tests.scenario import consts
|
||||||
|
|
||||||
CONF = config.CONF
|
CONF = config.CONF
|
||||||
LOG = logging.getLogger(__name__)
|
LOG = logging.getLogger(__name__)
|
||||||
|
|
||||||
@ -601,10 +603,18 @@ class BaseKuryrScenarioTest(manager.NetworkScenarioTest):
|
|||||||
namespace=namespace, plural=KURYR_NET_POLICY_CRD_PLURAL,
|
namespace=namespace, plural=KURYR_NET_POLICY_CRD_PLURAL,
|
||||||
name=name, **kwargs)
|
name=name, **kwargs)
|
||||||
|
|
||||||
def get_pod_name_list(self, namespace="default"):
|
def get_pod_list(self, namespace='default', label_selector=''):
|
||||||
return [pod.metadata.name for pod in
|
return self.k8s_client.CoreV1Api().list_namespaced_pod(
|
||||||
self.k8s_client.CoreV1Api().list_namespaced_pod(
|
namespace=namespace, label_selector=label_selector).items
|
||||||
namespace=namespace).items]
|
|
||||||
|
def get_pod_name_list(self, namespace='default', label_selector=''):
|
||||||
|
return [pod.metadata.name for pod in self.get_pod_list(
|
||||||
|
namespace=namespace, label_selector=label_selector)]
|
||||||
|
|
||||||
|
def get_controller_pod_names(self):
|
||||||
|
return self.get_pod_name_list(
|
||||||
|
namespace=CONF.kuryr_kubernetes.kube_system_namespace,
|
||||||
|
label_selector=consts.CONTROLLER_LABEL)
|
||||||
|
|
||||||
def _run_and_assert_fn(self, fn, repeats=10, responses_num=2):
|
def _run_and_assert_fn(self, fn, repeats=10, responses_num=2):
|
||||||
cmd_outputs = set()
|
cmd_outputs = set()
|
||||||
@ -770,16 +780,9 @@ class BaseKuryrScenarioTest(manager.NetworkScenarioTest):
|
|||||||
# Check that the controller pod status doesn't change from provided
|
# Check that the controller pod status doesn't change from provided
|
||||||
# status parameter, so for example it should stay in Running state when
|
# status parameter, so for example it should stay in Running state when
|
||||||
# the service with incorrect parameters was created
|
# the service with incorrect parameters was created
|
||||||
|
|
||||||
controller_pods = [
|
|
||||||
pod.metadata.name for pod in
|
|
||||||
self.k8s_client.CoreV1Api().list_namespaced_pod(
|
|
||||||
namespace=CONF.kuryr_kubernetes.kube_system_namespace).items
|
|
||||||
if pod.metadata.name.startswith(KURYR_CONTROLLER)]
|
|
||||||
|
|
||||||
while retry_attempts != 0:
|
while retry_attempts != 0:
|
||||||
time.sleep(time_between_attempts)
|
time.sleep(time_between_attempts)
|
||||||
for controller_pod in controller_pods:
|
for controller_pod in self.get_controller_pod_names():
|
||||||
self.assertEqual("Running", self.get_pod_status(
|
self.assertEqual("Running", self.get_pod_status(
|
||||||
controller_pod,
|
controller_pod,
|
||||||
CONF.kuryr_kubernetes.kube_system_namespace),
|
CONF.kuryr_kubernetes.kube_system_namespace),
|
||||||
@ -928,10 +931,7 @@ class BaseKuryrScenarioTest(manager.NetworkScenarioTest):
|
|||||||
|
|
||||||
def restart_kuryr_controller(self):
|
def restart_kuryr_controller(self):
|
||||||
system_namespace = CONF.kuryr_kubernetes.kube_system_namespace
|
system_namespace = CONF.kuryr_kubernetes.kube_system_namespace
|
||||||
kube_system_pods = self.get_pod_name_list(
|
for kuryr_pod_name in self.get_controller_pod_names():
|
||||||
namespace=system_namespace)
|
|
||||||
for kuryr_pod_name in kube_system_pods:
|
|
||||||
if kuryr_pod_name.startswith(KURYR_CONTROLLER):
|
|
||||||
self.delete_pod(
|
self.delete_pod(
|
||||||
pod_name=kuryr_pod_name,
|
pod_name=kuryr_pod_name,
|
||||||
body={"kind": "DeleteOptions",
|
body={"kind": "DeleteOptions",
|
||||||
@ -945,12 +945,9 @@ class BaseKuryrScenarioTest(manager.NetworkScenarioTest):
|
|||||||
namespace=system_namespace)
|
namespace=system_namespace)
|
||||||
|
|
||||||
# Check that new kuryr-controller is up and running
|
# Check that new kuryr-controller is up and running
|
||||||
kube_system_pods = self.get_pod_name_list(
|
for kuryr_pod_name in self.get_controller_pod_names():
|
||||||
namespace=system_namespace)
|
|
||||||
for kube_system_pod in kube_system_pods:
|
|
||||||
if kube_system_pod.startswith(KURYR_CONTROLLER):
|
|
||||||
self.wait_for_pod_status(
|
self.wait_for_pod_status(
|
||||||
kube_system_pod,
|
kuryr_pod_name,
|
||||||
namespace=system_namespace,
|
namespace=system_namespace,
|
||||||
pod_status='Running',
|
pod_status='Running',
|
||||||
retries=120)
|
retries=120)
|
||||||
@ -958,7 +955,7 @@ class BaseKuryrScenarioTest(manager.NetworkScenarioTest):
|
|||||||
# Wait until kuryr-controller pools are reloaded, i.e.,
|
# Wait until kuryr-controller pools are reloaded, i.e.,
|
||||||
# kuryr-controller is ready
|
# kuryr-controller is ready
|
||||||
res = test_utils.call_until_true(
|
res = test_utils.call_until_true(
|
||||||
self.get_pod_readiness, 30, 1, kube_system_pod,
|
self.get_pod_readiness, 30, 1, kuryr_pod_name,
|
||||||
namespace=system_namespace, container_name='controller')
|
namespace=system_namespace, container_name='controller')
|
||||||
self.assertTrue(res, 'Timed out waiting for '
|
self.assertTrue(res, 'Timed out waiting for '
|
||||||
'kuryr-controller to reload pools.')
|
'kuryr-controller to reload pools.')
|
||||||
|
@ -17,3 +17,4 @@ POD_AFFINITY = {'requiredDuringSchedulingIgnoredDuringExecution': [
|
|||||||
{'labelSelector': {'matchExpressions': [
|
{'labelSelector': {'matchExpressions': [
|
||||||
{'operator': 'In', 'values': ['demo'], 'key': 'type'}]},
|
{'operator': 'In', 'values': ['demo'], 'key': 'type'}]},
|
||||||
'topologyKey': 'kubernetes.io/hostname'}]}
|
'topologyKey': 'kubernetes.io/hostname'}]}
|
||||||
|
CONTROLLER_LABEL = 'name=kuryr-controller'
|
||||||
|
Loading…
Reference in New Issue
Block a user