diff --git a/pkg/tiller/release_server.go b/pkg/tiller/release_server.go index 6f691cb39..d28d6796e 100644 --- a/pkg/tiller/release_server.go +++ b/pkg/tiller/release_server.go @@ -363,6 +363,10 @@ func validateManifest(c environment.KubeClient, ns string, manifest []byte) erro } func validateReleaseName(releaseName string) error { + if releaseName == "" { + return errMissingRelease + } + if !ValidName.MatchString(releaseName) || (len(releaseName) > releaseNameMaxLen) { return errInvalidName } diff --git a/pkg/tiller/release_server_test.go b/pkg/tiller/release_server_test.go index f73eb7abf..b7b14a4f1 100644 --- a/pkg/tiller/release_server_test.go +++ b/pkg/tiller/release_server_test.go @@ -183,23 +183,23 @@ func upgradeReleaseVersion(rel *release.Release) *release.Release { } func TestValidName(t *testing.T) { - for name, valid := range map[string]bool{ - "nina pinta santa-maria": false, - "nina-pinta-santa-maria": true, - "-nina": false, - "pinta-": false, - "santa-maria": true, - "niña": false, - "...": false, - "pinta...": false, - "santa...maria": true, - "": false, - " ": false, - ".nina.": false, - "nina.pinta": true, - "abcdefghi-abcdefghi-abcdefghi-abcdefghi-abcdefghi-abcd": false, + for name, valid := range map[string]error{ + "nina pinta santa-maria": errInvalidName, + "nina-pinta-santa-maria": nil, + "-nina": errInvalidName, + "pinta-": errInvalidName, + "santa-maria": nil, + "niña": errInvalidName, + "...": errInvalidName, + "pinta...": errInvalidName, + "santa...maria": nil, + "": errMissingRelease, + " ": errInvalidName, + ".nina.": errInvalidName, + "nina.pinta": nil, + "abcdefghi-abcdefghi-abcdefghi-abcdefghi-abcdefghi-abcd": errInvalidName, } { - if valid != (validateReleaseName(name) == nil) { + if valid != validateReleaseName(name) { t.Errorf("Expected %q to be %t", name, valid) } }