Setting container compatible name, setting tcp as the port protocol, pass the environment variables generated by stratos manager to the docker instance via kubernetes.
Project: http://git-wip-us.apache.org/repos/asf/stratos/repo Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/10f9beec Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/10f9beec Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/10f9beec Branch: refs/heads/docker-integration Commit: 10f9beec6f7ad98f74735672b3d557f16d9af23a Parents: d774e2a Author: Nirmal Fernando <[email protected]> Authored: Fri Sep 19 12:58:20 2014 +0530 Committer: Nirmal Fernando <[email protected]> Committed: Fri Sep 19 16:03:19 2014 +0530 ---------------------------------------------------------------------- .../MemberContextToKubernetesContainer.java | 28 ++++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/stratos/blob/10f9beec/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/functions/MemberContextToKubernetesContainer.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/functions/MemberContextToKubernetesContainer.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/functions/MemberContextToKubernetesContainer.java index 9ae4145..1848608 100644 --- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/functions/MemberContextToKubernetesContainer.java +++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/functions/MemberContextToKubernetesContainer.java @@ -54,7 +54,7 @@ public class MemberContextToKubernetesContainer implements Function<MemberContex ClusterContext clusterContext = dataHolder.getClusterContext(clusterId); Container container = new Container(); - container.setName(clusterContext.getHostName()); + container.setName(getCompatibleName(clusterContext.getHostName())); Cartridge cartridge = dataHolder.getCartridge(clusterContext .getCartridgeType()); @@ -74,6 +74,13 @@ public class MemberContextToKubernetesContainer implements Function<MemberContex return container; } + private String getCompatibleName(String hostName) { + if (hostName.indexOf('.') != -1) { + hostName = hostName.replace('.', '-'); + } + return hostName; + } + private Port[] getPorts(ClusterContext ctxt, Cartridge cartridge) { // String kubernetesClusterId = CloudControllerUtil.getProperty(ctxt.getProperties(), // StratosConstants.KUBERNETES_CLUSTER_ID); @@ -85,7 +92,8 @@ public class MemberContextToKubernetesContainer implements Function<MemberContex Port p = new Port(); p.setContainerPort(Integer.parseInt(portMapping.getPort())); // p.setHostPort(kubClusterContext.getAnAvailableHostPort()); - p.setProtocol(portMapping.getProtocol()); + // In kubernetes transport protocol always be 'tcp' + p.setProtocol("tcp"); p.setName(p.getProtocol()+p.getContainerPort()); portList.add(p); } @@ -100,6 +108,7 @@ public class MemberContextToKubernetesContainer implements Function<MemberContex StratosConstants.KUBERNETES_CLUSTER_ID); List<EnvironmentVariable> envVars = new ArrayList<EnvironmentVariable>(); + addToEnvironment(envVars, ctxt.getPayload()); //FIXME member id, should it be unique for a container? addToEnvironment(envVars, StratosConstants.MEMBER_ID, memberCtxt.getMemberId()); addToEnvironment(envVars, StratosConstants.LB_CLUSTER_ID, memberCtxt.getLbClusterId()); @@ -121,6 +130,21 @@ public class MemberContextToKubernetesContainer implements Function<MemberContex } private void addToEnvironment(List<EnvironmentVariable> envVars, + String payload) { + + if (payload != null) { + String[] entries = payload.split(","); + for (String entry : entries) { + String[] var = entry.split("="); + if(var.length != 2) { + continue; + } + addToEnvironment(envVars, var[0], var[1]); + } + } + } + + private void addToEnvironment(List<EnvironmentVariable> envVars, String name, String value) { EnvironmentVariable var = new EnvironmentVariable();
