Set labels for identification when creating K8s pods and services
Project: http://git-wip-us.apache.org/repos/asf/stratos/repo Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/5a9537d0 Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/5a9537d0 Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/5a9537d0 Branch: refs/heads/stratos-4.1.x Commit: 5a9537d09a0e7a745e2ab8b7eac51027e59688ef Parents: 7d6279d Author: Akila Perera <[email protected]> Authored: Sat Sep 19 19:58:57 2015 +0530 Committer: Akila Perera <[email protected]> Committed: Sun Sep 20 00:19:40 2015 +0530 ---------------------------------------------------------------------- .../org.apache.stratos.cloud.controller/pom.xml | 7 +- .../cloud/controller/domain/MemberContext.java | 12 ++-- .../iaases/kubernetes/KubernetesIaas.java | 24 +++++++ .../kubernetes/client/KubernetesApiClient.java | 69 ++++++++++---------- .../KubernetesAPIClientInterface.java | 16 +++-- .../client/live/AbstractLiveTest.java | 22 ++++--- .../live/KubernetesApiClientLiveTest.java | 26 ++++++-- 7 files changed, 113 insertions(+), 63 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/stratos/blob/5a9537d0/components/org.apache.stratos.cloud.controller/pom.xml ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.cloud.controller/pom.xml b/components/org.apache.stratos.cloud.controller/pom.xml index 2f3c841..b771e1a 100644 --- a/components/org.apache.stratos.cloud.controller/pom.xml +++ b/components/org.apache.stratos.cloud.controller/pom.xml @@ -54,11 +54,10 @@ </Private-Package> <Import-Package> !org.apache.stratos.cloud.controller.*, - org.apache.commons.logging, - org.apache.commons.io.*, + org.apache.commons.*, org.wso2.carbon.utils.*, - org.apache.stratos.kubernetes.client; version="${project.version}", - org.apache.stratos.kubernetes.client.exceptions; version="${project.version}", + org.apache.stratos.common.*; version="${project.version}", + org.apache.stratos.kubernetes.client.*; version="${project.version}", org.jclouds.aws.ec2.*; version=${jclouds.version}, org.jclouds.ec2.*; version=${jclouds.version}, org.jclouds.compute.*; version=${jclouds.version}, http://git-wip-us.apache.org/repos/asf/stratos/blob/5a9537d0/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/domain/MemberContext.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/domain/MemberContext.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/domain/MemberContext.java index ebe2940..c0e50bd 100644 --- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/domain/MemberContext.java +++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/domain/MemberContext.java @@ -73,7 +73,7 @@ public class MemberContext implements Serializable { private Properties properties; private NameValuePair[] dynamicPayload; private String kubernetesPodId; - private String kubernetesPodLabel; + private String kubernetesPodName; private LoadBalancingIPType loadBalancingIPType; public MemberContext(String applicationId, String cartridgeType, String clusterId, String memberId) { @@ -271,12 +271,12 @@ public class MemberContext implements Serializable { return kubernetesPodId; } - public void setKubernetesPodLabel(String kubernetesPodLabel) { - this.kubernetesPodLabel = kubernetesPodLabel; + public void setKubernetesPodName(String kubernetesPodLabel) { + this.kubernetesPodName = kubernetesPodLabel; } - public String getKubernetesPodLabel() { - return kubernetesPodLabel; + public String getKubernetesPodName() { + return kubernetesPodName; } public LoadBalancingIPType getLoadBalancingIPType() { @@ -305,7 +305,7 @@ public class MemberContext implements Serializable { + ", lbClusterId=" + lbClusterId + ", networkPartitionId=" + networkPartitionId + ", kubernetesPodId=" + kubernetesPodId - + ", kubernetesPodLabel=" + kubernetesPodLabel + + ", kubernetesPodName=" + kubernetesPodName + ", loadBalancingIPType=" + loadBalancingIPType + ", instanceMetadata=" + instanceMetadata + ", properties=" + properties + "]"; http://git-wip-us.apache.org/repos/asf/stratos/blob/5a9537d0/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/kubernetes/KubernetesIaas.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/kubernetes/KubernetesIaas.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/kubernetes/KubernetesIaas.java index 5867184..fbb4c7c 100644 --- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/kubernetes/KubernetesIaas.java +++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/kubernetes/KubernetesIaas.java @@ -977,6 +977,7 @@ public class KubernetesIaas extends Iaas { for (KubernetesService kubernetesService : kubernetesServices) { KubernetesClusterContext kubernetesClusterContext = +<<<<<<< HEAD CloudControllerContext.getInstance().getKubernetesClusterContext(kubernetesService.getKubernetesClusterId()); KubernetesApiClient kubernetesApiClient = kubernetesClusterContext.getKubApi(); String serviceId = kubernetesService.getId(); @@ -991,6 +992,29 @@ public class KubernetesIaas extends Iaas { } catch (KubernetesClientException e) { log.error(String.format("Could not delete kubernetes service: [application-id] %s " + "[service-id] %s", clusterContext.getApplicationId(), serviceId)); +======= + CloudControllerContext.getInstance().getKubernetesClusterContext(kubernetesClusterId); + + if (kubernetesClusterContext != null) { + KubernetesApiClient kubernetesApiClient = kubernetesClusterContext.getKubApi(); + ArrayList<KubernetesService> kubernetesServices = Lists.newArrayList(clusterContext.getKubernetesServices()); + + for (KubernetesService kubernetesService : kubernetesServices) { + String serviceId = kubernetesService.getId(); + log.info(String.format("Deleting kubernetes service: [application-id] %s " + + "[service-id] %s", applicationId, serviceId)); + + try { + kubernetesApiClient.deleteService(serviceId); + kubernetesClusterContext.deallocatePort(kubernetesService.getPort()); + kubernetesClusterContext.removeKubernetesService(serviceId); + clusterContext.removeKubernetesService(serviceId); + } catch (KubernetesClientException e) { + log.error(String.format("Could not delete kubernetes service: [application-id] %s " + + "[service-id] %s", applicationId, serviceId)); + } + } +>>>>>>> Set labels for identification when creating K8s pods and services } } } http://git-wip-us.apache.org/repos/asf/stratos/blob/5a9537d0/components/org.apache.stratos.kubernetes.client/src/main/java/org/apache/stratos/kubernetes/client/KubernetesApiClient.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.kubernetes.client/src/main/java/org/apache/stratos/kubernetes/client/KubernetesApiClient.java b/components/org.apache.stratos.kubernetes.client/src/main/java/org/apache/stratos/kubernetes/client/KubernetesApiClient.java index 7dffd60..5d0aff1 100644 --- a/components/org.apache.stratos.kubernetes.client/src/main/java/org/apache/stratos/kubernetes/client/KubernetesApiClient.java +++ b/components/org.apache.stratos.kubernetes.client/src/main/java/org/apache/stratos/kubernetes/client/KubernetesApiClient.java @@ -46,7 +46,8 @@ public class KubernetesApiClient implements KubernetesAPIClientInterface { * Create new pod * * @param podId Identifier of the pod - * @param podLabel Pod name to be used by the pod label + * @param podName Pod name to be used by the pod label + * @param podLabels Map of labels to be applied to the pod * @param dockerImage Docker image to be used by the pod * @param cpu Number of cpu cores * @param memory Memory allocation in megabytes @@ -55,35 +56,29 @@ public class KubernetesApiClient implements KubernetesAPIClientInterface { * @throws KubernetesClientException */ @Override - public void createPod(String podId, String podLabel, String dockerImage, String cpu, String memory, List<ContainerPort> ports, - List<EnvVar> environmentVariables) + public void createPod(String podId, String podName, Map<String, String> podLabels, String dockerImage, String cpu, + String memory, List<ContainerPort> ports, List<EnvVar> environmentVariables) throws KubernetesClientException { try { if (log.isDebugEnabled()) { log.debug(String.format("Creating kubernetes pod: [pod-id] %s [pod-name] %s [docker-image] %s " + - "[cpu] %s [memory] %s [ports] %s", - podId, podLabel, dockerImage, cpu, memory, ports)); + "[cpu] %s [memory] %s [ports] %s", podId, podLabels, dockerImage, cpu, memory, ports)); } // Create pod definition Pod pod = new Pod(); pod.setApiVersion(Pod.ApiVersion.V_1); pod.setKind(KubernetesConstants.KIND_POD); - pod.setSpec(new PodSpec()); pod.setMetadata(new ObjectMeta()); - pod.getMetadata().setName(podId); - - Map<String, String> labels = new HashMap<String, String>(); - labels.put(KubernetesConstants.LABEL_NAME, podLabel); - pod.getMetadata().setLabels(labels); + pod.getMetadata().setLabels(podLabels); // Set container template Container containerTemplate = new Container(); - containerTemplate.setName(podLabel); + containerTemplate.setName(podName); containerTemplate.setImage(dockerImage); containerTemplate.setEnv(environmentVariables); List<Container> containerTemplates = new ArrayList<Container>(); @@ -110,7 +105,8 @@ public class KubernetesApiClient implements KubernetesAPIClientInterface { if (log.isDebugEnabled()) { log.debug(String.format("Kubernetes pod created successfully: [pod-id] %s", podId)); } - } catch (Exception e) { + } + catch (Exception e) { String msg = String.format("Could not create kubernetes pod: [pod-id] %s", podId); log.error(msg, e); throw new KubernetesClientException(msg, e); @@ -121,7 +117,8 @@ public class KubernetesApiClient implements KubernetesAPIClientInterface { public Pod getPod(String podId) throws KubernetesClientException { try { return kubernetesClient.getPod(podId); - } catch (Exception e) { + } + catch (Exception e) { String msg = String.format("Could not retrieve kubernetes pod: [pod-id] %s", podId); log.error(msg, e); throw new KubernetesClientException(msg, e); @@ -132,7 +129,8 @@ public class KubernetesApiClient implements KubernetesAPIClientInterface { public List<Pod> getPods() throws KubernetesClientException { try { return kubernetesClient.getPods().getItems(); - } catch (Exception e) { + } + catch (Exception e) { String msg = "Error while retrieving kubernetes pods."; log.error(msg, e); throw new KubernetesClientException(msg, e); @@ -143,7 +141,8 @@ public class KubernetesApiClient implements KubernetesAPIClientInterface { public void deletePod(String podId) throws KubernetesClientException { try { kubernetesClient.deletePod(podId); - } catch (Exception e) { + } + catch (Exception e) { String message = String.format("Could not delete kubernetes pod: [pod-id] %s", podId); log.error(message, e); throw new KubernetesClientException(message, e); @@ -154,7 +153,8 @@ public class KubernetesApiClient implements KubernetesAPIClientInterface { * Create kubernetes service * * @param serviceId Service id - * @param serviceLabel Service name to be used by the label name + * @param serviceName Service name to be used by the label name + * @param serviceLabels Service labels map * @param servicePort Port to be exposed by the kubernetes node * @param containerPortName Container port name defined in the port label * @param containerPort Container port @@ -163,15 +163,16 @@ public class KubernetesApiClient implements KubernetesAPIClientInterface { * @throws KubernetesClientException */ @Override - public void createService(String serviceId, String serviceLabel, int servicePort, String serviceType, - String containerPortName, int containerPort, String sessionAffinity) + public void createService(String serviceId, String serviceName, Map<String, String> serviceLabels, int servicePort, + String serviceType, String containerPortName, int containerPort, String sessionAffinity) throws KubernetesClientException { try { if (log.isDebugEnabled()) { - log.debug(String.format("Creating kubernetes service: [service-id] %s [service-name] %s [service-port] " + - "%d [container-port-name] %s [service-type] %s", serviceId, serviceLabel, servicePort, - containerPortName, serviceType)); + log.debug( + String.format("Creating kubernetes service: [service-id] %s [service-name] %s [service-port] " + + "%d [container-port-name] %s [service-type] %s", serviceId, serviceName, + servicePort, containerPortName, serviceType)); } // Create service definition @@ -203,14 +204,12 @@ public class KubernetesApiClient implements KubernetesAPIClientInterface { ports.add(port); service.getSpec().setPorts(ports); - // Set label - Map<String, String> labels = new HashMap<String, String>(); - labels.put(KubernetesConstants.LABEL_NAME, serviceLabel); - service.getMetadata().setLabels(labels); + // Set labels + service.getMetadata().setLabels(serviceLabels); // Set service selector Map<String, String> selector = new HashMap<String, String>(); - selector.put(KubernetesConstants.LABEL_NAME, serviceLabel); + selector.put(KubernetesConstants.LABEL_NAME, serviceName); service.getSpec().setSelector(selector); // Invoke the api to create the service @@ -218,12 +217,13 @@ public class KubernetesApiClient implements KubernetesAPIClientInterface { if (log.isDebugEnabled()) { log.debug(String.format("Kubernetes service created successfully: [service-id] %s [service-name] %s " + - "[node-port] %d [container-port-name] %s [container-port] %d", serviceId, serviceLabel, + "[node-port] %d [container-port-name] %s [container-port] %d", serviceId, serviceName, servicePort, containerPortName, containerPort)); } - } catch (Exception e) { + } + catch (Exception e) { String message = String.format("Could not create kubernetes service: [service-id] %s [service-name] %s " + - "[node-port] %d [container-port-name] %s [container-port] %d", serviceId, serviceLabel, + "[node-port] %d [container-port-name] %s [container-port] %d", serviceId, serviceName, servicePort, containerPortName, containerPort); log.error(message, e); throw new KubernetesClientException(message, e); @@ -235,7 +235,8 @@ public class KubernetesApiClient implements KubernetesAPIClientInterface { throws KubernetesClientException { try { return kubernetesClient.getService(serviceId); - } catch (Exception e) { + } + catch (Exception e) { String msg = String.format("Could not retrieve kubernetes service: [service-id] %s", serviceId); log.error(msg, e); throw new KubernetesClientException(msg, e); @@ -246,7 +247,8 @@ public class KubernetesApiClient implements KubernetesAPIClientInterface { public List<Service> getServices() throws KubernetesClientException { try { return kubernetesClient.getServices().getItems(); - } catch (Exception e) { + } + catch (Exception e) { String msg = "Could not retrieve kubernetes services"; log.error(msg, e); throw new KubernetesClientException(msg, e); @@ -267,7 +269,8 @@ public class KubernetesApiClient implements KubernetesAPIClientInterface { if (log.isDebugEnabled()) { log.debug(String.format("Kubernetes service deleted successfully: [service-id] %s", serviceId)); } - } catch (Exception e) { + } + catch (Exception e) { String msg = String.format("Could not delete kubernetes service: [service-id] %s", serviceId); log.error(msg, e); throw new KubernetesClientException(msg, e); http://git-wip-us.apache.org/repos/asf/stratos/blob/5a9537d0/components/org.apache.stratos.kubernetes.client/src/main/java/org/apache/stratos/kubernetes/client/interfaces/KubernetesAPIClientInterface.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.kubernetes.client/src/main/java/org/apache/stratos/kubernetes/client/interfaces/KubernetesAPIClientInterface.java b/components/org.apache.stratos.kubernetes.client/src/main/java/org/apache/stratos/kubernetes/client/interfaces/KubernetesAPIClientInterface.java index dd980fe..95ea1e7 100644 --- a/components/org.apache.stratos.kubernetes.client/src/main/java/org/apache/stratos/kubernetes/client/interfaces/KubernetesAPIClientInterface.java +++ b/components/org.apache.stratos.kubernetes.client/src/main/java/org/apache/stratos/kubernetes/client/interfaces/KubernetesAPIClientInterface.java @@ -25,7 +25,9 @@ import io.fabric8.kubernetes.api.model.EnvVar; import io.fabric8.kubernetes.api.model.Pod; import io.fabric8.kubernetes.api.model.Service; import org.apache.stratos.kubernetes.client.exceptions.KubernetesClientException; + import java.util.List; +import java.util.Map; public interface KubernetesAPIClientInterface { @@ -34,7 +36,8 @@ public interface KubernetesAPIClientInterface { * Create pod. * * @param podId id of the pod - * @param podLabel pod label + * @param podName pod label + * @param podLabels Map of labels to be applied to the pod * @param dockerImage docker image name * @param cpu number of cpu cores * @param memory memory allocation in mega bytes @@ -42,8 +45,8 @@ public interface KubernetesAPIClientInterface { * @param environmentVariables environment variables * @throws KubernetesClientException */ - public void createPod(String podId, String podLabel, String dockerImage, String cpu, String memory, - List<ContainerPort> ports, List<EnvVar> environmentVariables) + public void createPod(String podId, String podName, Map<String, String> podLabels, String dockerImage, String cpu, + String memory, List<ContainerPort> ports, List<EnvVar> environmentVariables) throws KubernetesClientException; /** @@ -75,7 +78,8 @@ public interface KubernetesAPIClientInterface { * Create service. * * @param serviceId - * @param serviceLabel + * @param serviceName + * @param podLabels * @param servicePort * @param serviceType * @param containerPortName @@ -83,8 +87,8 @@ public interface KubernetesAPIClientInterface { * @param sessionAffinity * @throws KubernetesClientException */ - public void createService(String serviceId, String serviceLabel, int servicePort, String serviceType, - String containerPortName, int containerPort, String sessionAffinity) + public void createService(String serviceId, String serviceName, Map<String, String> podLabels, int servicePort, + String serviceType, String containerPortName, int containerPort, String sessionAffinity) throws KubernetesClientException; /** http://git-wip-us.apache.org/repos/asf/stratos/blob/5a9537d0/components/org.apache.stratos.kubernetes.client/src/test/java/org/apache/stratos/kubernetes/client/live/AbstractLiveTest.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.kubernetes.client/src/test/java/org/apache/stratos/kubernetes/client/live/AbstractLiveTest.java b/components/org.apache.stratos.kubernetes.client/src/test/java/org/apache/stratos/kubernetes/client/live/AbstractLiveTest.java index 2fc2cc43..f8f2155 100644 --- a/components/org.apache.stratos.kubernetes.client/src/test/java/org/apache/stratos/kubernetes/client/live/AbstractLiveTest.java +++ b/components/org.apache.stratos.kubernetes.client/src/test/java/org/apache/stratos/kubernetes/client/live/AbstractLiveTest.java @@ -124,12 +124,13 @@ public class AbstractLiveTest extends TestCase { log.info("Kubernetes resources cleaned"); } - protected void createPod(String podId, String podName, String containerPortName, String cpu, String memory) + protected void createPod(String podId, String podName, Map<String, String> labelMap, String containerPortName, + String cpu, String memory) throws KubernetesClientException { log.info("Creating pod: [pod] " + podId); List<ContainerPort> ports = createPorts(containerPortName); - client.createPod(podId, podName, dockerImage, cpu, memory, ports, null); + client.createPod(podId, podName, labelMap, dockerImage, cpu, memory, ports, null); podIdList.add(podId); sleep(2000); @@ -190,15 +191,18 @@ public class AbstractLiveTest extends TestCase { for (String podId : podIdList) { deletePod(podId); } - } catch (KubernetesClientException e) { + } + catch (KubernetesClientException e) { log.error("Could not delete pods", e); } } - protected void createService(String serviceId, String serviceName, int nodePort, String serviceType, String containerPortName, - int containerPort, List<String> publicIPs) throws KubernetesClientException, InterruptedException, IOException { + protected void createService(String serviceId, String serviceName, Map<String, String> labelMap, int nodePort, + String serviceType, String containerPortName, int containerPort, + List<String> publicIPs) + throws KubernetesClientException, InterruptedException, IOException { log.info("Creating service..."); - client.createService(serviceId, serviceName, nodePort, serviceType, containerPortName, containerPort, + client.createService(serviceId, serviceName, labelMap, nodePort, serviceType, containerPortName, containerPort, KubernetesConstants.SESSION_AFFINITY_CLIENT_IP); serviceIdList.add(serviceId); @@ -227,7 +231,8 @@ public class AbstractLiveTest extends TestCase { for (String serviceId : serviceIdList) { deleteService(serviceId); } - } catch (KubernetesClientException e) { + } + catch (KubernetesClientException e) { log.error("Could not delete services", e); } } @@ -235,7 +240,8 @@ public class AbstractLiveTest extends TestCase { protected void sleep(long time) { try { Thread.sleep(time); - } catch (InterruptedException ignore) { + } + catch (InterruptedException ignore) { } } http://git-wip-us.apache.org/repos/asf/stratos/blob/5a9537d0/components/org.apache.stratos.kubernetes.client/src/test/java/org/apache/stratos/kubernetes/client/live/KubernetesApiClientLiveTest.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.kubernetes.client/src/test/java/org/apache/stratos/kubernetes/client/live/KubernetesApiClientLiveTest.java b/components/org.apache.stratos.kubernetes.client/src/test/java/org/apache/stratos/kubernetes/client/live/KubernetesApiClientLiveTest.java index c7ae1da..4913be6 100644 --- a/components/org.apache.stratos.kubernetes.client/src/test/java/org/apache/stratos/kubernetes/client/live/KubernetesApiClientLiveTest.java +++ b/components/org.apache.stratos.kubernetes.client/src/test/java/org/apache/stratos/kubernetes/client/live/KubernetesApiClientLiveTest.java @@ -20,7 +20,6 @@ */ package org.apache.stratos.kubernetes.client.live; -import io.fabric8.kubernetes.api.model.Pod; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.stratos.kubernetes.client.exceptions.KubernetesClientException; @@ -28,6 +27,8 @@ import org.junit.Test; import org.junit.experimental.categories.Category; import java.net.Socket; +import java.util.HashMap; +import java.util.Map; /** * Notes: @@ -47,9 +48,13 @@ public class KubernetesApiClientLiveTest extends AbstractLiveTest { @Test public void testPodCreation() throws Exception { log.info("Testing pod creation..."); + Map<String, String> podLabels1 = new HashMap<>(); + podLabels1.put("applicationId", "my-application-1"); + createPod("stratos-test-pod-1", "stratos-test-pod", podLabels1, "http-1", "1", "512Mi"); - createPod("stratos-test-pod-1", "stratos-test-pod", "http-1", "1", "512Mi"); - createPod("stratos-test-pod-2", "stratos-test-pod", "http-1", "2", "4Gi"); + Map<String, String> podLabels2 = new HashMap<>(); + podLabels2.put("applicationId", "my-application-2"); + createPod("stratos-test-pod-2", "stratos-test-pod", podLabels2, "http-1", "2", "4Gi"); deletePod("stratos-test-pod-1"); deletePod("stratos-test-pod-2"); @@ -73,10 +78,19 @@ public class KubernetesApiClientLiveTest extends AbstractLiveTest { String containerPortName = "http-1"; String serviceType = "NodePort"; - createService(serviceId, serviceName, SERVICE_PORT, serviceType, containerPortName, containerPort, minionPublicIPs); + Map<String, String> serviceLabels1 = new HashMap<>(); + serviceLabels1.put("applicationId", "my-application-1"); + createService(serviceId, serviceName, serviceLabels1, SERVICE_PORT, serviceType, containerPortName, + containerPort, + minionPublicIPs); - createPod("stratos-test-pod-3", serviceName, containerPortName, "1", "512"); - createPod("stratos-test-pod-4", serviceName, containerPortName, "2", "512"); + Map<String, String> podLabels1 = new HashMap<>(); + podLabels1.put("applicationId", "my-application-3"); + createPod("stratos-test-pod-3", serviceName, podLabels1, containerPortName, "1", "512"); + + Map<String, String> podLabels2 = new HashMap<>(); + podLabels2.put("applicationId", "my-application-4"); + createPod("stratos-test-pod-4", serviceName, podLabels2, containerPortName, "2", "512"); if (testServiceSocket) { // test service accessibility
