-
Notifications
You must be signed in to change notification settings - Fork 220
Make the names lowercase as they are required by k8s #627
base: master
Are you sure you want to change the base?
Conversation
Fixes helm#626 Signed-off-by: Matt Farina <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
💯
For reference, the full error that caused me to do this is...
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
lgtm!
Four things came up on this I needed to come back around to. 1) Should we allow uppercase in names? For this I wanted to look at what others are doing. Here are some examples:
One of the big problems is that many of these are flat systems without namespaces. Docker Hub and Composer are examples that namespace. One requires lowercase and the other treats upper and lowercase as the same. Overall, there seems to be a tendency to do lowercase in practice. Without having to hit the shift key it's less typing, too. The names are used for display purposes which nudges me to want to allow uppercase letters. If we use both we'll need to look at how this affects sorting in lists. ASCII sorting puts all uppercase letters before lowercase letters. See http://www.asciitable.com/. 2) How do we handle the same name as uppercase and lowercase? Do we need to do that? If we can have the name samsung and Samsung (one with uppercase and one with lowercase) we need a clear way to handle these. The conversion to automatically lower would create a collision. I would suggest we follow the pattern used by Composer:
In the hub manifest we should update the list to be in alpha order which will help with visually checking until we can put automation in place. Should monocular itself provide an error? 3) What about other characters in names? Names will often have other letters in them. For example "Samsung SDS". We currently use the name directory in the name of the Kubernetes objects which puts limitations in place. See https://kubernetes.io/docs/concepts/overview/working-with-objects/names/. Should we document those limitations? If we allow uppercase letters for display purposes does it make sense to transform some common things in names, such as spaces? We would need more collision detection in that case. 4) What about i18n names? Helm is huge in China. Places that use non-alpha characters do a lot of Kubernetes. How do we handle that? While I don't think we need to deal with this now, I wanted to plant the thought while talking about naming. |
It sounds like we can avoid some issues by only allowing names to be lowercase. That said, we do have a lot more control, currently, over collisions due to the acceptance process for a new repository. Most of the other services you mentioned don't have an acceptance process to publish content.
Good question, I don't know what the best answer is right now. We would need a solution for this site-wide too, and will likely need to use an i18n framework. I'm also not sure how we can deal with translating chart content (e.g. chart names, READMEs, etc.) |
Fixes #626