Testing VM to loadBalancer service connectivity
Creating function in base class for creating VM with relevant objects Using function for existing VM to pod connectivity test Creating function for VM to service connectivity Change-Id: I98e9c1fc1e2136ee1f9428fa3736dc49d5784e98
This commit is contained in:
parent
8db1cbc44c
commit
00a957314a
|
@ -32,7 +32,8 @@ port_pool_enabled = cfg.BoolOpt("port_pool_enabled",
|
|||
|
||||
lb_build_timeout = cfg.IntOpt("lb_build_timeout",
|
||||
default=900,
|
||||
help="The max time it should take to create LB")
|
||||
help="The max time (in seconds) it should take "
|
||||
"to create LB")
|
||||
|
||||
namespace_enabled = cfg.BoolOpt("namespace_enabled",
|
||||
default=False,
|
||||
|
|
|
@ -249,20 +249,26 @@ class BaseKuryrScenarioTest(manager.NetworkScenarioTest):
|
|||
|
||||
@classmethod
|
||||
def create_setup_for_service_test(cls, pod_num=2, spec_type="ClusterIP",
|
||||
label=None):
|
||||
label=None, namespace="default",
|
||||
get_ip=True):
|
||||
label = label or data_utils.rand_name('kuryr-app')
|
||||
for i in range(pod_num):
|
||||
pod_name, pod = cls.create_pod(
|
||||
labels={"app": label}, image='kuryr/demo')
|
||||
cls.addClassResourceCleanup(cls.delete_pod, pod_name)
|
||||
labels={"app": label}, namespace=namespace)
|
||||
cls.addClassResourceCleanup(cls.delete_pod, pod_name,
|
||||
namespace=namespace)
|
||||
service_name, service_obj = cls.create_service(
|
||||
pod_label=pod.metadata.labels, spec_type=spec_type)
|
||||
cls.service_ip = cls.get_service_ip(service_name, spec_type=spec_type)
|
||||
cls.verify_lbaas_endpoints_configured(service_name)
|
||||
cls.wait_service_status(
|
||||
cls.service_ip, CONF.kuryr_kubernetes.lb_build_timeout)
|
||||
pod_label=pod.metadata.labels, spec_type=spec_type,
|
||||
namespace=namespace)
|
||||
if get_ip:
|
||||
cls.service_ip = cls.get_service_ip(
|
||||
service_name, spec_type=spec_type, namespace=namespace)
|
||||
cls.verify_lbaas_endpoints_configured(service_name)
|
||||
cls.wait_service_status(
|
||||
cls.service_ip, CONF.kuryr_kubernetes.lb_build_timeout)
|
||||
|
||||
cls.addClassResourceCleanup(cls.delete_service, service_name)
|
||||
cls.addClassResourceCleanup(cls.delete_service, service_name,
|
||||
namespace=namespace)
|
||||
|
||||
@classmethod
|
||||
def create_namespace(cls, name=None):
|
||||
|
@ -332,3 +338,17 @@ class BaseKuryrScenarioTest(manager.NetworkScenarioTest):
|
|||
LOG.info("Waiting till %s will appears "
|
||||
"in ep=%s annotation ", ann_string, ep_name)
|
||||
continue
|
||||
|
||||
def create_vm_for_connectivity_test(self):
|
||||
keypair = self.create_keypair()
|
||||
sec_grp = self._create_security_group()
|
||||
security_groups = [
|
||||
{'name': sec_grp['name']}
|
||||
]
|
||||
server = self.create_server(name=data_utils.rand_name(prefix='kuryr'),
|
||||
key_name=keypair['name'],
|
||||
security_groups=security_groups)
|
||||
fip = self.create_floating_ip(server)
|
||||
ssh_client = self.get_remote_client(fip['floating_ip_address'],
|
||||
private_key=keypair['private_key'])
|
||||
return ssh_client, fip
|
||||
|
|
|
@ -14,7 +14,6 @@
|
|||
|
||||
from oslo_log import log as logging
|
||||
from tempest import config
|
||||
from tempest.lib.common.utils import data_utils
|
||||
from tempest.lib import decorators
|
||||
from tempest.lib import exceptions
|
||||
|
||||
|
@ -34,22 +33,13 @@ class TestCrossPingScenario(base.BaseKuryrScenarioTest):
|
|||
|
||||
@decorators.idempotent_id('bddf5441-1244-449d-a125-b5fddfb1a1a8')
|
||||
def test_vm_pod_ping(self):
|
||||
keypair = self.create_keypair()
|
||||
security_groups = [
|
||||
{'name': self._create_security_group()['name']}
|
||||
]
|
||||
server = self.create_server(name=data_utils.rand_name(prefix='kuryr'),
|
||||
key_name=keypair['name'],
|
||||
security_groups=security_groups)
|
||||
fip = self.create_floating_ip(server)
|
||||
|
||||
pod_name, pod = self.create_pod()
|
||||
self.addCleanup(self.delete_pod, pod_name, pod)
|
||||
pod_fip = self.assign_fip_to_pod(pod_name)
|
||||
ssh_client, fip = self.create_vm_for_connectivity_test()
|
||||
|
||||
# check connectivity from VM to Pod
|
||||
ssh_client = self.get_remote_client(fip['floating_ip_address'],
|
||||
private_key=keypair['private_key'])
|
||||
cmd = ("ping -c4 -w4 %s &> /dev/null; echo $?" %
|
||||
pod_fip['floatingip']['floating_ip_address'])
|
||||
|
||||
|
@ -67,15 +57,7 @@ class TestCrossPingScenario(base.BaseKuryrScenarioTest):
|
|||
|
||||
@decorators.idempotent_id('bddf5441-1244-449d-a125-b5fddfb1a1a8')
|
||||
def test_pod_vm_ping(self):
|
||||
keypair = self.create_keypair()
|
||||
security_groups = [
|
||||
{'name': self._create_security_group()['name']}
|
||||
]
|
||||
server = self.create_server(name=data_utils.rand_name(prefix='kuryr'),
|
||||
key_name=keypair['name'],
|
||||
security_groups=security_groups)
|
||||
fip = self.create_floating_ip(server)
|
||||
|
||||
_, fip = self.create_vm_for_connectivity_test()
|
||||
pod_name, pod = self.create_pod()
|
||||
self.addCleanup(self.delete_pod, pod_name, pod)
|
||||
|
||||
|
|
|
@ -91,7 +91,8 @@ class TestLoadBalancerServiceScenario(base.BaseKuryrScenarioTest):
|
|||
cls.create_setup_for_service_test(spec_type="LoadBalancer")
|
||||
|
||||
@decorators.idempotent_id('bddf5441-1244-449d-a175-b5fdcfc2a1a9')
|
||||
def test_lb_service_curl(self):
|
||||
def test_lb_service_http(self):
|
||||
|
||||
LOG.info("Trying to curl the service IP %s" % self.service_ip)
|
||||
cmd = "curl -Ss {dst_ip}".format(dst_ip=self.service_ip)
|
||||
|
||||
|
@ -102,5 +103,14 @@ class TestLoadBalancerServiceScenario(base.BaseKuryrScenarioTest):
|
|||
LOG.error("Checking output of curl to the service IP %s "
|
||||
"failed" % self.service_ip)
|
||||
raise lib_exc.UnexpectedResponseCode()
|
||||
|
||||
self._run_and_assert_fn(curl)
|
||||
|
||||
@decorators.idempotent_id('bddf5441-1244-449d-a125-b5fdcfa1b5a9')
|
||||
def test_vm_service_http(self):
|
||||
ssh_client, fip = self.create_vm_for_connectivity_test()
|
||||
LOG.info("Trying to curl the service IP %s from VM" % self.service_ip)
|
||||
cmd = ("curl {dst_ip}".format(dst_ip=self.service_ip))
|
||||
|
||||
def curl():
|
||||
return ssh_client.exec_command(cmd)
|
||||
self._run_and_assert_fn(curl)
|
||||
|
|
Loading…
Reference in New Issue