Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package kubefirst for openSUSE:Factory checked in at 2025-02-11 21:25:12 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/kubefirst (Old) and /work/SRC/openSUSE:Factory/.kubefirst.new.19470 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kubefirst" Tue Feb 11 21:25:12 2025 rev:31 rq:1244974 version:2.8.2 Changes: -------- --- /work/SRC/openSUSE:Factory/kubefirst/kubefirst.changes 2025-02-07 23:11:22.877285683 +0100 +++ /work/SRC/openSUSE:Factory/.kubefirst.new.19470/kubefirst.changes 2025-02-11 21:27:07.792459115 +0100 @@ -1,0 +2,9 @@ +Tue Feb 11 07:23:21 UTC 2025 - opensuse_buildserv...@ojkastl.de + +- Update to version 2.8.2: + * feat: tag latest api (#2415) + * set next macro chart for kubefirst - 2.8.2 + * Fix display msg (#2414) + * fix: add missing flags (#2413) + +------------------------------------------------------------------- Old: ---- kubefirst-2.8.1.obscpio New: ---- kubefirst-2.8.2.obscpio ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ kubefirst.spec ++++++ --- /var/tmp/diff_new_pack.LUEcAf/_old 2025-02-11 21:27:08.972507791 +0100 +++ /var/tmp/diff_new_pack.LUEcAf/_new 2025-02-11 21:27:08.976507956 +0100 @@ -17,7 +17,7 @@ Name: kubefirst -Version: 2.8.1 +Version: 2.8.2 Release: 0 Summary: CLI for the KubeFirst GitOps Infrastructure & Application Delivery Platform License: MIT ++++++ _service ++++++ --- /var/tmp/diff_new_pack.LUEcAf/_old 2025-02-11 21:27:09.008509277 +0100 +++ /var/tmp/diff_new_pack.LUEcAf/_new 2025-02-11 21:27:09.012509442 +0100 @@ -3,7 +3,7 @@ <param name="url">https://github.com/kubefirst/kubefirst</param> <param name="scm">git</param> <param name="exclude">.git</param> - <param name="revision">v2.8.1</param> + <param name="revision">v2.8.2</param> <param name="versionformat">@PARENT_TAG@</param> <param name="versionrewrite-pattern">v(.*)</param> <param name="changesgenerate">enable</param> ++++++ _servicedata ++++++ --- /var/tmp/diff_new_pack.LUEcAf/_old 2025-02-11 21:27:09.036510432 +0100 +++ /var/tmp/diff_new_pack.LUEcAf/_new 2025-02-11 21:27:09.036510432 +0100 @@ -1,6 +1,6 @@ <servicedata> <service name="tar_scm"> <param name="url">https://github.com/kubefirst/kubefirst</param> - <param name="changesrevision">e77c784b054c4e9b6c96ac584ddaeb71a0be5a97</param></service></servicedata> + <param name="changesrevision">f9c535ba5f075f11c96c6797841463188642d6fc</param></service></servicedata> (No newline at EOF) ++++++ kubefirst-2.8.1.obscpio -> kubefirst-2.8.2.obscpio ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kubefirst-2.8.1/cmd/akamai/command.go new/kubefirst-2.8.2/cmd/akamai/command.go --- old/kubefirst-2.8.1/cmd/akamai/command.go 2025-02-04 20:49:33.000000000 +0100 +++ new/kubefirst-2.8.2/cmd/akamai/command.go 2025-02-10 15:29:13.000000000 +0100 @@ -86,7 +86,7 @@ provision := provision.NewProvisioner(provision.NewProvisionWatcher(cliFlags.ClusterName, &clusterClient), stepper) - if err := provision.ProvisionManagementCluster(ctx, &cliFlags, catalogApps); err != nil { + if err := provision.ProvisionManagementCluster(ctx, cliFlags, catalogApps); err != nil { return fmt.Errorf("failed to create cluster: %w", err) } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kubefirst-2.8.1/cmd/aws/command.go new/kubefirst-2.8.2/cmd/aws/command.go --- old/kubefirst-2.8.1/cmd/aws/command.go 2025-02-04 20:49:33.000000000 +0100 +++ new/kubefirst-2.8.2/cmd/aws/command.go 2025-02-10 15:29:13.000000000 +0100 @@ -139,7 +139,7 @@ provision := provision.NewProvisioner(provision.NewProvisionWatcher(cliFlags.ClusterName, &clusterClient), stepper) - if err := provision.ProvisionManagementCluster(ctx, &cliFlags, catalogApps); err != nil { + if err := provision.ProvisionManagementCluster(ctx, cliFlags, catalogApps); err != nil { stepper.FailCurrentStep(err) return fmt.Errorf("failed to provision aws management cluster: %w", err) } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kubefirst-2.8.1/cmd/azure/command.go new/kubefirst-2.8.2/cmd/azure/command.go --- old/kubefirst-2.8.1/cmd/azure/command.go 2025-02-04 20:49:33.000000000 +0100 +++ new/kubefirst-2.8.2/cmd/azure/command.go 2025-02-10 15:29:13.000000000 +0100 @@ -88,7 +88,7 @@ clusterClient := cluster.Client{} provision := provision.NewProvisioner(provision.NewProvisionWatcher(cliFlags.ClusterName, &clusterClient), stepper) - if err := provision.ProvisionManagementCluster(ctx, &cliFlags, catalogApps); err != nil { + if err := provision.ProvisionManagementCluster(ctx, cliFlags, catalogApps); err != nil { return fmt.Errorf("failed to create Azure management cluster: %w", err) } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kubefirst-2.8.1/cmd/civo/command.go new/kubefirst-2.8.2/cmd/civo/command.go --- old/kubefirst-2.8.1/cmd/civo/command.go 2025-02-04 20:49:33.000000000 +0100 +++ new/kubefirst-2.8.2/cmd/civo/command.go 2025-02-10 15:29:13.000000000 +0100 @@ -97,7 +97,7 @@ stepper, ) - if err := provisioner.ProvisionManagementCluster(ctx, &cliFlags, catalogApps); err != nil { + if err := provisioner.ProvisionManagementCluster(ctx, cliFlags, catalogApps); err != nil { stepper.FailCurrentStep(err) return fmt.Errorf("failed to create Civo management cluster: %w", err) } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kubefirst-2.8.1/cmd/digitalocean/command.go new/kubefirst-2.8.2/cmd/digitalocean/command.go --- old/kubefirst-2.8.1/cmd/digitalocean/command.go 2025-02-04 20:49:33.000000000 +0100 +++ new/kubefirst-2.8.2/cmd/digitalocean/command.go 2025-02-10 15:29:13.000000000 +0100 @@ -88,7 +88,7 @@ provision := provision.NewProvisioner(provision.NewProvisionWatcher(cliFlags.ClusterName, &clusterClient), stepper) - if err := provision.ProvisionManagementCluster(ctx, &cliFlags, catalogApps); err != nil { + if err := provision.ProvisionManagementCluster(ctx, cliFlags, catalogApps); err != nil { return fmt.Errorf("failed to create DigitalOcean management cluster: %w", err) } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kubefirst-2.8.1/cmd/google/command.go new/kubefirst-2.8.2/cmd/google/command.go --- old/kubefirst-2.8.1/cmd/google/command.go 2025-02-04 20:49:33.000000000 +0100 +++ new/kubefirst-2.8.2/cmd/google/command.go 2025-02-10 15:29:13.000000000 +0100 @@ -89,7 +89,7 @@ provision := provision.NewProvisioner(provision.NewProvisionWatcher(cliFlags.ClusterName, &clusterClient), stepper) - if err := provision.ProvisionManagementCluster(ctx, &cliFlags, catalogApps); err != nil { + if err := provision.ProvisionManagementCluster(ctx, cliFlags, catalogApps); err != nil { return fmt.Errorf("failed to create google management cluster: %w", err) } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kubefirst-2.8.1/cmd/k3d/create.go new/kubefirst-2.8.2/cmd/k3d/create.go --- old/kubefirst-2.8.1/cmd/k3d/create.go 2025-02-04 20:49:33.000000000 +0100 +++ new/kubefirst-2.8.2/cmd/k3d/create.go 2025-02-10 15:29:13.000000000 +0100 @@ -58,18 +58,13 @@ //nolint:gocyclo // this function is complex and needs to be refactored func runK3d(cmd *cobra.Command, _ []string) error { - ciFlag, err := cmd.Flags().GetBool("ci") - if err != nil { - progress.Error(err.Error()) - return fmt.Errorf("failed to get ci flag: %w", err) - } - cliFlags, err := utilities.GetFlags(cmd, "k3d") if err != nil { progress.Error(err.Error()) return fmt.Errorf("failed to get flags: %w", err) } + log.Info().Msgf("type is %s", cliFlags.ClusterType) utilities.CreateK1ClusterDirectory(cliFlags.ClusterName) utils.DisplayLogHints() @@ -851,7 +846,7 @@ log.Error().Err(err).Msg("failed to copy ArgoCD password to clipboard") } - if os.Getenv("SKIP_ARGOCD_LAUNCH") != "true" || !ciFlag { + if os.Getenv("SKIP_ARGOCD_LAUNCH") != "true" || !cliFlags.Ci { err = utils.OpenBrowser(constants.ArgoCDLocalURLTLS) if err != nil { log.Error().Err(err).Msg("failed to open ArgoCD URL in browser") @@ -1223,9 +1218,9 @@ log.Info().Msg("welcome to your new Kubefirst platform running in K3D") time.Sleep(1 * time.Second) - reports.LocalHandoffScreenV2(cliFlags.ClusterName, gitDestDescriptor, cGitOwner, config, ciFlag) + reports.LocalHandoffScreenV2(cliFlags.ClusterName, gitDestDescriptor, cGitOwner, config, cliFlags.Ci) - if ciFlag { + if cliFlags.Ci { progress.Progress.Quit() } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kubefirst-2.8.1/cmd/k3s/command.go new/kubefirst-2.8.2/cmd/k3s/command.go --- old/kubefirst-2.8.1/cmd/k3s/command.go 2025-02-04 20:49:33.000000000 +0100 +++ new/kubefirst-2.8.2/cmd/k3s/command.go 2025-02-10 15:29:13.000000000 +0100 @@ -84,7 +84,7 @@ provision := provision.NewProvisioner(provision.NewProvisionWatcher(cliFlags.ClusterName, &clusterClient), stepper) - if err := provision.ProvisionManagementCluster(ctx, &cliFlags, catalogApps); err != nil { + if err := provision.ProvisionManagementCluster(ctx, cliFlags, catalogApps); err != nil { return fmt.Errorf("failed to create k3s management cluster: %w", err) } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kubefirst-2.8.1/cmd/reset.go new/kubefirst-2.8.2/cmd/reset.go --- old/kubefirst-2.8.1/cmd/reset.go 2025-02-04 20:49:33.000000000 +0100 +++ new/kubefirst-2.8.2/cmd/reset.go 2025-02-10 15:29:13.000000000 +0100 @@ -9,7 +9,6 @@ import ( "fmt" "os" - "strconv" "time" utils "github.com/konstructio/kubefirst-api/pkg/utils" @@ -26,47 +25,6 @@ Long: "removes local kubefirst content to provision a new platform", RunE: func(cmd *cobra.Command, _ []string) error { stepper := step.NewStepFactory(cmd.ErrOrStderr()) - gitProvider := viper.GetString("kubefirst.git-provider") - cloudProvider := viper.GetString("kubefirst.cloud-provider") - - checksMap := viper.Get("kubefirst-checks") - switch v := checksMap.(type) { - case nil: - // Handle the nil case explicitly - message := "Successfully reset kubefirst platform" - stepper.InfoStep(step.EmojiTada, message) - return nil - case string: - if v == "" { - log.Info().Msg("checks map is empty, continuing") - } else { - wrerr := fmt.Errorf("unexpected string value in kubefirst-checks: %s", v) - stepper.InfoStep(step.EmojiError, wrerr.Error()) - return wrerr - } - case map[string]interface{}: - checks, err := parseConfigEntryKubefirstChecks(v) - if err != nil { - wrerr := fmt.Errorf("error parsing kubefirst-checks: %w", err) - stepper.InfoStep(step.EmojiError, wrerr.Error()) - log.Error().Msgf("error occurred during check parsing: %s - resetting directory without checks", err) - } - // If destroy hasn't been run yet, reset should fail to avoid orphaned resources - switch { - case checks[fmt.Sprintf("terraform-apply-%s", gitProvider)]: - wrerr := fmt.Errorf("active %s resource deployment detected - please run `%s destroy` before continuing", gitProvider, cloudProvider) - stepper.InfoStep(step.EmojiError, wrerr.Error()) - return wrerr - case checks[fmt.Sprintf("terraform-apply-%s", cloudProvider)]: - wrerr := fmt.Errorf("active %s installation detected - please run `%s destroy` before continuing", cloudProvider, cloudProvider) - stepper.InfoStep(step.EmojiError, wrerr.Error()) - return wrerr - } - default: - wrerr := fmt.Errorf("unable to determine contents of kubefirst-checks: unexpected type %T", v) - stepper.InfoStep(step.EmojiError, wrerr.Error()) - return wrerr - } homePath, err := os.UserHomeDir() if err != nil { @@ -90,24 +48,6 @@ return resetCmd } -// parseConfigEntryKubefirstChecks gathers the kubefirst-checks section of the Viper -// config file and parses as a map[string]bool -func parseConfigEntryKubefirstChecks(checks map[string]interface{}) (map[string]bool, error) { - if checks == nil { - return map[string]bool{}, fmt.Errorf("checks configuration is nil") - } - checksMap := make(map[string]bool, 0) - for key, value := range checks { - strKey := fmt.Sprintf("%v", key) - boolValue := fmt.Sprintf("%v", value) - - boolValueP, _ := strconv.ParseBool(boolValue) - checksMap[strKey] = boolValueP - } - - return checksMap, nil -} - // runReset carries out the reset function func runReset(homePath string) error { log.Info().Msg("removing previous platform content") diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kubefirst-2.8.1/cmd/root.go new/kubefirst-2.8.2/cmd/root.go --- old/kubefirst-2.8.1/cmd/root.go 2025-02-04 20:49:33.000000000 +0100 +++ new/kubefirst-2.8.2/cmd/root.go 2025-02-10 15:29:13.000000000 +0100 @@ -75,6 +75,6 @@ if err := rootCmd.Execute(); err != nil { fmt.Fprintln(output, "If a detailed error message was available, please make the necessary corrections before retrying.") fmt.Fprintln(output, "You can re-run the last command to try the operation again.") - os.Exit(1) + os.Exit(0) } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kubefirst-2.8.1/cmd/vultr/command.go new/kubefirst-2.8.2/cmd/vultr/command.go --- old/kubefirst-2.8.1/cmd/vultr/command.go 2025-02-04 20:49:33.000000000 +0100 +++ new/kubefirst-2.8.2/cmd/vultr/command.go 2025-02-10 15:29:13.000000000 +0100 @@ -88,7 +88,7 @@ provision := provision.NewProvisioner(provision.NewProvisionWatcher(cliFlags.ClusterName, &clusterClient), stepper) - if err := provision.ProvisionManagementCluster(ctx, &cliFlags, catalogApps); err != nil { + if err := provision.ProvisionManagementCluster(ctx, cliFlags, catalogApps); err != nil { return fmt.Errorf("failed to create vultr management cluster: %w", err) } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kubefirst-2.8.1/go.mod new/kubefirst-2.8.2/go.mod --- old/kubefirst-2.8.1/go.mod 2025-02-04 20:49:33.000000000 +0100 +++ new/kubefirst-2.8.2/go.mod 2025-02-10 15:29:13.000000000 +0100 @@ -20,7 +20,7 @@ github.com/google/go-github/v52 v52.0.0 github.com/hashicorp/vault/api v1.15.0 github.com/konstructio/cli-utils v0.0.0-20250121163216-a915a9d11340 - github.com/konstructio/kubefirst-api v0.122.0 + github.com/konstructio/kubefirst-api v0.129.0 github.com/kubefirst/metrics-client v0.3.0 github.com/minio/minio-go/v7 v7.0.81 github.com/muesli/termenv v0.15.3-0.20240618155329-98d742f6907a diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kubefirst-2.8.1/go.sum new/kubefirst-2.8.2/go.sum --- old/kubefirst-2.8.1/go.sum 2025-02-04 20:49:33.000000000 +0100 +++ new/kubefirst-2.8.2/go.sum 2025-02-10 15:29:13.000000000 +0100 @@ -531,8 +531,8 @@ github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/konstructio/cli-utils v0.0.0-20250121163216-a915a9d11340 h1:r+tlg96rsCbXB9nWn8d2txRkkBUdL0jRuwP1on34FAQ= github.com/konstructio/cli-utils v0.0.0-20250121163216-a915a9d11340/go.mod h1:kD11ekLtaYxEMK73t7jrzg8116dEOD5dYZlFfJ5SQ/o= -github.com/konstructio/kubefirst-api v0.122.0 h1:8XzoqJDBdgKHsDUsKSTWrBDDSR66bl/tj+eFgNlQoWs= -github.com/konstructio/kubefirst-api v0.122.0/go.mod h1:iwyRPrwlVwA49XEvHfvTlvbldmDQR0NGDcPZVyIeDT4= +github.com/konstructio/kubefirst-api v0.129.0 h1:Jir3g8QL+NKOU5BAJCFBtf4Gcb86Fp1RWNjiBTu1ywQ= +github.com/konstructio/kubefirst-api v0.129.0/go.mod h1:iwyRPrwlVwA49XEvHfvTlvbldmDQR0NGDcPZVyIeDT4= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk= diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kubefirst-2.8.1/internal/common/common.go new/kubefirst-2.8.2/internal/common/common.go --- old/kubefirst-2.8.1/internal/common/common.go 2025-02-04 20:49:33.000000000 +0100 +++ new/kubefirst-2.8.2/internal/common/common.go 2025-02-10 15:29:13.000000000 +0100 @@ -119,23 +119,21 @@ stepper.CompleteCurrentStep() header := ` -Root Credentials +## +# Root Credentials -` + fmt.Sprintf("%s Keep this data secure. These passwords can be used to access the following applications in your platform.", step.EmojiBulb) - argoMsg := ` -ArgoCD Admin Password -` + cluster.ArgoCDPassword - kbotMsg := ` -KBot User Password -` + cluster.VaultAuth.KbotPassword - vaultMsg := ` -Vault Root Token -` + cluster.VaultAuth.RootToken - - stepper.InfoStepString(header) - stepper.InfoStepString(argoMsg) - stepper.InfoStepString(kbotMsg) - stepper.InfoStepString(vaultMsg) +### :bulb: Keep this data secure. These passwords can be used to access the following applications in your platform + +## ArgoCD Admin Password +##### ` + cluster.ArgoCDPassword + ` + +## KBot User Password +##### ` + cluster.VaultAuth.KbotPassword + ` + +## Vault Root Token +##### ` + cluster.VaultAuth.RootToken + ` +` + stepper.InfoStep(step.EmojiBulb, progress.RenderMessage(header)) return nil } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kubefirst-2.8.1/internal/launch/constants.go new/kubefirst-2.8.2/internal/launch/constants.go --- old/kubefirst-2.8.1/internal/launch/constants.go 2025-02-04 20:49:33.000000000 +0100 +++ new/kubefirst-2.8.2/internal/launch/constants.go 2025-02-10 15:29:13.000000000 +0100 @@ -11,7 +11,7 @@ helmChartName = "kubefirst" helmChartRepoName = "konstruct" helmChartRepoURL = "https://charts.konstruct.io" - helmChartVersion = "2.8.1" + helmChartVersion = "2.8.2" namespace = "kubefirst" secretName = "kubefirst-initial-secrets" ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kubefirst-2.8.1/internal/progress/message.go new/kubefirst-2.8.2/internal/progress/message.go --- old/kubefirst-2.8.1/internal/progress/message.go 2025-02-04 20:49:33.000000000 +0100 +++ new/kubefirst-2.8.2/internal/progress/message.go 2025-02-10 15:29:13.000000000 +0100 @@ -19,7 +19,7 @@ "github.com/spf13/viper" ) -func renderMessage(message string) string { +func RenderMessage(message string) string { r, _ := glamour.NewTermRenderer( glamour.WithStyles(StyleConfig), glamour.WithEmoji(), @@ -34,7 +34,7 @@ } func createStep(message string) addStep { - out := renderMessage(message) + out := RenderMessage(message) return addStep{ message: out, @@ -42,7 +42,7 @@ } func createErrorLog(message string) errorMsg { - out := renderMessage(fmt.Sprintf("##### :no_entry_sign: Error: %s", message)) + out := RenderMessage(fmt.Sprintf("##### :no_entry_sign: Error: %s", message)) return errorMsg{ message: out, @@ -69,7 +69,7 @@ ### :alarm_clock: Estimated time:` + fmt.Sprintf("`%s minutes` \n\n", strconv.Itoa(estimatedTime)) - headerMessage := renderMessage(header) + headerMessage := RenderMessage(header) Progress.Send(headerMsg{ message: headerMessage, @@ -77,7 +77,7 @@ } //nolint:revive // will be fixed in the future -func DisplaySuccessMessage(cluster types.Cluster) successMsg { +func DisplaySuccessMessage(cluster types.Cluster) string { cloudCliKubeconfig := "" gitProviderLabel := "GitHub" @@ -139,11 +139,7 @@ ##### kubectl get pods -A ` - successMessage := renderMessage(success) - - return successMsg{ - message: successMessage, - } + return success } func AddStep(message string) { @@ -158,7 +154,7 @@ } func Success(success string) { - successMessage := renderMessage(success) + successMessage := RenderMessage(success) Progress.Send( successMsg{ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kubefirst-2.8.1/internal/progress/progress.go new/kubefirst-2.8.2/internal/progress/progress.go --- old/kubefirst-2.8.1/internal/progress/progress.go 2025-02-04 20:49:33.000000000 +0100 +++ new/kubefirst-2.8.2/internal/progress/progress.go 2025-02-10 15:29:13.000000000 +0100 @@ -71,7 +71,7 @@ m.provisioningCluster = types.Cluster(msg) completedSteps, nextStep := BuildCompletedSteps(types.Cluster(msg)) m.completedSteps = append(m.completedSteps, completedSteps...) - m.nextStep = renderMessage(fmt.Sprintf(":dizzy: %s", nextStep)) + m.nextStep = RenderMessage(fmt.Sprintf(":dizzy: %s", nextStep)) if m.provisioningCluster.Status == "error" { errorMessage := createErrorLog(m.provisioningCluster.LastCondition) @@ -105,7 +105,7 @@ completedSteps := "" for i := index; i < len(m.completedSteps); i++ { - completedSteps += renderMessage(fmt.Sprintf(":white_check_mark: %s", m.completedSteps[i])) + completedSteps += RenderMessage(fmt.Sprintf(":white_check_mark: %s", m.completedSteps[i])) } if m.header != "" { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kubefirst-2.8.1/internal/provision/provision.go new/kubefirst-2.8.2/internal/provision/provision.go --- old/kubefirst-2.8.1/internal/provision/provision.go 2025-02-04 20:49:33.000000000 +0100 +++ new/kubefirst-2.8.2/internal/provision/provision.go 2025-02-10 15:29:13.000000000 +0100 @@ -19,6 +19,7 @@ "github.com/konstructio/kubefirst/internal/cluster" "github.com/konstructio/kubefirst/internal/gitShim" "github.com/konstructio/kubefirst/internal/launch" + "github.com/konstructio/kubefirst/internal/progress" "github.com/konstructio/kubefirst/internal/step" "github.com/konstructio/kubefirst/internal/types" "github.com/konstructio/kubefirst/internal/utilities" @@ -76,6 +77,7 @@ clusterSetupComplete := viper.GetBool("kubefirst-checks.cluster-install-complete") if clusterSetupComplete { p.stepper.InfoStep(step.EmojiCheck, "Cluster already successfully provisioned") + return nil } @@ -149,5 +151,11 @@ p.stepper.InfoStep(step.EmojiTada, "Your kubefirst platform has been provisioned!") + clusterInfo, err := cluster.GetCluster(cliFlags.ClusterName) + if err != nil { + return fmt.Errorf("failed to get management cluster: %w", err) + } + p.stepper.InfoStep(step.EmojiMagic, progress.RenderMessage(progress.DisplaySuccessMessage(clusterInfo))) + return nil } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kubefirst-2.8.1/internal/provision/provisionWatcher.go new/kubefirst-2.8.2/internal/provision/provisionWatcher.go --- old/kubefirst-2.8.1/internal/provision/provisionWatcher.go 2025-02-04 20:49:33.000000000 +0100 +++ new/kubefirst-2.8.2/internal/provision/provisionWatcher.go 2025-02-10 15:29:13.000000000 +0100 @@ -23,6 +23,7 @@ VaultInitializedCheck = "Vault Initialized" VaultTerraformApplyCheck = "Vault Terraform Apply" UsersTerraformApplyCheck = "Users Terraform Apply" + FinalCheck = "Final Check" ProvisionComplete = "Provision Complete" ) @@ -60,6 +61,7 @@ {StepName: VaultInitializedCheck}, {StepName: VaultTerraformApplyCheck}, {StepName: UsersTerraformApplyCheck}, + {StepName: FinalCheck}, }, client: client, } @@ -130,6 +132,7 @@ VaultInitializedCheck: provisionedCluster.VaultInitializedCheck, VaultTerraformApplyCheck: provisionedCluster.VaultTerraformApplyCheck, UsersTerraformApplyCheck: provisionedCluster.UsersTerraformApplyCheck, + FinalCheck: provisionedCluster.FinalCheck, } return clusterStepStatus } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kubefirst-2.8.1/internal/utilities/flags.go new/kubefirst-2.8.2/internal/utilities/flags.go --- old/kubefirst-2.8.1/internal/utilities/flags.go 2025-02-04 20:49:33.000000000 +0100 +++ new/kubefirst-2.8.2/internal/utilities/flags.go 2025-02-10 15:29:13.000000000 +0100 @@ -15,7 +15,7 @@ "github.com/spf13/viper" ) -func GetFlags(cmd *cobra.Command, cloudProvider string) (types.CliFlags, error) { +func GetFlags(cmd *cobra.Command, cloudProvider string) (*types.CliFlags, error) { cliFlags := types.CliFlags{} var err error @@ -39,7 +39,7 @@ for flag, target := range flags { if *target, err = cmd.Flags().GetString(flag); err != nil { - return cliFlags, fmt.Errorf("failed to get %s flag: %w", flag, err) + return &cliFlags, fmt.Errorf("failed to get %s flag: %w", flag, err) } } @@ -59,41 +59,78 @@ for flag, target := range cloudSpecificFlags { if *target, err = cmd.Flags().GetString(flag); err != nil { - return cliFlags, fmt.Errorf("failed to get %s flag: %w", flag, err) + return &cliFlags, fmt.Errorf("failed to get %s flag: %w", flag, err) } } if installKubefirstProFlag, err = cmd.Flags().GetBool("install-kubefirst-pro"); err != nil { - return cliFlags, fmt.Errorf("failed to get install-kubefirst-pro flag: %w", err) + return &cliFlags, fmt.Errorf("failed to get install-kubefirst-pro flag: %w", err) } } + // Assign collected values to cliFlags + cliFlags = types.CliFlags{ + AlertsEmail: alertsEmailFlag, + CloudRegion: cloudRegionFlag, + ClusterName: cliFlags.ClusterName, + DNSProvider: dnsProviderFlag, + SubDomainName: subdomainFlag, + DomainName: domainNameFlag, + GitProtocol: gitProtocolFlag, + GitProvider: gitProviderFlag, + GithubOrg: githubOrgFlag, + GitlabGroup: gitlabGroupFlag, + GitopsTemplateBranch: gitopsTemplateBranchFlag, + GitopsTemplateURL: gitopsTemplateURLFlag, + UseTelemetry: cliFlags.UseTelemetry, + CloudProvider: cloudProvider, + NodeType: nodeTypeFlag, + NodeCount: nodeCountFlag, + InstallCatalogApps: installCatalogAppsFlag, + InstallKubefirstPro: installKubefirstProFlag, + AMIType: cliFlags.AMIType, + } + switch cloudProvider { + case "k3d": + ciFlag, err := cmd.Flags().GetBool("ci") + if err != nil { + return &cliFlags, fmt.Errorf("failed to get ci flag: %w", err) + } + + cliFlags.Ci = ciFlag + + clusterTypeFlag, err := cmd.Flags().GetString("cluster-type") + if err != nil { + return &cliFlags, fmt.Errorf("failed to get 'cluster-type' flag: %w", err) + } + cliFlags.ClusterType = clusterTypeFlag + case "aws": ecrFlag, err := cmd.Flags().GetBool("ecr") if err != nil { - return cliFlags, fmt.Errorf("failed to get ecr flag: %w", err) + return &cliFlags, fmt.Errorf("failed to get ecr flag: %w", err) } cliFlags.ECR = ecrFlag amiType, err := cmd.Flags().GetString("ami-type") if err != nil { - return cliFlags, fmt.Errorf("failed to get ami type: %w", err) + return &cliFlags, fmt.Errorf("failed to get ami type: %w", err) } cliFlags.AMIType = amiType case "azure": dnsAzureResourceGroup, err := cmd.Flags().GetString("dns-azure-resource-group") if err != nil { - return cliFlags, fmt.Errorf("failed to get dns-azure-resource-group flag: %w", err) + return &cliFlags, fmt.Errorf("failed to get dns-azure-resource-group flag: %w", err) } cliFlags.DNSAzureRG = dnsAzureResourceGroup case "google": googleProject, err := cmd.Flags().GetString("google-project") if err != nil { - return cliFlags, fmt.Errorf("failed to get google-project flag: %w", err) + return &cliFlags, fmt.Errorf("failed to get google-project flag: %w", err) } cliFlags.GoogleProject = googleProject @@ -101,58 +138,35 @@ case "k3s": k3sServersPrivateIps, err := cmd.Flags().GetStringSlice("servers-private-ips") if err != nil { - return cliFlags, fmt.Errorf("failed to get servers-private-ips flag: %w", err) + return &cliFlags, fmt.Errorf("failed to get servers-private-ips flag: %w", err) } cliFlags.K3sServersPrivateIPs = k3sServersPrivateIps k3sServersPublicIps, err := cmd.Flags().GetStringSlice("servers-public-ips") if err != nil { - return cliFlags, fmt.Errorf("failed to get servers-public-ips flag: %w", err) + return &cliFlags, fmt.Errorf("failed to get servers-public-ips flag: %w", err) } cliFlags.K3sServersPublicIPs = k3sServersPublicIps k3sSSHUserFlag, err := cmd.Flags().GetString("ssh-user") if err != nil { - return cliFlags, fmt.Errorf("failed to get ssh-user flag: %w", err) + return &cliFlags, fmt.Errorf("failed to get ssh-user flag: %w", err) } cliFlags.K3sSSHUser = k3sSSHUserFlag k3sSSHPrivateKeyFlag, err := cmd.Flags().GetString("ssh-privatekey") if err != nil { - return cliFlags, fmt.Errorf("failed to get ssh-privatekey flag: %w", err) + return &cliFlags, fmt.Errorf("failed to get ssh-privatekey flag: %w", err) } cliFlags.K3sSSHPrivateKey = k3sSSHPrivateKeyFlag K3sServersArgsFlags, err := cmd.Flags().GetStringSlice("servers-args") if err != nil { - return cliFlags, fmt.Errorf("failed to get servers-args flag: %w", err) + return &cliFlags, fmt.Errorf("failed to get servers-args flag: %w", err) } cliFlags.K3sServersArgs = K3sServersArgsFlags } - // Assign collected values to cliFlags - cliFlags = types.CliFlags{ - AlertsEmail: alertsEmailFlag, - CloudRegion: cloudRegionFlag, - ClusterName: cliFlags.ClusterName, - DNSProvider: dnsProviderFlag, - SubDomainName: subdomainFlag, - DomainName: domainNameFlag, - GitProtocol: gitProtocolFlag, - GitProvider: gitProviderFlag, - GithubOrg: githubOrgFlag, - GitlabGroup: gitlabGroupFlag, - GitopsTemplateBranch: gitopsTemplateBranchFlag, - GitopsTemplateURL: gitopsTemplateURLFlag, - UseTelemetry: cliFlags.UseTelemetry, - CloudProvider: cloudProvider, - NodeType: nodeTypeFlag, - NodeCount: nodeCountFlag, - InstallCatalogApps: installCatalogAppsFlag, - InstallKubefirstPro: installKubefirstProFlag, - AMIType: cliFlags.AMIType, - } - // Set Viper configurations viperConfigs := map[string]interface{}{ "flags.alerts-email": cliFlags.AlertsEmail, @@ -178,8 +192,8 @@ } if err := viper.WriteConfig(); err != nil { - return cliFlags, fmt.Errorf("failed to write configuration: %w", err) + return &cliFlags, fmt.Errorf("failed to write configuration: %w", err) } - return cliFlags, nil + return &cliFlags, nil } ++++++ kubefirst.obsinfo ++++++ --- /var/tmp/diff_new_pack.LUEcAf/_old 2025-02-11 21:27:09.260519672 +0100 +++ /var/tmp/diff_new_pack.LUEcAf/_new 2025-02-11 21:27:09.264519837 +0100 @@ -1,5 +1,5 @@ name: kubefirst -version: 2.8.1 -mtime: 1738698573 -commit: e77c784b054c4e9b6c96ac584ddaeb71a0be5a97 +version: 2.8.2 +mtime: 1739197753 +commit: f9c535ba5f075f11c96c6797841463188642d6fc ++++++ vendor.tar.gz ++++++ /work/SRC/openSUSE:Factory/kubefirst/vendor.tar.gz /work/SRC/openSUSE:Factory/.kubefirst.new.19470/vendor.tar.gz differ: char 5, line 1