Merge "Testing VM to loadBalancer service connectivity"
This commit is contained in:
commit
aa14753dec
|
@ -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,
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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