I have added few comments on this commit:
https://github.com/apache/stratos/commit/fe4205989905679f392b238f167c07a98900c57f

Thanks

---------- Forwarded message ----------
From: <raviha...@apache.org>
Date: Sun, Sep 20, 2015 at 12:01 PM
Subject: [15/17] stratos git commit: Adding annotations in K8s when
creating services and pods
To: comm...@stratos.apache.org


Adding annotations in K8s when creating services and pods


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

Branch: refs/heads/stratos-4.1.x
Commit: fe4205989905679f392b238f167c07a98900c57f
Parents: 5e4d3f0
Author: Akila Perera <ravihansa3...@gmail.com>
Authored: Sun Sep 20 11:10:22 2015 +0530
Committer: Akila Perera <ravihansa3...@gmail.com>
Committed: Sun Sep 20 11:10:22 2015 +0530

----------------------------------------------------------------------
 .../iaases/kubernetes/KubernetesIaas.java       | 57 ++++++++++++--------
 .../kubernetes/client/KubernetesApiClient.java  | 12 +++--
 .../KubernetesAPIClientInterface.java           | 10 ++--
 3 files changed, 47 insertions(+), 32 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/fe420598/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 060d39a..d4a0e6c 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
@@ -433,13 +433,17 @@ public class KubernetesIaas extends Iaas {
                 memberContext.getMemberId(), cpu, memory));

         Map<String, String> podLabels = new HashMap<>();
-        podLabels.put("applicationId", memberContext.getApplicationId());
-        podLabels.put("clusterId", memberContext.getClusterId());
-        podLabels.put("clusterInstanceId",
memberContext.getClusterInstanceId());
-        podLabels.put("memberId", memberContext.getMemberId());
-        podLabels.put("cartridgeType", memberContext.getCartridgeType());
+        podLabels.put("md5Hex-memberId",
DigestUtils.md5Hex(memberContext.getMemberId()));

-        kubernetesApi.createPod(podId, podName, podLabels, dockerImage,
cpu, memory, ports, environmentVariables);
+        Map<String, String> podAnnotations = new HashMap<>();
+        podAnnotations.put("memberId", memberContext.getMemberId());
+        podAnnotations.put("cartridgeType",
memberContext.getCartridgeType());
+        podAnnotations.put("applicationId",
memberContext.getApplicationId());
+        podAnnotations.put("clusterId", memberContext.getClusterId());
+        podAnnotations.put("clusterInstanceId",
memberContext.getClusterInstanceId());
+
+        kubernetesApi.createPod(podId, podName, podLabels, podAnnotations,
dockerImage, cpu, memory, ports,
+                environmentVariables);

         log.info(String.format("Pod started successfully: [application] %s
[cartridge] %s [member] %s " +
                         "[pod] %s [pod-label] %s [cpu] %s [memory] %s",
@@ -502,7 +506,6 @@ public class KubernetesIaas extends Iaas {

         Collection<ClusterPortMapping> clusterPortMappings =
CloudControllerContext.getInstance()
                 .getClusterPortMappings(clusterContext.getApplicationId(),
clusterId);
-        Map<String, String> serviceLabels = new HashMap<>();

         if (clusterPortMappings != null) {
             String serviceName = DigestUtils.md5Hex(clusterId);
@@ -542,18 +545,24 @@ public class KubernetesIaas extends Iaas {
                 int servicePort =
clusterPortMapping.getKubernetesServicePort();
                 String serviceType =
clusterPortMapping.getKubernetesServiceType();
                 String containerPortName =
KubernetesIaasUtil.preparePortNameFromPortMapping(clusterPortMapping);
-                serviceLabels.put("applicationId",
clusterPortMapping.getApplicationId());
-                serviceLabels.put("clusterId",
clusterPortMapping.getClusterId());
-                serviceLabels.put("name", clusterPortMapping.getName());
-                serviceLabels.put("protocol",
clusterPortMapping.getProtocol());
-                serviceLabels.put("serviceType",
clusterPortMapping.getKubernetesServiceType());
-                serviceLabels.put("portType",
clusterPortMapping.getKubernetesPortType());
-                serviceLabels.put("servicePort",
String.valueOf(clusterPortMapping.getKubernetesServicePort()));
-                serviceLabels.put("port",
String.valueOf(clusterPortMapping.getPort()));
-                serviceLabels.put("proxyPort",
String.valueOf(clusterPortMapping.getProxyPort()));
-
-                kubernetesApi.createService(serviceId, serviceName,
serviceLabels, servicePort, serviceType,
-                        containerPortName, containerPort, sessionAffinity);
+
+                Map<String, String> serviceLabels = new HashMap<>();
+                serviceLabels.put("applicationId",
DigestUtils.md5Hex(clusterContext.getApplicationId()));
+                serviceLabels.put("clusterId",
DigestUtils.md5Hex(clusterContext.getClusterId()));
+
+                Map<String, String> serviceAnnotations = new HashMap<>();
+                serviceAnnotations.put("applicationId",
clusterContext.getApplicationId());
+                serviceAnnotations.put("clusterId",
clusterContext.getClusterId());
+                serviceAnnotations.put("name",
clusterPortMapping.getName());
+                serviceAnnotations.put("protocol",
clusterPortMapping.getProtocol());
+                serviceAnnotations.put("serviceType",
clusterPortMapping.getKubernetesServiceType());
+                serviceAnnotations.put("portType",
clusterPortMapping.getKubernetesPortType());
+                serviceAnnotations.put("servicePort",
String.valueOf(clusterPortMapping.getKubernetesServicePort()));
+                serviceAnnotations.put("port",
String.valueOf(clusterPortMapping.getPort()));
+                serviceAnnotations.put("proxyPort",
String.valueOf(clusterPortMapping.getProxyPort()));
+
+                kubernetesApi.createService(serviceId, serviceName,
serviceLabels, serviceAnnotations, servicePort,
+                        serviceType, containerPortName, containerPort,
sessionAffinity);
                 try {
                     Thread.sleep(1000);
                 }
@@ -995,16 +1004,17 @@ public class KubernetesIaas extends Iaas {
      * Remove kubernetes services if available for application cluster.
      *
      * @param clusterContext
-     *
      */
     public static void removeKubernetesServices(ClusterContext
clusterContext) {

         if (clusterContext != null) {
-            ArrayList<KubernetesService> kubernetesServices =
Lists.newArrayList(clusterContext.getKubernetesServices());
+            ArrayList<KubernetesService> kubernetesServices =
+
Lists.newArrayList(clusterContext.getKubernetesServices());

             for (KubernetesService kubernetesService : kubernetesServices)
{
                 KubernetesClusterContext kubernetesClusterContext =
-
CloudControllerContext.getInstance().getKubernetesClusterContext(kubernetesService.getKubernetesClusterId());
+                        CloudControllerContext.getInstance()
+
.getKubernetesClusterContext(kubernetesService.getKubernetesClusterId());
                 KubernetesApiClient kubernetesApiClient =
kubernetesClusterContext.getKubApi();
                 String serviceId = kubernetesService.getId();
                 log.info(String.format("Deleting kubernetes service:
[application-id] %s " +
@@ -1015,7 +1025,8 @@ public class KubernetesIaas extends Iaas {

 kubernetesClusterContext.deallocatePort(kubernetesService.getPort());

 kubernetesClusterContext.removeKubernetesService(serviceId);
                     clusterContext.removeKubernetesService(serviceId);
-                } catch (KubernetesClientException e) {
+                }
+                catch (KubernetesClientException e) {
                     log.error(String.format("Could not delete kubernetes
service: [application-id] %s " +
                             "[service-id] %s",
clusterContext.getApplicationId(), serviceId));
                 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/fe420598/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 5d0aff1..fe94d39 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
@@ -56,7 +56,8 @@ public class KubernetesApiClient implements
KubernetesAPIClientInterface {
      * @throws KubernetesClientException
      */
     @Override
-    public void createPod(String podId, String podName, Map<String,
String> podLabels, String dockerImage, String cpu,
+    public void createPod(String podId, String podName, Map<String,
String> podLabels, Map<String, String> annotations,
+                          String dockerImage, String cpu,
                           String memory, List<ContainerPort> ports,
List<EnvVar> environmentVariables)
             throws KubernetesClientException {

@@ -75,6 +76,7 @@ public class KubernetesApiClient implements
KubernetesAPIClientInterface {
             pod.setMetadata(new ObjectMeta());
             pod.getMetadata().setName(podId);
             pod.getMetadata().setLabels(podLabels);
+            pod.getMetadata().setAnnotations(annotations);

             // Set container template
             Container containerTemplate = new Container();
@@ -163,8 +165,9 @@ public class KubernetesApiClient implements
KubernetesAPIClientInterface {
      * @throws KubernetesClientException
      */
     @Override
-    public void createService(String serviceId, String serviceName,
Map<String, String> serviceLabels, int servicePort,
-                              String serviceType, String
containerPortName, int containerPort, String sessionAffinity)
+    public void createService(String serviceId, String serviceName,
Map<String, String> serviceLabels, Map<String,
+            String> annotations, int servicePort, String serviceType,
String containerPortName, int containerPort,
+                              String sessionAffinity)
             throws KubernetesClientException {

         try {
@@ -179,12 +182,11 @@ public class KubernetesApiClient implements
KubernetesAPIClientInterface {
             Service service = new Service();
             service.setSpec(new ServiceSpec());
             service.setMetadata(new ObjectMeta());
-
             service.setApiVersion(Service.ApiVersion.V_1);
             service.setKind(KubernetesConstants.KIND_SERVICE);
-
             service.getMetadata().setName(serviceId);
             service.getSpec().setSessionAffinity(sessionAffinity);
+            service.getMetadata().setAnnotations(annotations);

             if (serviceType.equals(KubernetesConstants.NODE_PORT)) {
                 service.getSpec().setType(KubernetesConstants.NODE_PORT);

http://git-wip-us.apache.org/repos/asf/stratos/blob/fe420598/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 95ea1e7..f1d6566 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
@@ -45,8 +45,9 @@ public interface KubernetesAPIClientInterface {
      * @param environmentVariables environment variables
      * @throws KubernetesClientException
      */
-    public void createPod(String podId, String podName, Map<String,
String> podLabels, String dockerImage, String cpu,
-                          String memory, List<ContainerPort> ports,
List<EnvVar> environmentVariables)
+    public void createPod(String podId, String podName, Map<String,
String> podLabels, Map<String, String> annotations,
+                          String dockerImage, String cpu, String memory,
List<ContainerPort> ports,
+                          List<EnvVar> environmentVariables)
             throws KubernetesClientException;

     /**
@@ -87,8 +88,9 @@ public interface KubernetesAPIClientInterface {
      * @param sessionAffinity
      * @throws KubernetesClientException
      */
-    public void createService(String serviceId, String serviceName,
Map<String, String> podLabels, int servicePort,
-                              String serviceType, String
containerPortName, int containerPort, String sessionAffinity)
+    public void createService(String serviceId, String serviceName,
Map<String, String> podLabels, Map<String,
+            String> annotations, int servicePort, String serviceType,
String containerPortName, int containerPort,
+                              String sessionAffinity)
             throws KubernetesClientException;

     /**




-- 
Imesh Gunaratne

Senior Technical Lead, WSO2
Committer & PMC Member, Apache Stratos

Reply via email to