Skip to content

Commit

Permalink
Merge pull request #11585 from dmpe/mytests
Browse files Browse the repository at this point in the history
minikube start --image-repository will now accept URLs with port
  • Loading branch information
spowelljr committed Jul 12, 2021
2 parents d491eb8 + 0c721cb commit 3a18901
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 20 deletions.
30 changes: 20 additions & 10 deletions cmd/minikube/cmd/start.go
Original file line number Diff line number Diff line change
Expand Up @@ -1274,26 +1274,36 @@ func validateRegistryMirror() {

// This function validates if the --image-repository
// args match the format of registry.cn-hangzhou.aliyuncs.com/google_containers
func validateImageRepository(imagRepo string) (vaildImageRepo string) {
// also "<hostname>[:<port>]"
func validateImageRepository(imageRepo string) (validImageRepo string) {

if strings.ToLower(imagRepo) == "auto" {
vaildImageRepo = "auto"
if strings.ToLower(imageRepo) == "auto" {
validImageRepo = "auto"
}
URL, err := url.Parse(imagRepo)
URL, err := url.Parse(imageRepo)

if err != nil {
klog.Errorln("Error Parsing URL: ", err)
}
// tips when imagRepo ended with a trailing /.
if strings.HasSuffix(imagRepo, "/") {

var imageRepoPort string

if URL.Port() != "" && strings.Contains(imageRepo, ":"+URL.Port()) {
imageRepoPort = ":" + URL.Port()
}

// tips when imageRepo ended with a trailing /.
if strings.HasSuffix(imageRepo, "/") {
out.Infof("The --image-repository flag your provided ended with a trailing / that could cause conflict in kuberentes, removed automatically")
}
// tips when imageRepo started with scheme.
// tips when imageRepo started with scheme such as http(s).
if URL.Scheme != "" {
out.Infof("The --image-repository flag your provided contains Scheme: {{.scheme}}, it will be as a domian, removed automatically", out.V{"scheme": URL.Scheme})
out.Infof("The --image-repository flag your provided contains Scheme: {{.scheme}}, which will be removed automatically", out.V{"scheme": URL.Scheme})
}

vaildImageRepo = URL.Hostname() + strings.TrimSuffix(URL.Path, "/")
return
validImageRepo = URL.Hostname() + imageRepoPort + strings.TrimSuffix(URL.Path, "/")

return validImageRepo
}

// This function validates if the --listen-address
Expand Down
24 changes: 14 additions & 10 deletions cmd/minikube/cmd/start_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -320,40 +320,44 @@ func TestBaseImageFlagDriverCombo(t *testing.T) {
func TestValidateImageRepository(t *testing.T) {
var tests = []struct {
imageRepository string
vaildImageRepository string
validImageRepository string
}{
{
imageRepository: "auto",
vaildImageRepository: "auto",
validImageRepository: "auto",
},
{
imageRepository: "http://registry.test.com/google_containers/",
vaildImageRepository: "registry.test.com/google_containers",
validImageRepository: "registry.test.com/google_containers",
},
{
imageRepository: "https://registry.test.com/google_containers/",
vaildImageRepository: "registry.test.com/google_containers",
validImageRepository: "registry.test.com/google_containers",
},
{
imageRepository: "registry.test.com/google_containers/",
vaildImageRepository: "registry.test.com/google_containers",
validImageRepository: "registry.test.com/google_containers",
},
{
imageRepository: "http://registry.test.com/google_containers",
vaildImageRepository: "registry.test.com/google_containers",
validImageRepository: "registry.test.com/google_containers",
},
{
imageRepository: "https://registry.test.com/google_containers",
vaildImageRepository: "registry.test.com/google_containers",
validImageRepository: "registry.test.com/google_containers",
},
{
imageRepository: "https://registry.test.com:6666/google_containers",
validImageRepository: "registry.test.com:6666/google_containers",
},
}

for _, test := range tests {
t.Run(test.imageRepository, func(t *testing.T) {
vaildImageRepository := validateImageRepository(test.imageRepository)
if vaildImageRepository != test.vaildImageRepository {
validImageRepository := validateImageRepository(test.imageRepository)
if validImageRepository != test.validImageRepository {
t.Errorf("validateImageRepository(imageRepo=%v): got %v, expected %v",
test.imageRepository, vaildImageRepository, test.vaildImageRepository)
test.imageRepository, validImageRepository, test.validImageRepository)
}
})
}
Expand Down

0 comments on commit 3a18901

Please sign in to comment.