mirror of
https://github.com/grafana/grafana.git
synced 2025-01-26 08:16:59 -06:00
26 lines
641 B
Go
26 lines
641 B
Go
package resource
|
|
|
|
import (
|
|
"fmt"
|
|
"regexp"
|
|
)
|
|
|
|
var validNameCharPattern = `a-zA-Z0-9\-\_\.`
|
|
var validNamePattern = regexp.MustCompile(`^[` + validNameCharPattern + `]*$`).MatchString
|
|
|
|
func validateName(name string) error {
|
|
if len(name) < 2 {
|
|
return fmt.Errorf("name is too short")
|
|
}
|
|
if len(name) > 64 {
|
|
return fmt.Errorf("name is too long")
|
|
}
|
|
if !validNamePattern(name) {
|
|
return fmt.Errorf("name includes invalid characters")
|
|
}
|
|
// In standard k8s, it must not start with a number
|
|
// however that would force us to update many many many existing resources
|
|
// so we will be slightly more lenient than standard k8s
|
|
return nil
|
|
}
|