Skip to content

Commit 425a7c2

Browse files
committed
improve registry handling
1 parent b984509 commit 425a7c2

File tree

2 files changed

+58
-34
lines changed

2 files changed

+58
-34
lines changed

cmd/kuberoCli/install.go

Lines changed: 55 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,8 @@ required binaries:
6262
case "monitoring":
6363
installMonitoring()
6464
return
65+
case "buildpacks":
66+
installKpack()
6567
case "kubernetes":
6668
installKubernetes()
6769
checkCluster()
@@ -76,6 +78,7 @@ required binaries:
7678
installCertManager()
7779
installKuberoOperator()
7880
installMonitoring()
81+
installKpack()
7982
installKuberoUi()
8083
writeCLIconfig()
8184
printDNSinfo()
@@ -103,7 +106,7 @@ var ingressControllerVersion = "v1.10.0" // https://github.com/kubernetes/ingres
103106
var clusterTypeList = []string{"kind", "linode", "scaleway", "gke", "digitalocean"}
104107

105108
func init() {
106-
installCmd.Flags().StringVarP(&arg_component, "component", "c", "", "install component (kubernetes,olm,ingress,metrics,certmanager,kubero-operator,monitoring,kubero-ui)")
109+
installCmd.Flags().StringVarP(&arg_component, "component", "c", "", "install component (kubernetes,olm,ingress,metrics,certmanager,kubero-operator,monitoring,buildpacks,kubero-ui)")
107110
installCmd.Flags().StringVarP(&arg_adminUser, "user", "u", "", "Admin username for the kubero UI")
108111
installCmd.Flags().StringVarP(&arg_adminPassword, "user-password", "U", "", "Password for the admin user")
109112
installCmd.Flags().StringVarP(&arg_apiToken, "apitoken", "a", "", "API token for the admin user")
@@ -324,14 +327,37 @@ func installOLM() {
324327
olmWaitCatalogSpinner.Success("OLM Catalog is ready")
325328
}
326329

330+
func installKpack() {
331+
332+
kpackInstalled, _ := exec.Command("kubectl", "get", "crd", "builds.kpack.io").Output()
333+
if len(kpackInstalled) > 0 {
334+
cfmt.Println("{{✓ Kpack is allredy installed}}::lightGreen")
335+
return
336+
}
337+
338+
kpackInstall := promptLine("8) Install Kpack for buildpacks.io", "[y,n]", "y")
339+
if kpackInstall != "y" {
340+
return
341+
}
342+
343+
components := "https://github.com/buildpacks-community/kpack/releases/download/v0.13.3/release-0.13.3.yaml"
344+
_, installErr := exec.Command("kubectl", "apply", "-f", components).Output()
345+
346+
if installErr != nil {
347+
fmt.Println("failed to install kpack")
348+
log.Fatal(installErr)
349+
}
350+
cfmt.Println("{{✓ Kpack Operator installed}}::lightGreen")
351+
}
352+
327353
func installMetrics() {
328354

329355
installed, _ := exec.Command("kubectl", "get", "deployments.apps", "metrics-server", "-n", "kube-system").Output()
330356
if len(installed) > 0 {
331357
cfmt.Println("{{✓ Metrics is allredy enabled}}::lightGreen")
332358
return
333359
}
334-
install := promptLine("4) Install Kubernetes internal metrics service (required for HPA and stats)", "[y,n]", "y")
360+
install := promptLine("4) Install Kubernetes internal metrics service (required for HPA, Horizontal Pod Autoscaling)", "[y,n]", "y")
335361
if install != "y" {
336362
return
337363
}
@@ -480,7 +506,7 @@ func createNamespace(namespace string) {
480506

481507
func installKuberoUi() {
482508

483-
ingressInstall := promptLine("7) Install Kubero UI", "[y,n]", "y")
509+
ingressInstall := promptLine("9) Install Kubero UI", "[y,n]", "y")
484510
if ingressInstall != "y" {
485511
return
486512
}
@@ -626,20 +652,23 @@ func installKuberoUi() {
626652
kuberoUIConfig.Spec.Registry.Enabled = true
627653

628654
kuberoUICreateRegistry := promptLine("Create a local Registry for Kubero", "[y/n]", "n")
629-
630655
if kuberoUICreateRegistry == "y" {
631656
kuberoUIConfig.Spec.Registry.Create = true
632-
kuberoUIConfig.Spec.Registry.Host = "registry.local.kubero.net" // registry.local.kubero.net points to localhost 127.0.0.1
633-
kuberoUIConfig.Spec.Registry.Port = 80
634-
} else {
635657

636-
kuberoUIRegistryPort := promptLine("Registry port", "", "443")
637-
kuberoUIConfig.Spec.Registry.Port, _ = strconv.Atoi(kuberoUIRegistryPort)
658+
kuberoUIRegistryStorage := promptLine("Registry storage size", "", "10Gi")
659+
kuberoUIConfig.Spec.Registry.Storage = kuberoUIRegistryStorage
660+
661+
storageClassList := getAvailableStorageClasses()
638662

639-
kuberoUIRegistryHost := promptLine("Registry domain", "", "registry.yourdomain.com")
640-
kuberoUIConfig.Spec.Registry.Host = kuberoUIRegistryHost
663+
kuberoUIRegistryStorageClassName := selectFromList("Registry storage class", storageClassList, "")
664+
kuberoUIConfig.Spec.Registry.StorageClassName = kuberoUIRegistryStorageClassName
641665
}
642666

667+
kuberoUIRegistryHost := promptLine("Registry domain", "", "")
668+
kuberoUIConfig.Spec.Registry.Host = kuberoUIRegistryHost
669+
kuberoUIRegistryPort := promptLine("Registry port", "", "443")
670+
kuberoUIConfig.Spec.Registry.Port, _ = strconv.Atoi(kuberoUIRegistryPort)
671+
643672
kuberoUIRegistryUsername := promptLine("Registry username", "", "admin")
644673
kuberoUIConfig.Spec.Registry.Account.Username = kuberoUIRegistryUsername
645674

@@ -648,14 +677,6 @@ func installKuberoUi() {
648677

649678
kuberoUIRegistryPasswordBytes, _ := bcrypt.GenerateFromPassword([]byte(kuberoUIRegistryPassword), 14)
650679
kuberoUIConfig.Spec.Registry.Account.Hash = string(kuberoUIRegistryPasswordBytes)
651-
652-
kuberoUIRegistryStorage := promptLine("Registry storage size", "", "10Gi")
653-
kuberoUIConfig.Spec.Registry.Storage = kuberoUIRegistryStorage
654-
655-
storageClassList := getAvailableStorageClasses()
656-
657-
kuberoUIRegistryStorageClassName := selectFromList("Registry storage class", storageClassList, "")
658-
kuberoUIConfig.Spec.Registry.StorageClassName = kuberoUIRegistryStorageClassName
659680
}
660681

661682
kuberoUIAudit := promptLine("Enable Audit Logging", "[y/n]", "n")
@@ -742,7 +763,7 @@ func installKuberoUi() {
742763

743764
func installMonitoring() {
744765

745-
if promptLine("Enable longterm metrics", "[y/n]", "y") == "y" {
766+
if promptLine("7) Enable longterm metrics", "[y/n]", "y") == "y" {
746767
monitoringInstalled = true
747768
} else {
748769
monitoringInstalled = false
@@ -752,7 +773,7 @@ func installMonitoring() {
752773
createNamespace("kubero")
753774

754775
spinner := spinner.New("enable metrics")
755-
if promptLine("Create local Prometheus instance", "[y/n]", "y") == "y" {
776+
if promptLine("7.1) Create local Prometheus instance", "[y/n]", "y") == "y" {
756777
URL := "https://raw.githubusercontent.com/kubero-dev/kubero-operator/main/config/samples/application_v1alpha1_kuberoprometheus.yaml"
757778
cfmt.Println(" run command : kubectl apply -f " + URL)
758779
spinner.Start("Installing Prometheus")
@@ -774,7 +795,7 @@ func installMonitoring() {
774795
spinner.Success("Prometheus installed sucessfully")
775796
}
776797

777-
if promptLine("Enable Kubemetrtics", "[y/n]", "y") == "y" {
798+
if promptLine("7.2) Enable Kubemetrtics", "[y/n]", "y") == "y" {
778799
cfmt.Println(" run command : kubectl patch kuberoes kubero -n kubero --type=merge")
779800
spinner.Start("Enabling Metrics")
780801

@@ -919,10 +940,10 @@ func installCertManagerClusterissuer(namespace string) {
919940
var certmanagerClusterIssuer CertmanagerClusterIssuer
920941
yaml.Unmarshal(kf.Body(), &certmanagerClusterIssuer)
921942

922-
arg_certmanagerContact := promptLine("Letsencrypt ACME contact email", "", "[email protected]")
943+
arg_certmanagerContact := promptLine("5.1) Letsencrypt ACME contact email", "", "[email protected]")
923944
certmanagerClusterIssuer.Spec.Acme.Email = arg_certmanagerContact
924945

925-
clusterissuer := promptLine("Clusterissuer Name", "", "letsencrypt-prod")
946+
clusterissuer := promptLine("5.2) Clusterissuer Name", "", "letsencrypt-prod")
926947
certmanagerClusterIssuer.Metadata.Name = clusterissuer
927948

928949
certmanagerClusterIssuerYaml, _ := yaml.Marshal(certmanagerClusterIssuer)
@@ -984,7 +1005,7 @@ func installOLMCertManager() {
9841005

9851006
func writeCLIconfig() {
9861007

987-
ingressInstall := promptLine("8) Write the Kubero CLI config", "[y,n]", "n")
1008+
ingressInstall := promptLine("10) Write the Kubero CLI config", "[y,n]", "n")
9881009
if ingressInstall != "y" {
9891010
return
9901011
}
@@ -1042,16 +1063,19 @@ func finalMessage() {
10421063
https://docs.kubero.dev
10431064
`)
10441065

1045-
if arg_domain != "" && arg_port != "" && arg_apiToken != "" && arg_adminPassword != "" {
1046-
cfmt.Println(`
1066+
protocol := "https"
1067+
if arg_port == "80" {
1068+
protocol = "http"
1069+
}
1070+
cfmt.Println(`
10471071
Your Kubero UI :{{
1048-
URL : ` + arg_domain + `:` + arg_port + `
1072+
URL : ` + protocol + "://" + arg_domain + ":" + arg_port + `
10491073
User: ` + arg_adminUser + `
10501074
Pass: ` + arg_adminPassword + `}}::lightBlue
10511075
`)
1052-
} else {
1053-
cfmt.Println("\n\n {{Done - you can now login to your Kubero UI}}::lightGreen\n\n ")
1054-
}
1076+
1077+
cfmt.Println("\n\n {{Done - you can now login to your Kubero UI}}::lightGreen\n\n ")
1078+
10551079
}
10561080

10571081
func generateRandomString(length int, chars string) string {

cmd/kuberoCli/tunnel.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -76,9 +76,9 @@ func startTunnel() {
7676
os.Exit(1)
7777
}
7878
cfmt.Println()
79-
cfmt.Println(" Endpoint IP : {{" + ipres.String() + "}}::cyan")
80-
cfmt.Println(" Destination Host : {{" + tunnelHost + "}}::cyan")
81-
cfmt.Println(" Destination Port : {{" + strconv.Itoa(tunnelPort) + "}}::cyan\n\n")
79+
cfmt.Println(" Endpoint IP (Tunnel Password) : {{" + ipres.String() + "}}::cyan")
80+
cfmt.Println(" Destination Host : {{" + tunnelHost + "}}::cyan")
81+
cfmt.Println(" Destination Port : {{" + strconv.Itoa(tunnelPort) + "}}::cyan\n\n")
8282

8383
spinner := spinner.New()
8484
spinner.Start("Waiting for tunnel to be ready")

0 commit comments

Comments
 (0)