stratos-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Akila Ravihansa Perera <raviha...@wso2.com>
Subject Re: Releasing Stratos 4.1.3
Date Mon, 21 Sep 2015 18:24:56 GMT
Hi,

I've pushed artifacts to staging repo at [1] with latest fixes. Please take
few mins to verify the release.

[1] https://repository.apache.org/content/repositories/orgapachestratos-1058

Thanks.

On Mon, Sep 21, 2015 at 11:36 AM, Gayan Gunarathne <gayang@wso2.com> wrote:

> Based on the offline chat with Imesh,Akila, Reka , we decided to maintain
> the  map of KubernetesService in a ClusterContext against the cluster
> instance id.
>
> Then we can pick the Kubernetes services based on the cluster instance id.
>
> Thanks,
> Gayan
>
> On Mon, Sep 21, 2015 at 10:42 AM, Gayan Gunarathne <gayang@wso2.com>
> wrote:
>
>> We are maintaining the accessURL in the cluster. In the multi-region
>> deployment it is same cluster.IMO we need to maintain the accessURL in
>> Kubernetes Service.
>>
>> Thanks,
>> Gayan
>>
>> On Mon, Sep 21, 2015 at 1:07 AM, Imesh Gunaratne <imesh@apache.org>
>> wrote:
>>
>>> I found another problem when running on multiple network partitions;
>>> access URLs shown in the topology view are the same for both application
>>> instances:
>>>
>>>
>>>
>>> ​
>>> ​
>>>
>>>
>>>
>>> On Mon, Sep 21, 2015 at 1:04 AM, Imesh Gunaratne <imesh@apache.org>
>>> wrote:
>>>
>>>> Labels are now shown as below:
>>>>
>>>>
>>>> ​
>>>>
>>>> ​
>>>>
>>>> On Mon, Sep 21, 2015 at 12:57 AM, Gayan Gunarathne <gayang@wso2.com>
>>>> wrote:
>>>>
>>>>> Seems there is a  commit missing when merging the changes.
>>>>>
>>>>> Setting the setKubernetesClusterId when creating the Kubenetes service
>>>>>
>>>>> Now I will add that commit.
>>>>>
>>>>> Thanks,
>>>>> Gayan
>>>>>
>>>>> On Mon, Sep 21, 2015 at 12:35 AM, Akila Ravihansa Perera <
>>>>> ravihansa@wso2.com> wrote:
>>>>>
>>>>>> Great!
>>>>>>
>>>>>> I think I found the problem with K8s services not getting cleaned
up.
>>>>>> I see a NPE at removeKubernetesServices(KubernetesIaas.java:1025)
when
>>>>>> undeploying an application.
>>>>>>
>>>>>> [2015-09-21 00:31:16,750] ERROR
>>>>>> {org.apache.stratos.messaging.message.receiver.cluster.status.ClusterStatusEventMessageDelegator}
>>>>>> -  Failed to retrieve cluster status event message
>>>>>> java.lang.NullPointerException
>>>>>> at
>>>>>> org.apache.stratos.cloud.controller.iaases.kubernetes.KubernetesIaas.removeKubernetesServices(KubernetesIaas.java:1025)
>>>>>> at
>>>>>> org.apache.stratos.cloud.controller.messaging.topology.TopologyBuilder.handleClusterTerminatingEvent(TopologyBuilder.java:1068)
>>>>>> at
>>>>>> org.apache.stratos.cloud.controller.messaging.receiver.cluster.status.ClusterStatusTopicReceiver$5.onEvent(ClusterStatusTopicReceiver.java:86)
>>>>>> at
>>>>>> org.apache.stratos.messaging.listener.EventListener.update(EventListener.java:42)
>>>>>> at java.util.Observable.notifyObservers(Observable.java:159)
>>>>>> at
>>>>>> org.apache.stratos.messaging.event.EventObservable.notifyEventListeners(EventObservable.java:51)
>>>>>> at
>>>>>> org.apache.stratos.messaging.message.processor.cluster.status.ClusterStatusClusterTerminatingMessageProcessor.process(ClusterStatusClusterTerminatingMessageProcessor.java:48)
>>>>>> at
>>>>>> org.apache.stratos.messaging.message.processor.cluster.status.ClusterStatusClusterTerminatedMessageProcessor.process(ClusterStatusClusterTerminatedMessageProcessor.java:55)
>>>>>> at
>>>>>> org.apache.stratos.messaging.message.processor.cluster.status.ClusterStatusClusterInactivateMessageProcessor.process(ClusterStatusClusterInactivateMessageProcessor.java:52)
>>>>>> at
>>>>>> org.apache.stratos.messaging.message.processor.cluster.status.ClusterStatusClusterActivatedMessageProcessor.process(ClusterStatusClusterActivatedMessageProcessor.java:52)
>>>>>> at
>>>>>> org.apache.stratos.messaging.message.processor.cluster.status.ClusterStatusClusterResetMessageProcessor.process(ClusterStatusClusterResetMessageProcessor.java:52)
>>>>>> at
>>>>>> org.apache.stratos.messaging.message.processor.MessageProcessorChain.process(MessageProcessorChain.java:61)
>>>>>> at
>>>>>> org.apache.stratos.messaging.message.receiver.cluster.status.ClusterStatusEventMessageDelegator.run(ClusterStatusEventMessageDelegator.java:71)
>>>>>> at
>>>>>> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
>>>>>> at
>>>>>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
>>>>>> at java.lang.Thread.run(Thread.java:745)
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> On Mon, Sep 21, 2015 at 12:30 AM, Imesh Gunaratne <imesh@apache.org>
>>>>>> wrote:
>>>>>>
>>>>>>> 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 <gayang@wso2.com>
>>>>>>> wrote:
>>>>>>>
>>>>>>>> Hi Akila,
>>>>>>>>
>>>>>>>> On Sun, Sep 20, 2015 at 11:30 PM, Akila Ravihansa Perera
<
>>>>>>>> ravihansa@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 <
>>>>>>>>> gayang@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
<
>>>>>>>>>> imesh@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 <
>>>>>>>>>>> ravihansa@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
<
>>>>>>>>>>>> imesh@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 <
>>>>>>>>>>>>> ravihansa@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 <
>>>>>>>>>>>>>> imesh@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 <
>>>>>>>>>>>>>>> ravihansa@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 : gayang@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 : gayang@wso2.com  | mobile : +94 775030545
>>>>>>>> <%2B94%20766819985>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> Imesh Gunaratne
>>>>>>>
>>>>>>> Senior Technical Lead, WSO2
>>>>>>> Committer & PMC Member, Apache Stratos
>>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> 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 : gayang@wso2.com  | mobile : +94 775030545 <%2B94%20766819985>
>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Imesh Gunaratne
>>>>
>>>> Senior Technical Lead, WSO2
>>>> Committer & PMC Member, Apache Stratos
>>>>
>>>
>>>
>>>
>>> --
>>> 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 : gayang@wso2.com  | mobile : +94 775030545 <%2B94%20766819985>
>>
>>
>>
>
>
>
> --
>
> Gayan Gunarathne
> Technical Lead, WSO2 Inc. (http://wso2.com)
> Committer & PMC Member, Apache Stratos
> email : gayang@wso2.com  | mobile : +94 775030545 <%2B94%20766819985>
>
>
>



-- 
Akila Ravihansa Perera
WSO2 Inc.;  http://wso2.com/

Blog: http://ravihansa3000.blogspot.com

Mime
View raw message