You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by im...@apache.org on 2015/09/20 20:55:28 UTC
stratos git commit: Renaming kubernetes service selector label to
serviceSelector and refining service & pod labels
Repository: stratos
Updated Branches:
refs/heads/stratos-4.1.x 500e9c2f7 -> c12e1508b
Renaming kubernetes service selector label to serviceSelector and refining service & pod labels
Project: http://git-wip-us.apache.org/repos/asf/stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/c12e1508
Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/c12e1508
Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/c12e1508
Branch: refs/heads/stratos-4.1.x
Commit: c12e1508b56f045fa4e37b4f24ac151d3f303a48
Parents: 500e9c2
Author: Imesh Gunaratne <im...@apache.org>
Authored: Mon Sep 21 00:18:00 2015 +0530
Committer: Imesh Gunaratne <im...@apache.org>
Committed: Mon Sep 21 00:24:51 2015 +0530
----------------------------------------------------------------------
.../iaases/kubernetes/KubernetesIaas.java | 47 ++++++++++++++------
.../util/CloudControllerConstants.java | 1 +
.../kubernetes/client/KubernetesApiClient.java | 2 +-
.../kubernetes/client/KubernetesConstants.java | 3 +-
4 files changed, 38 insertions(+), 15 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/stratos/blob/c12e1508/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 a462923..1b51d6c 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
@@ -434,15 +434,23 @@ public class KubernetesIaas extends Iaas {
memberContext.getMemberId(), cpu, memory));
Map<String, String> podLabels = new HashMap<>();
- podLabels
- .put(CloudControllerConstants.MD5_HEX_MEMBER_ID_LABEL, DigestUtils.md5Hex(memberContext.getMemberId()));
+ podLabels.put(KubernetesConstants.SERVICE_SELECTOR_LABEL, podName);
+
+ podLabels.put(CloudControllerConstants.APPLICATION_ID_LABEL,
+ trimLabel(CloudControllerConstants.APPLICATION_ID_LABEL, memberContext.getApplicationId()));
+
+ podLabels.put(CloudControllerConstants.CLUSTER_INSTANCE_ID_LABEL,
+ trimLabel(CloudControllerConstants.CLUSTER_INSTANCE_ID_LABEL, memberContext.getClusterInstanceId()));
+
+ podLabels.put(CloudControllerConstants.MEMBER_ID_LABEL,
+ trimLabel(CloudControllerConstants.MEMBER_ID_LABEL, memberContext.getMemberId()));
Map<String, String> podAnnotations = new HashMap<>();
- podAnnotations.put(CloudControllerConstants.MEMBER_ID_LABEL, memberContext.getMemberId());
- podAnnotations.put(CloudControllerConstants.CARTRIDGE_TYPE_LABEL, memberContext.getCartridgeType());
podAnnotations.put(CloudControllerConstants.APPLICATION_ID_LABEL, memberContext.getApplicationId());
+ podAnnotations.put(CloudControllerConstants.CARTRIDGE_TYPE_LABEL, memberContext.getCartridgeType());
podAnnotations.put(CloudControllerConstants.CLUSTER_ID_LABEL, memberContext.getClusterId());
podAnnotations.put(CloudControllerConstants.CLUSTER_INSTANCE_ID_LABEL, memberContext.getClusterInstanceId());
+ podAnnotations.put(CloudControllerConstants.MEMBER_ID_LABEL, memberContext.getMemberId());
kubernetesApi.createPod(podId, podName, podLabels, podAnnotations, dockerImage, cpu, memory, ports,
environmentVariables);
@@ -531,13 +539,11 @@ public class KubernetesIaas extends Iaas {
KubernetesIaasUtil.fixSpecialCharacters(prepareServiceName(serviceSeqNo));
while (kubernetesApi.getService(serviceId) != null) {
serviceSeqNo = kubernetesClusterContext.getNextServiceSeqNo();
- serviceId =
- KubernetesIaasUtil.fixSpecialCharacters(prepareServiceName(serviceSeqNo));
+ serviceId = KubernetesIaasUtil.fixSpecialCharacters(prepareServiceName(serviceSeqNo));
}
if (log.isInfoEnabled()) {
- log.info(
- String.format("Creating kubernetes service: [cluster] %s [service-id] %s [service-name] " +
+ log.info(String.format("Creating kubernetes service: [cluster] %s [service-id] %s [service-name] " +
"%s " + "[protocol] %s [service-port] %d [container-port] %s", clusterId,
serviceId, serviceName, clusterPortMapping.getProtocol(),
clusterPortMapping.getKubernetesServicePort(), containerPort));
@@ -549,15 +555,20 @@ public class KubernetesIaas extends Iaas {
String containerPortName = KubernetesIaasUtil.preparePortNameFromPortMapping(clusterPortMapping);
Map<String, String> serviceLabels = new HashMap<>();
- serviceLabels.put(CloudControllerConstants.MD5_HEX_APPLICATION_ID_LABEL,
- DigestUtils.md5Hex(clusterContext.getApplicationId()));
- serviceLabels.put(CloudControllerConstants.MD5_HEX_CLUSTER_ID_LABEL,
- DigestUtils.md5Hex(clusterContext.getClusterId()));
+ serviceLabels.put(CloudControllerConstants.APPLICATION_ID_LABEL,
+ trimLabel(CloudControllerConstants.APPLICATION_ID_LABEL, clusterContext.getApplicationId()));
+
+ serviceLabels.put(CloudControllerConstants.CLUSTER_ID_LABEL,
+ trimLabel(CloudControllerConstants.CLUSTER_ID_LABEL, clusterContext.getClusterId()));
+
+ serviceLabels.put(CloudControllerConstants.PORT_NAME_LABEL,
+ trimLabel(CloudControllerConstants.PORT_NAME_LABEL, clusterPortMapping.getName()));
Map<String, String> serviceAnnotations = new HashMap<>();
serviceAnnotations
.put(CloudControllerConstants.APPLICATION_ID_LABEL, clusterContext.getApplicationId());
serviceAnnotations.put(CloudControllerConstants.CLUSTER_ID_LABEL, clusterContext.getClusterId());
+ serviceAnnotations.put(CloudControllerConstants.PORT_NAME_LABEL, clusterPortMapping.getName());
serviceAnnotations.put(CloudControllerConstants.PROTOCOL_LABEL, clusterPortMapping.getProtocol());
serviceAnnotations.put(CloudControllerConstants.PORT_TYPE_LABEL,
clusterPortMapping.getKubernetesPortType());
@@ -578,7 +589,7 @@ public class KubernetesIaas extends Iaas {
Service service = kubernetesApi.getService(serviceId);
if (service == null) {
- throw new KubernetesClientException("Kubernetes service not found: [service-id] " + serviceId);
+ throw new KubernetesClientException("Kubernetes service was not created: [service] " + serviceId);
}
KubernetesService kubernetesService = new KubernetesService();
@@ -615,6 +626,16 @@ public class KubernetesIaas extends Iaas {
}
}
+ private String trimLabel(String key, String value) {
+ if(StringUtils.isNotEmpty(value) && (value.length() > KubernetesConstants.MAX_LABEL_LENGTH)) {
+ String trimmed = value.substring(0, KubernetesConstants.MAX_LABEL_LENGTH - 2);
+ log.warn(String.format("Kubernetes label trimmed: [key] %s [original] %s [trimmed] %s",
+ key, value, trimmed));
+ return trimmed;
+ }
+ return value;
+ }
+
private String prepareServiceName(long serviceSeqNo) {
return SERVICE_NAME_PREFIX + "-" + (serviceSeqNo);
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/c12e1508/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/util/CloudControllerConstants.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/util/CloudControllerConstants.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/util/CloudControllerConstants.java
index a29c755..a2f5bab 100644
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/util/CloudControllerConstants.java
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/util/CloudControllerConstants.java
@@ -309,4 +309,5 @@ public final class CloudControllerConstants {
public static final String LOADBALANCING_IP_TYPE_PRIVATE = "private";
public static final String LOADBALANCING_IP_TYPE_PUBLIC = "public";
+ public static final String PORT_NAME_LABEL = "portName";
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/c12e1508/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 978273c..b231736 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
@@ -213,7 +213,7 @@ public class KubernetesApiClient implements KubernetesAPIClientInterface {
// Set service selector
Map<String, String> selector = new HashMap<String, String>();
- selector.put(KubernetesConstants.LABEL_NAME, serviceName);
+ selector.put(KubernetesConstants.SERVICE_SELECTOR_LABEL, serviceName);
service.getSpec().setSelector(selector);
// Invoke the api to create the service
http://git-wip-us.apache.org/repos/asf/stratos/blob/c12e1508/components/org.apache.stratos.kubernetes.client/src/main/java/org/apache/stratos/kubernetes/client/KubernetesConstants.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.kubernetes.client/src/main/java/org/apache/stratos/kubernetes/client/KubernetesConstants.java b/components/org.apache.stratos.kubernetes.client/src/main/java/org/apache/stratos/kubernetes/client/KubernetesConstants.java
index d4dd02c..2a4a8dd 100644
--- a/components/org.apache.stratos.kubernetes.client/src/main/java/org/apache/stratos/kubernetes/client/KubernetesConstants.java
+++ b/components/org.apache.stratos.kubernetes.client/src/main/java/org/apache/stratos/kubernetes/client/KubernetesConstants.java
@@ -29,9 +29,10 @@ public class KubernetesConstants {
public static final String SESSION_AFFINITY_CLIENT_IP = "ClientIP";
public static final String KIND_POD = "Pod";
public static final String KIND_SERVICE = "Service";
- public static final String LABEL_NAME = "name";
+ public static final String SERVICE_SELECTOR_LABEL = "serviceSelector";
public static final String RESOURCE_CPU = "cpu";
public static final String RESOURCE_MEMORY = "memory";
public static final String NODE_PORT = "NodePort";
public static final String CLUSTER_IP = "ClusterIP";
+ public static final int MAX_LABEL_LENGTH = 63;
}