github.com/kyma-project/kyma-environment-broker@v0.0.1/common/gardener/shoot_name.go (about) 1 package gardener 2 3 import ( 4 "fmt" 5 "strings" 6 "unicode" 7 8 "github.com/google/uuid" 9 ) 10 11 // CreateShootName generates random shoot name in pattern "[a-z0-0]{7}" or "c-[a-z0-0]{7}" 12 func CreateShootName() string { 13 id := uuid.New() 14 15 name := strings.ReplaceAll(id.String(), "-", "") 16 name = fmt.Sprintf("%.7s", name) 17 name = startWithLetter(name) 18 name = strings.ToLower(name) 19 return name 20 } 21 22 // startWithLetter returns given string but starting with letter 23 func startWithLetter(str string) string { 24 if len(str) == 0 { 25 return "c" 26 } else if !unicode.IsLetter(rune(str[0])) { 27 return fmt.Sprintf("c-%.9s", str) 28 } 29 return str 30 }