Check connectivty from within the cluster
Check connectivity to the service from a pods within the namespace in test_namespace instead from outisde Change-Id: I5af7fc1be342d7fafa217347b1d84c3679c118c1
This commit is contained in:
parent
9db2bf03ed
commit
92e18b336f
|
@ -71,6 +71,7 @@ class BaseKuryrScenarioTest(manager.NetworkScenarioTest):
|
|||
def resource_setup(cls):
|
||||
super(BaseKuryrScenarioTest, cls).resource_setup()
|
||||
cls.pod_fips = []
|
||||
cls.namespaces = []
|
||||
# TODO(dmellado): Config k8s client in a cleaner way
|
||||
k8s_config.load_kube_config()
|
||||
|
||||
|
@ -80,6 +81,8 @@ class BaseKuryrScenarioTest(manager.NetworkScenarioTest):
|
|||
for fip in cls.pod_fips:
|
||||
cls.os_admin.floating_ips_client.delete_floatingip(
|
||||
fip['floatingip']['id'])
|
||||
for namespace in cls.namespaces:
|
||||
cls.delete_namespace(namespace)
|
||||
|
||||
@classmethod
|
||||
def create_network_policy(cls, name=None, namespace='default',
|
||||
|
@ -551,8 +554,9 @@ class BaseKuryrScenarioTest(manager.NetworkScenarioTest):
|
|||
for i in range(pod_num):
|
||||
pod_name, pod = cls.create_pod(
|
||||
labels={"app": label}, namespace=namespace)
|
||||
cls.addClassResourceCleanup(cls.delete_pod, pod_name,
|
||||
namespace=namespace)
|
||||
if cleanup:
|
||||
cls.addClassResourceCleanup(cls.delete_pod, pod_name,
|
||||
namespace=namespace)
|
||||
cls.pod_num = pod_num
|
||||
service_name, service_obj = cls.create_service(
|
||||
pod_label=pod.metadata.labels, spec_type=spec_type,
|
||||
|
@ -608,7 +612,12 @@ class BaseKuryrScenarioTest(manager.NetworkScenarioTest):
|
|||
@classmethod
|
||||
def delete_namespace(cls, name, **kwargs):
|
||||
body = cls.k8s_client.V1DeleteOptions(**kwargs)
|
||||
cls.k8s_client.CoreV1Api().delete_namespace(name=name, body=body)
|
||||
try:
|
||||
cls.k8s_client.CoreV1Api().delete_namespace(name=name, body=body)
|
||||
except kubernetes.client.rest.ApiException as e:
|
||||
if e.status == 404:
|
||||
return
|
||||
raise
|
||||
|
||||
@classmethod
|
||||
def get_namespace(cls, name):
|
||||
|
@ -1070,17 +1079,23 @@ class BaseKuryrScenarioTest(manager.NetworkScenarioTest):
|
|||
return pod_name_list
|
||||
|
||||
def check_service_internal_connectivity(self, service_port='80',
|
||||
protocol='TCP'):
|
||||
protocol='TCP',
|
||||
namespace='default',
|
||||
cleanup=True):
|
||||
# FIXME(itzikb): Use the clusterIP to
|
||||
# check service status as there are some issues with the FIPs
|
||||
# and OVN gates
|
||||
clusterip_svc_ip = self.get_service_ip(self.service_name,
|
||||
spec_type='ClusterIP')
|
||||
pod_name, pod = self.create_pod()
|
||||
self.addClassResourceCleanup(self.delete_pod, pod_name)
|
||||
spec_type='ClusterIP',
|
||||
namespace=namespace)
|
||||
pod_name, pod = self.create_pod(namespace=namespace)
|
||||
if cleanup:
|
||||
self.addClassResourceCleanup(self.delete_pod, pod_name,
|
||||
namespace=namespace)
|
||||
self.assert_backend_amount_from_pod(
|
||||
clusterip_svc_ip,
|
||||
self.pod_num,
|
||||
pod_name,
|
||||
service_port,
|
||||
protocol)
|
||||
protocol,
|
||||
namespace_name=namespace)
|
||||
|
|
|
@ -14,7 +14,6 @@
|
|||
|
||||
import json
|
||||
import kubernetes
|
||||
import requests
|
||||
import time
|
||||
|
||||
from oslo_log import log as logging
|
||||
|
@ -49,6 +48,7 @@ class TestNamespaceScenario(base.BaseKuryrScenarioTest):
|
|||
def test_namespace(self):
|
||||
# Check resources are created
|
||||
namespace_name, namespace = self.create_namespace()
|
||||
self.namespaces.append(namespace)
|
||||
|
||||
existing_namespaces = [ns.metadata.name
|
||||
for ns in self.list_namespaces().items]
|
||||
|
@ -84,15 +84,10 @@ class TestNamespaceScenario(base.BaseKuryrScenarioTest):
|
|||
# Check namespace pod connectivity
|
||||
pod_name, pod = self.create_pod(labels={"app": 'pod-label'},
|
||||
namespace=namespace_name)
|
||||
svc_name, _ = self.create_service(pod_label=pod.metadata.labels,
|
||||
namespace=namespace_name)
|
||||
svc_service_ip = self.get_service_ip(service_name=svc_name,
|
||||
namespace=namespace_name)
|
||||
self.wait_service_status(svc_service_ip,
|
||||
CONF.kuryr_kubernetes.lb_build_timeout)
|
||||
|
||||
requests.get("http://{dst_ip}".format(dst_ip=svc_service_ip))
|
||||
|
||||
self.create_setup_for_service_test(namespace=namespace_name,
|
||||
cleanup=False)
|
||||
self.check_service_internal_connectivity(namespace=namespace_name,
|
||||
cleanup=False)
|
||||
# Check resources are deleted
|
||||
self._delete_namespace_resources(namespace_name, kuryr_net_crd,
|
||||
subnet_name)
|
||||
|
|
Loading…
Reference in New Issue