[ 
https://issues.apache.org/jira/browse/STRATOS-1499?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14696544#comment-14696544
 ] 

Imesh Gunaratne edited comment on STRATOS-1499 at 8/14/15 6:16 AM:
-------------------------------------------------------------------

Hi Lasindu,

A good finding! Here the problem is that we are using the cluster id as the 
label of the service to map the pods and its reaching its character limit. 

We have solved this issue for Kubernetes Service Names and Pod Ids by using 
short identifiers; "service-x", "pod-x". May be a similar identifier can be 
generated here to correspond to each cluster id: "cluster-x".

Thanks 


was (Author: imesh):
Hi Lasindu,

A good finding! Here the problem is that we are using the cluster id as the 
label of the service to map the pods and its reaching its character limit. 

We have solved this issue for Kubernetes Service Names and Pod Ids by using a 
short identifiers; "service-x", "pod-x". May be a similar identifier can be 
generated here to correspond to each cluster id: "cluster-x".

Thanks 

> Kubernetes service name cannot have more than 63 characters
> -----------------------------------------------------------
>
>                 Key: STRATOS-1499
>                 URL: https://issues.apache.org/jira/browse/STRATOS-1499
>             Project: Stratos
>          Issue Type: Bug
>    Affects Versions: 4.1.1
>            Reporter: Lasindu Charith
>             Fix For: FUTURE
>
>
> When I try to deploy an application, I'm getting following exception.
> Sees like it's coming from fabric8. When I used a shorter application name 
> application was successfully deployed
> =====================================================================
> [2015-08-13 19:55:28,808]  INFO 
> {org.apache.stratos.cloud.controller.messaging.publisher.TopologyEventPublisher}
>  -  Publishing member created event: [service-name] wso2esb-481-manager 
> [cluster-id] 
> wso2esb-481-application.my-wso2esb-481-manager.wso2esb-481-manager.domain 
> [cluster-instance-id] wso2esb-481-application-2 [member-id] 
> wso2esb-481-application.my-wso2esb-481-manager.wso2esb-481-manager.domain80aac733-026a-4f36-a238-a01cead23053
>  [instance-id] wso2esb-481-application-2 [network-partition-id] 
> network-partition-1 [partition-id] partition-1 [lb-cluster-id] null
> [2015-08-13 19:55:28,810]  INFO 
> {org.apache.stratos.messaging.message.processor.topology.MemberCreatedMessageProcessor}
>  -  Member created: [service-name] wso2esb-481-manager [cluster-id] 
> wso2esb-481-application.my-wso2esb-481-manager.wso2esb-481-manager.domain 
> [member-id] 
> wso2esb-481-application.my-wso2esb-481-manager.wso2esb-481-manager.domain80aac733-026a-4f36-a238-a01cead23053
>  [cluster-instance-id] wso2esb-481-application-2
> [2015-08-13 19:55:28,821] ERROR 
> {org.apache.stratos.kubernetes.client.KubernetesApiClient} -  Could not 
> create kubernetes service: [service-id] service-211 [service-name] 
> wso2esb-481-application-my-wso2esb-481-manager-wso2esb-481-manager-domain 
> [node-port] 30677 [container-port-name] https-9763 [container-port] 9763
> javax.ws.rs.WebApplicationException: HTTP 422 Service "service-211" is 
> invalid: [metadata.labels: invalid value 
> 'wso2esb-481-application-my-wso2esb-481-manager-wso2esb-481-manager-domain': 
> must have at most 63 characters, matching regex 
> (([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])?: e.g. "MyValue" or "", 
> spec.selector: invalid value 
> 'wso2esb-481-application-my-wso2esb-481-manager-wso2esb-481-manager-domain': 
> must have at most 63 characters, matching regex 
> (([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])?: e.g. "MyValue" or ""]
>       at 
> io.fabric8.kubernetes.api.ExceptionResponseMapper.fromResponse(ExceptionResponseMapper.java:40)
>       at 
> io.fabric8.kubernetes.api.ExceptionResponseMapper.fromResponse(ExceptionResponseMapper.java:31)
>       at 
> org.apache.cxf.jaxrs.client.ClientProxyImpl.checkResponse(ClientProxyImpl.java:302)
>       at 
> org.apache.cxf.jaxrs.client.ClientProxyImpl.handleResponse(ClientProxyImpl.java:725)
>       at 
> org.apache.cxf.jaxrs.client.ClientProxyImpl.doChainedInvocation(ClientProxyImpl.java:683)
>       at 
> org.apache.cxf.jaxrs.client.ClientProxyImpl.invoke(ClientProxyImpl.java:224)
>       at com.sun.proxy.$Proxy84.createService(Unknown Source)
>       at 
> io.fabric8.kubernetes.api.KubernetesClient.createService(KubernetesClient.java:440)
>       at 
> io.fabric8.kubernetes.api.KubernetesClient.createService(KubernetesClient.java:430)
>       at 
> org.apache.stratos.kubernetes.client.KubernetesApiClient.createService(KubernetesApiClient.java:217)
>       at 
> org.apache.stratos.cloud.controller.iaases.kubernetes.KubernetesIaas.createKubernetesServices(KubernetesIaas.java:530)
>       at 
> org.apache.stratos.cloud.controller.iaases.kubernetes.KubernetesIaas.startContainer(KubernetesIaas.java:223)
>       at 
> org.apache.stratos.cloud.controller.iaases.kubernetes.KubernetesIaas.startInstance(KubernetesIaas.java:127)
>       at 
> org.apache.stratos.cloud.controller.services.impl.InstanceCreator.startInstance(InstanceCreator.java:109)
>       at 
> org.apache.stratos.cloud.controller.services.impl.InstanceCreator.run(InstanceCreator.java:68)
>       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:744)
> [2015-08-13 19:55:28,826] ERROR 
> {org.apache.stratos.cloud.controller.iaases.kubernetes.KubernetesIaas} -  
> Could not start container: [application] wso2esb-481-application [cartridge] 
> wso2esb-481-manager [member] 
> wso2esb-481-application.my-wso2esb-481-manager.wso2esb-481-manager.domain68dc5df8-8f1d-41a8-9623-d426e42cc903
> org.apache.stratos.kubernetes.client.exceptions.KubernetesClientException: 
> Could not create kubernetes service: [service-id] service-211 [service-name] 
> wso2esb-481-application-my-wso2esb-481-manager-wso2esb-481-manager-domain 
> [node-port] 30677 [container-port-name] https-9763 [container-port] 9763
>       at 
> org.apache.stratos.kubernetes.client.KubernetesApiClient.createService(KubernetesApiClient.java:229)
>       at 
> org.apache.stratos.cloud.controller.iaases.kubernetes.KubernetesIaas.createKubernetesServices(KubernetesIaas.java:530)
>       at 
> org.apache.stratos.cloud.controller.iaases.kubernetes.KubernetesIaas.startContainer(KubernetesIaas.java:223)
>       at 
> org.apache.stratos.cloud.controller.iaases.kubernetes.KubernetesIaas.startInstance(KubernetesIaas.java:127)
>       at 
> org.apache.stratos.cloud.controller.services.impl.InstanceCreator.startInstance(InstanceCreator.java:109)
>       at 
> org.apache.stratos.cloud.controller.services.impl.InstanceCreator.run(InstanceCreator.java:68)
>       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:744)
> Caused by: javax.ws.rs.WebApplicationException: HTTP 422 Service 
> "service-211" is invalid: [metadata.labels: invalid value 
> 'wso2esb-481-application-my-wso2esb-481-manager-wso2esb-481-manager-domain': 
> must have at most 63 characters, matching regex 
> (([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])?: e.g. "MyValue" or "", 
> spec.selector: invalid value 
> 'wso2esb-481-application-my-wso2esb-481-manager-wso2esb-481-manager-domain': 
> must have at most 63 characters, matching regex 
> (([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])?: e.g. "MyValue" or ""]
>       at 
> io.fabric8.kubernetes.api.ExceptionResponseMapper.fromResponse(ExceptionResponseMapper.java:40)
>       at 
> io.fabric8.kubernetes.api.ExceptionResponseMapper.fromResponse(ExceptionResponseMapper.java:31)
>       at 
> org.apache.cxf.jaxrs.client.ClientProxyImpl.checkResponse(ClientProxyImpl.java:302)
>       at 
> org.apache.cxf.jaxrs.client.ClientProxyImpl.handleResponse(ClientProxyImpl.java:725)
>       at 
> org.apache.cxf.jaxrs.client.ClientProxyImpl.doChainedInvocation(ClientProxyImpl.java:683)
>       at 
> org.apache.cxf.jaxrs.client.ClientProxyImpl.invoke(ClientProxyImpl.java:224)
>       at com.sun.proxy.$Proxy84.createService(Unknown Source)
>       at 
> io.fabric8.kubernetes.api.KubernetesClient.createService(KubernetesClient.java:440)
>       at 
> io.fabric8.kubernetes.api.KubernetesClient.createService(KubernetesClient.java:430)
>       at 
> org.apache.stratos.kubernetes.client.KubernetesApiClient.createService(KubernetesApiClient.java:217)
>       ... 8 more
> [2015-08-13 19:55:28,827] ERROR 
> {org.apache.stratos.cloud.controller.services.impl.InstanceCreator} -  Could 
> not start instance: [cartridge-type] wso2esb-481-manager [cluster-id] 
> wso2esb-481-application.my-wso2esb-481-manager.wso2esb-481-manager.domain
> java.lang.RuntimeException: Could not start container: [application] 
> wso2esb-481-application [cartridge] wso2esb-481-manager [member] 
> wso2esb-481-application.my-wso2esb-481-manager.wso2esb-481-manager.domain68dc5df8-8f1d-41a8-9623-d426e42cc903
>       at 
> org.apache.stratos.cloud.controller.iaases.kubernetes.KubernetesIaas.startContainer(KubernetesIaas.java:245)
>       at 
> org.apache.stratos.cloud.controller.iaases.kubernetes.KubernetesIaas.startInstance(KubernetesIaas.java:127)
>       at 
> org.apache.stratos.cloud.controller.services.impl.InstanceCreator.startInstance(InstanceCreator.java:109)
>       at 
> org.apache.stratos.cloud.controller.services.impl.InstanceCreator.run(InstanceCreator.java:68)
>       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:744)
> Caused by: 
> org.apache.stratos.kubernetes.client.exceptions.KubernetesClientException: 
> Could not create kubernetes service: [service-id] service-211 [service-name] 
> wso2esb-481-application-my-wso2esb-481-manager-wso2esb-481-manager-domain 
> [node-port] 30677 [container-port-name] https-9763 [container-port] 9763
>       at 
> org.apache.stratos.kubernetes.client.KubernetesApiClient.createService(KubernetesApiClient.java:229)
>       at 
> org.apache.stratos.cloud.controller.iaases.kubernetes.KubernetesIaas.createKubernetesServices(KubernetesIaas.java:530)
>       at 
> org.apache.stratos.cloud.controller.iaases.kubernetes.KubernetesIaas.startContainer(KubernetesIaas.java:223)
>       ... 6 more
> Caused by: javax.ws.rs.WebApplicationException: HTTP 422 Service 
> "service-211" is invalid: [metadata.labels: invalid value 
> 'wso2esb-481-application-my-wso2esb-481-manager-wso2esb-481-manager-domain': 
> must have at most 63 characters, matching regex 
> (([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])?: e.g. "MyValue" or "", 
> spec.selector: invalid value 
> 'wso2esb-481-application-my-wso2esb-481-manager-wso2esb-481-manager-domain': 
> must have at most 63 characters, matching regex 
> (([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])?: e.g. "MyValue" or ""]
>       at 
> io.fabric8.kubernetes.api.ExceptionResponseMapper.fromResponse(ExceptionResponseMapper.java:40)
>       at 
> io.fabric8.kubernetes.api.ExceptionResponseMapper.fromResponse(ExceptionResponseMapper.java:31)
>       at 
> org.apache.cxf.jaxrs.client.ClientProxyImpl.checkResponse(ClientProxyImpl.java:302)
>       at 
> org.apache.cxf.jaxrs.client.ClientProxyImpl.handleResponse(ClientProxyImpl.java:725)
>       at 
> org.apache.cxf.jaxrs.client.ClientProxyImpl.doChainedInvocation(ClientProxyImpl.java:683)
>       at 
> org.apache.cxf.jaxrs.client.ClientProxyImpl.invoke(ClientProxyImpl.java:224)
>       at com.sun.proxy.$Proxy84.createService(Unknown Source)
>       at 
> io.fabric8.kubernetes.api.KubernetesClient.createService(KubernetesClient.java:440)
>       at 
> io.fabric8.kubernetes.api.KubernetesClient.createService(KubernetesClient.java:430)
>       at 
> org.apache.stratos.kubernetes.client.KubernetesApiClient.createService(KubernetesApiClient.java:217)
>       ... 8 more



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to