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  }