Merge "Testing VM to loadBalancer service connectivity"

This commit is contained in:
Zuul 2018-08-16 13:43:15 +00:00 committed by Gerrit Code Review
commit aa14753dec
4 changed files with 45 additions and 32 deletions

View File

@ -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,

View File

@ -252,20 +252,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):
@ -338,3 +344,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

View File

@ -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)

View File

@ -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)