def test_create_stress2(self): interval = 30 count = 2 # per node node_names = k8sclient.list_ready_nodenames() node_names = [n for n in node_names if not n.startswith("10.19.140")] # node_names = ["10.19.137.147"] for n in node_names: print n name_prefix = "podstresstest" for i in range(1, count + 1): labels = {"app": "test_create_stress-" + str(i)} for node in node_names: node_name = '-'.join(node.split('.')) name = "-".join([name_prefix, node_name, str(i)]) self._create_pod(name, labels=labels, node_name=node) # create service to bound those pods svc_name = "pod-service-" + str(i) k8sclient.create_service(self.namespace, svc_name, port=self.port_number, selector=labels) time.sleep(interval) # wait for running state timeout = count * 30 * len(node_names) + 300 for i in range(1, count + 1): for node in node_names: node_name = '-'.join(node.split('.')) name = "-".join([name_prefix, node_name, str(i)]) timeout = self._wait_for_pod(name, timeout=timeout, expect_status="Running")
def deploy(): label1 = {"app": "test_service-1"} label2 = {"app": "test_service-2"} k8sclient.send_create_pod_request(namespace=namespace, name="pod-1", args=args, image=image, ports={port_number: port_name}, labels=label1, node_name=node) k8sclient.create_service(namespace, "service-1", port=port_number, selector=label1) k8sclient.send_create_pod_request(namespace=namespace, name="pod-2", args=args, image=image, ports={port_number: port_name}, labels=label2, node_name=node) k8sclient.create_service(namespace, "service-2", port=port_number, selector=label2)
def test_service_pod(self): # create some pods # create service selecting the pods name = "pod-service" k8sclient.create_service(self.namespace, name, port=self.port_number, selector={"app": "test_create_stress"}) services = k8sclient.list_services(self.namespace) service_names = [s.metadata.name for s in services.items] assert name in service_names, service_names k8sclient.remove_service(self.namespace, name) services = k8sclient.list_services(self.namespace) service_names = [s.metadata.name for s in services.items] assert name not in service_names, service_names
def test_stress_service_pod(self): name = "pod-service" for i in range(1000): k8sclient.create_service(self.namespace, name, port=self.port_number, selector={"app": "test_create_stress"}) time.sleep(3) services = k8sclient.list_services(self.namespace) service_names = [s.metadata.name for s in services.items] assert name in service_names, service_names k8sclient.remove_service(self.namespace, name) time.sleep(3) services = k8sclient.list_services(self.namespace) service_names = [s.metadata.name for s in services.items] assert name not in service_names, service_names
def _deploy_on_node(node): name_prefix = "-".join(node.split(".")) + uid label1 = {name_prefix + "-app": "test_service-1"} pod_label1 = label1.copy() pod_label1.update(glabel) label2 = {name_prefix + "-app": "test_service-2"} pod_label2 = label2.copy() pod_label2.update(glabel) pod1 = name_prefix + "-pod-1" pod2 = name_prefix + "-pod-2" service1 = "service-1-" + name_prefix service2 = "service-2-" + name_prefix k8sclient.send_create_pod_request( namespace=namespace, name=pod1, args=args, image=image, ports={port_number: port_name}, labels=pod_label1, node_name=node, requests={'cpu': '0'}, #limits={'cpu': '1200m'} ) k8sclient.create_service(namespace, service1, port=port_number, selector=label1) k8sclient.send_create_pod_request( namespace=namespace, name=pod2, args=args, image=image, ports={port_number: port_name}, labels=pod_label2, node_name=node, requests={'cpu': '0'}, #limits={'cpu': '1200m'} ) k8sclient.create_service(namespace, service2, port=port_number, selector=label2)
def _deploy_global_service(): k8sclient.create_service(namespace, global_service, port=port_number, selector=glabel)