I have now refined this logic to trim all labels to 62 characters and added following as labels:
Pod: Application-ID, Cluster-Instance-ID, Member-ID Service: Application-ID, Cluster-ID, Port-Name Now I'm seeing a different problem. When an application is un-deployed, services do not get deleted. We need to fix this. Thanks On Mon, Sep 21, 2015 at 12:12 AM, Gayan Gunarathne <gay...@wso2.com> wrote: > Hi Akila, > > On Sun, Sep 20, 2015 at 11:30 PM, Akila Ravihansa Perera < > raviha...@wso2.com> wrote: > >> Hi Gayan, >> >> +1 for properly identifying attributes to be used for labels and >> annotations. As I mentioned earlier I tried to use them as labels but ran >> into length limitation issues. >> >> memberId and clusterId cannot be used directly since they are generated >> as follows; >> >> memberId = clusterId + UUID >> clusterId = applicationId + "." + alias + "." + cartridgeType + ".domain" >> >> As you can see those can go be beyond 63 characters since we don't have a >> limitation for applicationId length. I'm -1 on imposing a character >> limitation to applicationId only to get away with Kubernetes restriction. >> What if some other provider comes out with a different limitation? It >> should be restricted but only for good reasons concerning to Stratos. >> > > Right. Let's say we are not going to restrict the application id length. > So in that case we won't be able to use the application id as a pod label. > IMO we used application id to identify the application. As it is a > identifier I think it is OK to have a restriction.I think using a > description for the application id is not practical.Also in most of the use > cases identifiers comes up with some length restrictions.If we don't have a > restriction on application id , users can enter description sort of a > application id. > > >> >> I had an offline chat with Imesh and we were discussing about >> implementing a sequence number based approach for generating clusterId and >> memberId without using UUIDs. Any thoughts? >> > > I am also +1 for this thinking. So how we are going to generate the > cluster id? I think we need to generate the meaningful ids. > > >> >> Thanks. >> >> >> >> Thanks, > Gayan > >> >> >> On Sun, Sep 20, 2015 at 10:55 PM, Gayan Gunarathne <gay...@wso2.com> >> wrote: >> >>> As per Kubernetes definition I think we are using labels and annotation >>> in a wrong way.As annotations are arbitrary non-identifying metadata , they >>> might not shown them in their UI/CLI >>> >>> I think first we need to recognize what are the identifiers for the >>> pod.In think we may need to use member id , application id >>> >>> Also what is the ration behind of using the md5Hex of the member id as a >>> identifier. IMO we can directly use the member id. As member id is UUID it >>> won't be more than 63 characters. >>> >>> Thanks, >>> Gayan >>> >>> On Sun, Sep 20, 2015 at 10:13 PM, Imesh Gunaratne <im...@apache.org> >>> wrote: >>> >>>> Hi Akila, >>>> >>>> Right, I get your point on the length limitation, but this is how >>>> Kubernetes has described Labels and Annotations: >>>> >>>> *We'll eventually index and reverse-index labels for efficient queries >>>> and watches, use them to sort and group in UIs and CLIs, etc. We don't want >>>> to pollute labels with non-identifying, especially large and/or structured, >>>> data. Non-identifying information should be recorded using annotations.* >>>> >>>> The idea is to use labels for all identifiers. >>>> >>>> http://kubernetes.io/v1.0/docs/user-guide/labels.html >>>> >>>> On Sun, Sep 20, 2015 at 10:05 PM, Akila Ravihansa Perera < >>>> raviha...@wso2.com> wrote: >>>> >>>>> Hi Imesh, >>>>> >>>>> Yes, I tried adding them as labels but ran into a problem since label >>>>> length cannot be greater than 63 characters. I'm not sure why we don't see >>>>> annotations in the UI for pods created. But I can see the annotations >>>>> added >>>>> for services. Might have to raise this in K8s mailing list. >>>>> >>>>> Thanks. >>>>> >>>>> On Sun, Sep 20, 2015 at 10:00 PM, Imesh Gunaratne <im...@apache.org> >>>>> wrote: >>>>> >>>>>> Hi Akila, >>>>>> >>>>>> We do not query pod labels, its handled by the Kubernetes service >>>>>> selector, at the moment this is called "name". I have now fixed this >>>>>> issue >>>>>> locally, will push in few minutes. >>>>>> >>>>>> In addition I think it would be better to use labels instead of >>>>>> annotations because they are not visible in the UI: >>>>>> >>>>>> >>>>>> >>>>>> Thanks >>>>>> >>>>>> On Sun, Sep 20, 2015 at 9:52 PM, Akila Ravihansa Perera < >>>>>> raviha...@wso2.com> wrote: >>>>>> >>>>>>> Hi Imesh, >>>>>>> >>>>>>> Where do we query those pod labels? >>>>>>> >>>>>>> I'm in the process of moving label names to constants. I can apply >>>>>>> the same in all the places. I think better to change that label to >>>>>>> md5Hex-memberId to avoid any confusion when troubleshooting issues. One >>>>>>> might mistakenly take that as the actual memberId when it is not the >>>>>>> case. >>>>>>> >>>>>>> Thanks. >>>>>>> >>>>>>> On Sun, Sep 20, 2015 at 9:40 PM, Imesh Gunaratne <im...@apache.org> >>>>>>> wrote: >>>>>>> >>>>>>>> I'm seeing a problem, we have removed the "name" label in the pod >>>>>>>> and added a new label called "md5Hex-memberId". Due to this load >>>>>>>> balancing >>>>>>>> would not work: >>>>>>>> >>>>>>>> Map<String, String> podLabels = new HashMap<>(); >>>>>>>> podLabels.put("md5Hex-memberId", >>>>>>>> DigestUtils.md5Hex(memberContext.getMemberId())); >>>>>>>> >>>>>>>> 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); >>>>>>>> >>>>>>>> >>>>>>>> On Sun, Sep 20, 2015 at 2:51 PM, Akila Ravihansa Perera < >>>>>>>> raviha...@wso2.com> wrote: >>>>>>>> >>>>>>>>> Hi all, >>>>>>>>> >>>>>>>>> I've pushed release artifacts to staging repo at [1]. Please take >>>>>>>>> few mins to verify the release. Also I've pushed cartridge-base, php >>>>>>>>> and >>>>>>>>> tomcat Docker images with 4.1.3 artifacts to DockerHub. >>>>>>>>> >>>>>>>>> [1] >>>>>>>>> https://repository.apache.org/content/repositories/orgapachestratos-1057/ >>>>>>>>> >>>>>>>>> Thanks. >>>>>>>>> >>>>>>>>> -- >>>>>>>>> Akila Ravihansa Perera >>>>>>>>> WSO2 Inc.; http://wso2.com/ >>>>>>>>> >>>>>>>>> Blog: http://ravihansa3000.blogspot.com >>>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> -- >>>>>>>> Imesh Gunaratne >>>>>>>> >>>>>>>> Senior Technical Lead, WSO2 >>>>>>>> Committer & PMC Member, Apache Stratos >>>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> Akila Ravihansa Perera >>>>>>> WSO2 Inc.; http://wso2.com/ >>>>>>> >>>>>>> Blog: http://ravihansa3000.blogspot.com >>>>>>> >>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> Imesh Gunaratne >>>>>> >>>>>> Senior Technical Lead, WSO2 >>>>>> Committer & PMC Member, Apache Stratos >>>>>> >>>>> >>>>> >>>>> >>>>> -- >>>>> Akila Ravihansa Perera >>>>> WSO2 Inc.; http://wso2.com/ >>>>> >>>>> Blog: http://ravihansa3000.blogspot.com >>>>> >>>> >>>> >>>> >>>> -- >>>> Imesh Gunaratne >>>> >>>> Senior Technical Lead, WSO2 >>>> Committer & PMC Member, Apache Stratos >>>> >>> >>> >>> >>> -- >>> >>> Gayan Gunarathne >>> Technical Lead, WSO2 Inc. (http://wso2.com) >>> Committer & PMC Member, Apache Stratos >>> email : gay...@wso2.com | mobile : +94 775030545 <%2B94%20766819985> >>> >>> >>> >> >> >> >> -- >> Akila Ravihansa Perera >> WSO2 Inc.; http://wso2.com/ >> >> Blog: http://ravihansa3000.blogspot.com >> > > > > -- > > Gayan Gunarathne > Technical Lead, WSO2 Inc. (http://wso2.com) > Committer & PMC Member, Apache Stratos > email : gay...@wso2.com | mobile : +94 775030545 <%2B94%20766819985> > > > -- Imesh Gunaratne Senior Technical Lead, WSO2 Committer & PMC Member, Apache Stratos