Telepresenceで長めの名前のDeploymentを作ろうとしたときに失敗することがあるので、最大文字数がどのくらいか試してみた。

結論から書くと、最大は57文字のようだ。

ランダム文字列で作成すると、以下のようなpodができる。

isepupaiquixuab6saephai7nahxaixeeduebu8aith8iengohdei9aig-vzkwd

k8sではよくRFC 1123で定義される以下のようなDNSラベル標準に従う命名ルールが適応されているらしい。

  • 63文字以内
  • 英小文字、数字または「-」のみを含む
  • 英数字で始まる
  • 英数字で終わる

ハイフン以降に5文字のpodを区別するためのランダム文字列が自動でつくが、これの最小が5文字だとすると、合計63文字になるのでそのへんが理由かなと思ったがどうなんだろう。

63文字はkubernetes/pkg/util/validation.go#L40-L46でチェックしてるようだ。