cdbartholomew opened a new pull request #10531:
URL: https://github.com/apache/pulsar/pull/10531


   ### Motivation
   
   When using the Kubernetes runtime, there is a check that the function name 
to ensure that it will create valid Kubernetes objects. It is currently set to 
check for the length to be less than 55. If a function is submitted with this 
length, a StatefulSet is created that is unable to spawn pods. This is the 
error you will get:
   
   ``` 
   Warning  FailedCreate  1s (x13 over 22s)  statefulset-controller  create Pod 
pf-1234-1234-123456789012345678901234567890123456789012-0 in StatefulSet 
pf-1234-1234-123456789012345678901234567890123456789012 failed error: Pod 
"pf-1234-1234-123456789012345678901234567890123456789012-0" is invalid: 
metadata.labels: Invalid value: 
"pf-1234-1234-123456789012345678901234567890123456789012-7476d599d9": must be 
no more than 63 characters
   
   ```
   This is because one of the generated labels for the pod name will exceed the 
label length of 63 characters. I have reproduced in Kubernetes 1.16 and 1.18.
   
   Reducing the function name by 2 characters avoids the problem.
   
   Since the check is intended to prevent the user from making input changes 
that will not work in k8s, fixing this will make using functions in k8s less 
error-prone.
   
   ### Modifications
   
   Changed the maximum function name size from 55 to 53 characters. When using 
k8s runtime, function names exceeding 52 characters will be rejected.
   
   ### Verifying this change
   
   This change is already covered by existing tests, such as 
verifyCreateJobNameWithNameOverMaxCharLimit.
   
   ### Does this pull request potentially affect one of the following parts:
   
   No
   
   ### Documentation
   
     - Does this pull request introduce a new feature? (no)
   
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


Reply via email to