/ Framework / KubernetesWorkflow / K8sNameUtils.cs
K8sNameUtils.cs
 1  namespace KubernetesWorkflow
 2  {
 3      public static class K8sNameUtils
 4      {
 5          public static string Format(string s)
 6          {
 7              return Format(s, 62);
 8          }
 9  
10          public static string FormatPortName(string s)
11          {
12              return Format(s, 15);
13          }
14  
15          private static string Format(string s, int maxLength)
16          {
17              var result = s.ToLowerInvariant()
18                  .Replace("_", "-")
19                  .Replace(" ", "-")
20                  .Replace(":", "-")
21                  .Replace("/", "-")
22                  .Replace("\\", "-")
23                  .Replace("[", "-")
24                  .Replace("]", "-")
25                  .Replace(",", "-")
26                  .Replace("(", "-")
27                  .Replace(")", "-");
28  
29              if (result.Length > maxLength) result = result.Substring(0, maxLength);
30              result = result.Trim('-');
31  
32              return result;
33          }
34      }
35  }