Skip to content

Commit a948011

Browse files
committed
Refactor init questions
1 parent f253d6f commit a948011

1 file changed

Lines changed: 98 additions & 107 deletions

File tree

cmd/init.go

Lines changed: 98 additions & 107 deletions
Original file line numberDiff line numberDiff line change
@@ -399,148 +399,139 @@ func (cmd *InitCmd) configureKubernetes() {
399399

400400
func (cmd *InitCmd) configureRegistry() {
401401
internalRegistryConfig := cmd.config.Services.InternalRegistry
402-
403-
enableAutomaticBuilds := stdinutil.GetFromStdin(&stdinutil.GetFromStdinParams{
404-
Question: "Do you want to enable automatic Docker image building?",
402+
createInternalRegistry := stdinutil.GetFromStdin(&stdinutil.GetFromStdinParams{
403+
Question: "Should we create a private registry within your Kubernetes cluster for you? (yes | no)",
405404
DefaultValue: "yes",
406405
ValidationRegexPattern: "^(yes)|(no)$",
407406
})
408407

409-
if *enableAutomaticBuilds == "yes" {
410-
internalRegistryKey := "internal registry"
411-
defaultRegistryValue := internalRegistryKey
412-
413-
if cmd.defaultRegistry.URL != nil {
414-
defaultRegistryValue = *cmd.defaultRegistry.URL
415-
}
408+
if *createInternalRegistry == "no" {
416409
registryURL := stdinutil.GetFromStdin(&stdinutil.GetFromStdinParams{
417-
Question: "Which registry do you want to push to? ('internal registry', 'hub.docker.com' or URL)",
418-
DefaultValue: defaultRegistryValue,
410+
Question: "Which registry do you want to push to? ('hub.docker.com' or URL)",
411+
DefaultValue: "hub.docker.com",
419412
ValidationRegexPattern: "^.*$",
420413
})
421414

422-
if *registryURL != internalRegistryKey {
423-
cmd.defaultRegistry.URL = registryURL
424-
internalRegistryConfig = nil
415+
cmd.defaultRegistry.URL = registryURL
416+
internalRegistryConfig = nil
425417

426-
if *registryURL == "hub.docker.com" {
427-
defaultImageName := *cmd.defaultImage.Name
428-
defaultImageNameParts := strings.Split(defaultImageName, "/")
429-
existingDockerUsername := ""
430-
431-
if len(defaultImageNameParts) > 1 {
432-
existingDockerUsername = defaultImageNameParts[0]
433-
}
418+
if *registryURL == "hub.docker.com" {
419+
defaultImageName := *cmd.defaultImage.Name
420+
defaultImageNameParts := strings.Split(defaultImageName, "/")
421+
existingDockerUsername := ""
434422

435-
dockerUsername := stdinutil.GetFromStdin(&stdinutil.GetFromStdinParams{
436-
Question: "What is your Docker username?",
437-
DefaultValue: existingDockerUsername,
438-
ValidationRegexPattern: "^[a-zA-Z0-9]{4,30}$",
439-
})
440-
cmd.defaultImage.Name = configutil.String(*dockerUsername + "/" + strings.TrimPrefix(defaultImageName, *dockerUsername))
423+
if len(defaultImageNameParts) > 1 {
424+
existingDockerUsername = defaultImageNameParts[0]
441425
}
442-
} else {
443-
imageMap := *cmd.config.Images
444-
defaultImageConf, defaultImageExists := imageMap["default"]
445426

446-
if defaultImageExists {
447-
defaultImageConf.Registry = configutil.String("internal")
448-
}
427+
dockerUsername := stdinutil.GetFromStdin(&stdinutil.GetFromStdinParams{
428+
Question: "What is your Docker username?",
429+
DefaultValue: existingDockerUsername,
430+
ValidationRegexPattern: "^[a-zA-Z0-9]{4,30}$",
431+
})
432+
cmd.defaultImage.Name = configutil.String(*dockerUsername + "/" + strings.TrimPrefix(defaultImageName, *dockerUsername))
433+
}
434+
} else {
435+
imageMap := *cmd.config.Images
436+
defaultImageConf, defaultImageExists := imageMap["default"]
449437

450-
if internalRegistryConfig == nil {
451-
internalRegistryConfig = &v1.InternalRegistry{
452-
Release: &v1.Release{},
453-
}
454-
cmd.config.Services.InternalRegistry = internalRegistryConfig
455-
}
438+
if defaultImageExists {
439+
defaultImageConf.Registry = configutil.String("internal")
440+
}
456441

457-
if internalRegistryConfig.Release.Name == nil {
458-
internalRegistryConfig.Release.Name = configutil.String("devspace-registry")
442+
if internalRegistryConfig == nil {
443+
internalRegistryConfig = &v1.InternalRegistry{
444+
Release: &v1.Release{},
459445
}
446+
cmd.config.Services.InternalRegistry = internalRegistryConfig
447+
}
460448

461-
if internalRegistryConfig.Release.Namespace == nil {
462-
internalRegistryConfig.Release.Namespace = cmd.config.DevSpace.Release.Namespace
463-
}
464-
overwriteRegistryMap := *cmd.overwriteConfig.Registries
449+
if internalRegistryConfig.Release.Name == nil {
450+
internalRegistryConfig.Release.Name = configutil.String("devspace-registry")
451+
}
465452

466-
overwriteRegistryConfig, overwriteRegistryConfigFound := overwriteRegistryMap["internal"]
453+
if internalRegistryConfig.Release.Namespace == nil {
454+
internalRegistryConfig.Release.Namespace = cmd.config.DevSpace.Release.Namespace
455+
}
456+
overwriteRegistryMap := *cmd.overwriteConfig.Registries
467457

468-
if !overwriteRegistryConfigFound {
469-
overwriteRegistryConfig = &v1.RegistryConfig{
470-
Auth: &v1.RegistryAuth{},
471-
}
472-
overwriteRegistryMap["internal"] = overwriteRegistryConfig
458+
overwriteRegistryConfig, overwriteRegistryConfigFound := overwriteRegistryMap["internal"]
459+
460+
if !overwriteRegistryConfigFound {
461+
overwriteRegistryConfig = &v1.RegistryConfig{
462+
Auth: &v1.RegistryAuth{},
473463
}
474-
registryAuth := overwriteRegistryConfig.Auth
464+
overwriteRegistryMap["internal"] = overwriteRegistryConfig
465+
}
466+
registryAuth := overwriteRegistryConfig.Auth
475467

476-
if registryAuth.Username == nil {
477-
randomUserSuffix, err := randutil.GenerateRandomString(5)
468+
if registryAuth.Username == nil {
469+
randomUserSuffix, err := randutil.GenerateRandomString(5)
478470

479-
if err != nil {
480-
log.Fatalf("Error creating random username: %s", err.Error())
481-
}
482-
registryAuth.Username = configutil.String("user-" + randomUserSuffix)
471+
if err != nil {
472+
log.Fatalf("Error creating random username: %s", err.Error())
483473
}
474+
registryAuth.Username = configutil.String("user-" + randomUserSuffix)
475+
}
484476

485-
if registryAuth.Password == nil {
486-
randomPassword, err := randutil.GenerateRandomString(12)
477+
if registryAuth.Password == nil {
478+
randomPassword, err := randutil.GenerateRandomString(12)
487479

488-
if err != nil {
489-
log.Fatalf("Error creating random password: %s", err.Error())
490-
}
491-
registryAuth.Password = &randomPassword
480+
if err != nil {
481+
log.Fatalf("Error creating random password: %s", err.Error())
492482
}
493-
var registryReleaseValues map[interface{}]interface{}
494-
495-
if internalRegistryConfig.Release.Values != nil {
496-
registryReleaseValues = *internalRegistryConfig.Release.Values
497-
} else {
498-
registryReleaseValues = map[interface{}]interface{}{}
499-
500-
registryDomain := stdinutil.GetFromStdin(&stdinutil.GetFromStdinParams{
501-
Question: "Which domain should your container registry be using? (optional, requires an ingress controller)",
502-
ValidationRegexPattern: "^(([a-z0-9]([a-z0-9-]{0,120}[a-z0-9])?\\.)+[a-z0-9]{2,})?$",
503-
})
504-
505-
if *registryDomain != "" {
506-
registryReleaseValues = map[interface{}]interface{}{
507-
"Ingress": map[string]interface{}{
508-
"Enabled": true,
509-
"Hosts": []string{
510-
*registryDomain,
511-
},
512-
"Annotations": map[string]string{
513-
"Kubernetes.io/tls-acme": "true",
514-
},
515-
"Tls": []map[string]interface{}{
516-
map[string]interface{}{
517-
"SecretName": "tls-devspace-registry",
518-
"Hosts": []string{
519-
*registryDomain,
520-
},
483+
registryAuth.Password = &randomPassword
484+
}
485+
var registryReleaseValues map[interface{}]interface{}
486+
487+
if internalRegistryConfig.Release.Values != nil {
488+
registryReleaseValues = *internalRegistryConfig.Release.Values
489+
} else {
490+
registryReleaseValues = map[interface{}]interface{}{}
491+
492+
registryDomain := stdinutil.GetFromStdin(&stdinutil.GetFromStdinParams{
493+
Question: "Which domain should your container registry be using? (optional, requires an ingress controller)",
494+
ValidationRegexPattern: "^(([a-z0-9]([a-z0-9-]{0,120}[a-z0-9])?\\.)+[a-z0-9]{2,})?$",
495+
})
496+
497+
if *registryDomain != "" {
498+
registryReleaseValues = map[interface{}]interface{}{
499+
"Ingress": map[string]interface{}{
500+
"Enabled": true,
501+
"Hosts": []string{
502+
*registryDomain,
503+
},
504+
"Annotations": map[string]string{
505+
"Kubernetes.io/tls-acme": "true",
506+
},
507+
"Tls": []map[string]interface{}{
508+
map[string]interface{}{
509+
"SecretName": "tls-devspace-registry",
510+
"Hosts": []string{
511+
*registryDomain,
521512
},
522513
},
523514
},
524-
}
515+
},
525516
}
526517
}
527-
secrets, registryHasSecrets := registryReleaseValues["secrets"]
518+
}
519+
secrets, registryHasSecrets := registryReleaseValues["secrets"]
528520

529-
if !registryHasSecrets {
530-
secrets = map[interface{}]interface{}{}
531-
registryReleaseValues["secrets"] = secrets
532-
}
533-
secretMap, secretsIsMap := secrets.(map[interface{}]interface{})
521+
if !registryHasSecrets {
522+
secrets = map[interface{}]interface{}{}
523+
registryReleaseValues["secrets"] = secrets
524+
}
525+
secretMap, secretsIsMap := secrets.(map[interface{}]interface{})
534526

535-
if secretsIsMap {
536-
_, registryHasSecretHtpasswd := secretMap["htpasswd"]
527+
if secretsIsMap {
528+
_, registryHasSecretHtpasswd := secretMap["htpasswd"]
537529

538-
if !registryHasSecretHtpasswd {
539-
secretMap["htpasswd"] = ""
540-
}
530+
if !registryHasSecretHtpasswd {
531+
secretMap["htpasswd"] = ""
541532
}
542-
internalRegistryConfig.Release.Values = &registryReleaseValues
543533
}
534+
internalRegistryConfig.Release.Values = &registryReleaseValues
544535
}
545536
}
546537

0 commit comments

Comments
 (0)