You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by re...@apache.org on 2015/03/01 19:35:47 UTC

[26/50] [abbrv] stratos git commit: Adding port mappings to payload in kubernetes workflow

Adding port mappings to payload in kubernetes workflow


Project: http://git-wip-us.apache.org/repos/asf/stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/a854a9ca
Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/a854a9ca
Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/a854a9ca

Branch: refs/heads/docker-grouping-merge
Commit: a854a9caf5adea1a9f28e25e41b32eab3164ce2f
Parents: d58cc94
Author: Imesh Gunaratne <im...@apache.org>
Authored: Sun Mar 1 00:41:06 2015 +0530
Committer: Imesh Gunaratne <im...@apache.org>
Committed: Sun Mar 1 00:41:06 2015 +0530

----------------------------------------------------------------------
 .../iaases/kubernetes/KubernetesIaas.java        | 19 +++++++++++++++++--
 .../iaases/kubernetes/KubernetesIaasUtil.java    |  1 -
 2 files changed, 17 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/a854a9ca/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 47e620c..f675a21 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
@@ -42,6 +42,7 @@ import org.apache.stratos.kubernetes.client.exceptions.KubernetesClientException
 import org.apache.stratos.kubernetes.client.model.EnvironmentVariable;
 import org.apache.stratos.kubernetes.client.model.Pod;
 import org.apache.stratos.kubernetes.client.model.Service;
+import org.apache.stratos.kubernetes.client.model.Port;
 import org.apache.stratos.messaging.domain.topology.KubernetesService;
 
 import java.util.ArrayList;
@@ -59,6 +60,7 @@ public class KubernetesIaas extends Iaas {
     private static final String PAYLOAD_PARAMETER_SEPARATOR = ",";
     private static final String PAYLOAD_PARAMETER_NAME_VALUE_SEPARATOR = "=";
     private static final String PAYLOAD_PARAMETER_PREFIX = "payload_parameter.";
+    private static final String PORT_MAPPINGS = "PORT_MAPPINGS";
 
     private PartitionValidator partitionValidator;
     private List<NameValuePair> payload;
@@ -385,8 +387,8 @@ public class KubernetesIaas extends Iaas {
         EnvironmentVariable[] environmentVariables = KubernetesIaasUtil.prepareEnvironmentVariables(
                 clusterContext, memberContext);
 
-        kubernetesApi.createPod(podId, podLabel, dockerImage,
-                KubernetesIaasUtil.convertPortMappings(cartridge.getPortMappings()), environmentVariables);
+        List<Port> ports = KubernetesIaasUtil.convertPortMappings(cartridge.getPortMappings());
+        kubernetesApi.createPod(podId, podLabel, dockerImage, ports, environmentVariables);
 
         // Add pod id to member context and persist
         memberContext.setKubernetesPodId(podId);
@@ -510,6 +512,7 @@ public class KubernetesIaas extends Iaas {
                                               Cartridge cartridge) {
         if(cartridge != null) {
             boolean servicePortsUpdated = false;
+            StringBuilder portMappingStrBuilder = new StringBuilder();
             for (PortMapping portMapping : cartridge.getPortMappings()) {
                 if(portMapping.getKubernetesServicePort() == 0) {
                     int nextServicePort = kubernetesClusterContext.getNextServicePort();
@@ -520,12 +523,24 @@ public class KubernetesIaas extends Iaas {
                     portMapping.setKubernetesServicePort(nextServicePort);
                     servicePortsUpdated = true;
 	                portMapping.setKubernetesServicePortMapping(true);
+
+                    if(portMappingStrBuilder.toString().length() > 0) {
+                        portMappingStrBuilder.append(":");
+                    }
+
+                    portMappingStrBuilder.append(String.format("PROTOCOL=%s|PORT=%d|PROXY_PORT=%d",
+                            portMapping.getProtocol(), portMapping.getPort(), portMapping.getProxyPort()));
+
                     if (log.isInfoEnabled()) {
                         log.info(String.format("Kubernetes service port generated: [cluster-id] %s [port] %d " +
                                 "[service-port] %d", clusterId, portMapping.getPort(), nextServicePort));
                     }
                 }
             }
+
+            NameValuePair nameValuePair = new NameValuePair(PORT_MAPPINGS, portMappingStrBuilder.toString());
+            payload.add(nameValuePair);
+
             if(servicePortsUpdated) {
                 // Persist service ports added to port mappings
                 CloudControllerContext.getInstance().updateKubernetesClusterContext(kubernetesClusterContext);

http://git-wip-us.apache.org/repos/asf/stratos/blob/a854a9ca/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/kubernetes/KubernetesIaasUtil.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/kubernetes/KubernetesIaasUtil.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/kubernetes/KubernetesIaasUtil.java
index 80cc395..7bfc68e 100644
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/kubernetes/KubernetesIaasUtil.java
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/kubernetes/KubernetesIaasUtil.java
@@ -116,7 +116,6 @@ public class KubernetesIaasUtil {
             Port port = new Port();
             port.setName(preparePortNameFromPortMapping(portMapping));
             port.setContainerPort(portMapping.getPort());
-            port.setHostPort(portMapping.getKubernetesServicePort());
             ports.add(port);
         }
         return ports;