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.

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?

Thanks.





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

Reply via email to