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

Reply via email to