Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package kubefirst for openSUSE:Factory checked in at 2023-12-15 21:47:46 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/kubefirst (Old) and /work/SRC/openSUSE:Factory/.kubefirst.new.25432 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kubefirst" Fri Dec 15 21:47:46 2023 rev:5 rq:1133067 version:2.3.7 Changes: -------- --- /work/SRC/openSUSE:Factory/kubefirst/kubefirst.changes 2023-11-02 20:21:36.624145850 +0100 +++ /work/SRC/openSUSE:Factory/.kubefirst.new.25432/kubefirst.changes 2023-12-15 21:47:57.951655923 +0100 @@ -1,0 +2,42 @@ +Thu Dec 14 10:53:15 UTC 2023 - ka...@b1-systems.de + +- Update to version 2.3.7: + no changelog available, only a diff + https://github.com/kubefirst/kubefirst/compare/v2.3.6...v2.3.7 + +------------------------------------------------------------------- +Thu Dec 14 10:47:58 UTC 2023 - ka...@b1-systems.de + +- Update to version 2.3.6: + * fix: git label and repo (#1957) + * chore: bump chart version (#1956) + * chore: adopt latest metrics-client (#1955) + * chore: bump chart version (#1954) + * feat: move digitial ocean out of beta (#1952) + * add node type and node count flags to aws, civo, google, and + vultr + * return telemetry event + * remove close func that is no longer there + * WIP. add node type/ node count to cli + * feat: remove the ability to run cluster zero on atlas (#1944) + * chore: put back dummy account information after tests (#1947) + * chore: add exit code for aws assume script (#1946) + * chore: add a script to assume AWS role more easily (#1945) + * chore: add a Terraform plan to create an admin role in AWS to + be assumed (#1943) + * chore: add a warning about creating 1 GH issue per + bug/suggestion. (#1939) + * fix: hanging unknown commands (#1930) + * chore: bump launch version (#1929) + * fix: k3d branding (#1926) + * last try to fix the new combobox on bug report (#1923) + * chore: fixing the bug template (#1922) + * add a question about gitops-template being a fork or not + (#1919) + * fix: update messaging for launch up success for something + clearer (#1912) + * fix: hanging commands (#1904) + * chore: add a 'none specific option for OS' (#1899) + * fix: improve getting KUBECONFIG command for Civo (#1886) + +------------------------------------------------------------------- Old: ---- kubefirst-2.3.5.obscpio New: ---- kubefirst-2.3.7.obscpio ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ kubefirst.spec ++++++ --- /var/tmp/diff_new_pack.PScyhn/_old 2023-12-15 21:47:59.171700517 +0100 +++ /var/tmp/diff_new_pack.PScyhn/_new 2023-12-15 21:47:59.171700517 +0100 @@ -19,7 +19,7 @@ %define __arch_install_post export NO_BRP_STRIP_DEBUG=true Name: kubefirst -Version: 2.3.5 +Version: 2.3.7 Release: 0 Summary: CLI for the KubeFirst GitOps Infrastructure & Application Delivery Platform License: MIT ++++++ _service ++++++ --- /var/tmp/diff_new_pack.PScyhn/_old 2023-12-15 21:47:59.199701540 +0100 +++ /var/tmp/diff_new_pack.PScyhn/_new 2023-12-15 21:47:59.203701687 +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.3.5</param> + <param name="revision">v2.3.7</param> <param name="versionformat">@PARENT_TAG@</param> <param name="changesgenerate">enable</param> <param name="versionrewrite-pattern">v(.*)</param> ++++++ _servicedata ++++++ --- /var/tmp/diff_new_pack.PScyhn/_old 2023-12-15 21:47:59.219702271 +0100 +++ /var/tmp/diff_new_pack.PScyhn/_new 2023-12-15 21:47:59.223702418 +0100 @@ -1,6 +1,6 @@ <servicedata> <service name="tar_scm"> <param name="url">https://github.com/kubefirst/kubefirst</param> - <param name="changesrevision">1567ee0b66bd4e6d8d767662e075024fa277da52</param></service></servicedata> + <param name="changesrevision">c816caa695e1569f83071544d9e98133f42649b5</param></service></servicedata> (No newline at EOF) ++++++ kubefirst-2.3.5.obscpio -> kubefirst-2.3.7.obscpio ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kubefirst-2.3.5/.github/ISSUE_TEMPLATE/bugs.yml new/kubefirst-2.3.7/.github/ISSUE_TEMPLATE/bugs.yml --- old/kubefirst-2.3.5/.github/ISSUE_TEMPLATE/bugs.yml 2023-11-01 20:52:58.000000000 +0100 +++ new/kubefirst-2.3.7/.github/ISSUE_TEMPLATE/bugs.yml 2023-12-14 06:14:10.000000000 +0100 @@ -1,5 +1,5 @@ name: Bug -description: Report an issue with kubefirst +description: Report an issue with kubefirst. Please create one GitHub issue per bug! labels: ["bug"] body: - type: markdown @@ -63,11 +63,21 @@ validations: required: true - type: dropdown + id: gitopstemplate + attributes: + label: Did you use a fork of `gitops-template`? + options: + - "No" + - "Yes" + validations: + required: true + - type: dropdown id: os attributes: label: Which Operating System? description: Please add the architecture in the issue description. If you selected "Others", please specify in the textarea. options: + - None specific - macOS - Linux - Windows diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kubefirst-2.3.5/.github/ISSUE_TEMPLATE/features.yml new/kubefirst-2.3.7/.github/ISSUE_TEMPLATE/features.yml --- old/kubefirst-2.3.5/.github/ISSUE_TEMPLATE/features.yml 2023-11-01 20:52:58.000000000 +0100 +++ new/kubefirst-2.3.7/.github/ISSUE_TEMPLATE/features.yml 2023-12-14 06:14:10.000000000 +0100 @@ -1,5 +1,5 @@ name: Feature Request -description: Share which feature you think kubefirst is missing +description: Share which feature you think kubefirst is missing. Please create one GitHub issue per feature idea! labels: ["feature"] body: - type: markdown diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kubefirst-2.3.5/cmd/aws/command.go new/kubefirst-2.3.7/cmd/aws/command.go --- old/kubefirst-2.3.5/cmd/aws/command.go 2023-11-01 20:52:58.000000000 +0100 +++ new/kubefirst-2.3.7/cmd/aws/command.go 2023-12-14 06:14:10.000000000 +0100 @@ -9,7 +9,9 @@ import ( "fmt" + "github.com/kubefirst/kubefirst-api/pkg/constants" "github.com/kubefirst/kubefirst/internal/common" + "github.com/kubefirst/kubefirst/internal/progress" "github.com/spf13/cobra" ) @@ -30,6 +32,8 @@ domainNameFlag string useTelemetryFlag bool ecrFlag bool + nodeTypeFlag string + nodeCountFlag string // RootCredentials copyArgoCDPasswordToClipboardFlag bool @@ -47,6 +51,14 @@ Use: "aws", Short: "kubefirst aws installation", Long: "kubefirst aws", + Run: func(cmd *cobra.Command, args []string) { + fmt.Println("To learn more about aws in kubefirst, run:") + fmt.Println(" kubefirst help") + + if progress.Progress != nil { + progress.Progress.Quit() + } + }, } // wire up new commands @@ -64,6 +76,8 @@ // PreRun: common.CheckDocker, } + awsDefaults := constants.GetCloudDefaults().Aws + // todo review defaults and update descriptions createCmd.Flags().StringVar(&alertsEmailFlag, "alerts-email", "", "email address for let's encrypt certificate notifications (required)") createCmd.MarkFlagRequired("alerts-email") @@ -71,6 +85,8 @@ createCmd.Flags().StringVar(&cloudRegionFlag, "cloud-region", "us-east-1", "the aws region to provision infrastructure in") createCmd.Flags().StringVar(&clusterNameFlag, "cluster-name", "kubefirst", "the name of the cluster to create") createCmd.Flags().StringVar(&clusterTypeFlag, "cluster-type", "mgmt", "the type of cluster to create (i.e. mgmt|workload)") + createCmd.Flags().StringVar(&nodeCountFlag, "node-count", awsDefaults.NodeCount, "the node count for the cluster") + createCmd.Flags().StringVar(&nodeTypeFlag, "node-type", awsDefaults.InstanceSize, "the instance size of the cluster to create") createCmd.Flags().StringVar(&dnsProviderFlag, "dns-provider", "aws", fmt.Sprintf("the dns provider - one of: %s", supportedDNSProviders)) createCmd.Flags().StringVar(&domainNameFlag, "domain-name", "", "the Route53/Cloudflare hosted zone name to use for DNS records (i.e. your-domain.com|subdomain.your-domain.com) (required)") createCmd.MarkFlagRequired("domain-name") diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kubefirst-2.3.5/cmd/beta.go new/kubefirst-2.3.7/cmd/beta.go --- old/kubefirst-2.3.5/cmd/beta.go 2023-11-01 20:52:58.000000000 +0100 +++ new/kubefirst-2.3.7/cmd/beta.go 2023-12-14 06:14:10.000000000 +0100 @@ -9,9 +9,9 @@ import ( "fmt" - "github.com/kubefirst/kubefirst/cmd/digitalocean" "github.com/kubefirst/kubefirst/cmd/google" "github.com/kubefirst/kubefirst/cmd/vultr" + "github.com/kubefirst/kubefirst/internal/progress" "github.com/spf13/cobra" ) @@ -23,13 +23,16 @@ Run: func(cmd *cobra.Command, args []string) { fmt.Println("To learn more about kubefirst, run:") fmt.Println(" kubefirst help") + + if progress.Progress != nil { + progress.Progress.Quit() + } }, } func init() { cobra.OnInitialize() betaCmd.AddCommand( - digitalocean.NewCommand(), google.NewCommand(), vultr.NewCommand(), ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kubefirst-2.3.5/cmd/civo/command.go new/kubefirst-2.3.7/cmd/civo/command.go --- old/kubefirst-2.3.5/cmd/civo/command.go 2023-11-01 20:52:58.000000000 +0100 +++ new/kubefirst-2.3.7/cmd/civo/command.go 2023-12-14 06:14:10.000000000 +0100 @@ -9,7 +9,9 @@ import ( "fmt" + "github.com/kubefirst/kubefirst-api/pkg/constants" "github.com/kubefirst/kubefirst/internal/common" + "github.com/kubefirst/kubefirst/internal/progress" "github.com/spf13/cobra" ) @@ -29,6 +31,8 @@ gitopsTemplateURLFlag string gitopsTemplateBranchFlag string useTelemetryFlag bool + nodeTypeFlag string + nodeCountFlag string // RootCredentials copyArgoCDPasswordToClipboardFlag bool @@ -47,6 +51,14 @@ Use: "civo", Short: "kubefirst civo installation", Long: "kubefirst civo", + Run: func(cmd *cobra.Command, args []string) { + fmt.Println("To learn more about civo in kubefirst, run:") + fmt.Println(" kubefirst civo --help") + + if progress.Progress != nil { + progress.Progress.Quit() + } + }, } // wire up new commands @@ -75,6 +87,8 @@ // PreRun: common.CheckDocker, } + civoDefaults := constants.GetCloudDefaults().Civo + // todo review defaults and update descriptions createCmd.Flags().StringVar(&alertsEmailFlag, "alerts-email", "", "email address for let's encrypt certificate notifications (required)") createCmd.MarkFlagRequired("alerts-email") @@ -82,6 +96,8 @@ createCmd.Flags().StringVar(&cloudRegionFlag, "cloud-region", "NYC1", "the civo region to provision infrastructure in") createCmd.Flags().StringVar(&clusterNameFlag, "cluster-name", "kubefirst", "the name of the cluster to create") createCmd.Flags().StringVar(&clusterTypeFlag, "cluster-type", "mgmt", "the type of cluster to create (i.e. mgmt|workload)") + createCmd.Flags().StringVar(&nodeCountFlag, "node-count", civoDefaults.NodeCount, "the node count for the cluster") + createCmd.Flags().StringVar(&nodeTypeFlag, "node-type", civoDefaults.InstanceSize, "the instance size of the cluster to create") createCmd.Flags().StringVar(&dnsProviderFlag, "dns-provider", "civo", fmt.Sprintf("the dns provider - one of: %s", supportedDNSProviders)) createCmd.Flags().StringVar(&domainNameFlag, "domain-name", "", "the Civo DNS Name to use for DNS records (i.e. your-domain.com|subdomain.your-domain.com) (required)") createCmd.MarkFlagRequired("domain-name") diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kubefirst-2.3.5/cmd/digitalocean/command.go new/kubefirst-2.3.7/cmd/digitalocean/command.go --- old/kubefirst-2.3.5/cmd/digitalocean/command.go 2023-11-01 20:52:58.000000000 +0100 +++ new/kubefirst-2.3.7/cmd/digitalocean/command.go 2023-12-14 06:14:10.000000000 +0100 @@ -9,7 +9,10 @@ import ( "fmt" + "github.com/kubefirst/kubefirst-api/pkg/constants" "github.com/kubefirst/kubefirst/internal/common" + "github.com/kubefirst/kubefirst/internal/progress" + "github.com/spf13/cobra" ) @@ -29,6 +32,8 @@ gitopsTemplateURLFlag string gitopsTemplateBranchFlag string useTelemetryFlag bool + nodeTypeFlag string + nodeCountFlag string // RootCredentials copyArgoCDPasswordToClipboardFlag bool @@ -47,6 +52,14 @@ Use: "digitalocean", Short: "kubefirst DigitalOcean installation", Long: "kubefirst digitalocean", + Run: func(cmd *cobra.Command, args []string) { + fmt.Println("To learn more about digital ocean in kubefirst, run:") + fmt.Println(" kubefirst digitalocean --help") + + if progress.Progress != nil { + progress.Progress.Quit() + } + }, } // on error, doesnt show helper/usage @@ -67,6 +80,8 @@ // PreRun: common.CheckDocker, } + doDefaults := constants.GetCloudDefaults().DigitalOcean + // todo review defaults and update descriptions createCmd.Flags().StringVar(&alertsEmailFlag, "alerts-email", "", "email address for let's encrypt certificate notifications (required)") createCmd.MarkFlagRequired("alerts-email") @@ -74,6 +89,8 @@ createCmd.Flags().StringVar(&cloudRegionFlag, "cloud-region", "nyc3", "the DigitalOcean region to provision infrastructure in") createCmd.Flags().StringVar(&clusterNameFlag, "cluster-name", "kubefirst", "the name of the cluster to create") createCmd.Flags().StringVar(&clusterTypeFlag, "cluster-type", "mgmt", "the type of cluster to create (i.e. mgmt|workload)") + createCmd.Flags().StringVar(&nodeCountFlag, "node-count", doDefaults.NodeCount, "the node count for the cluster") + createCmd.Flags().StringVar(&nodeTypeFlag, "node-type", doDefaults.InstanceSize, "the instance size of the cluster to create") createCmd.Flags().StringVar(&dnsProviderFlag, "dns-provider", "digitalocean", fmt.Sprintf("the dns provider - one of: %s", supportedDNSProviders)) createCmd.Flags().StringVar(&domainNameFlag, "domain-name", "", "the DigitalOcean DNS Name to use for DNS records (i.e. your-domain.com|subdomain.your-domain.com) (required)") createCmd.MarkFlagRequired("domain-name") diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kubefirst-2.3.5/cmd/google/command.go new/kubefirst-2.3.7/cmd/google/command.go --- old/kubefirst-2.3.5/cmd/google/command.go 2023-11-01 20:52:58.000000000 +0100 +++ new/kubefirst-2.3.7/cmd/google/command.go 2023-12-14 06:14:10.000000000 +0100 @@ -9,7 +9,9 @@ import ( "fmt" + "github.com/kubefirst/kubefirst-api/pkg/constants" "github.com/kubefirst/kubefirst/internal/common" + "github.com/kubefirst/kubefirst/internal/progress" "github.com/spf13/cobra" ) @@ -31,6 +33,8 @@ gitopsTemplateBranchFlag string useTelemetryFlag bool forceDestroyFlag bool + nodeTypeFlag string + nodeCountFlag string // RootCredentials copyArgoCDPasswordToClipboardFlag bool @@ -50,6 +54,14 @@ Use: "google", Short: "kubefirst Google installation", Long: "kubefirst google", + Run: func(cmd *cobra.Command, args []string) { + fmt.Println("To learn more about google in kubefirst, run:") + fmt.Println(" kubefirst beta google --help") + + if progress.Progress != nil { + progress.Progress.Quit() + } + }, } // on error, doesnt show helper/usage @@ -70,6 +82,8 @@ // PreRun: common.CheckDocker, } + googleDefaults := constants.GetCloudDefaults().Google + // todo review defaults and update descriptions createCmd.Flags().StringVar(&alertsEmailFlag, "alerts-email", "", "email address for let's encrypt certificate notifications (required)") createCmd.MarkFlagRequired("alerts-email") @@ -77,6 +91,8 @@ createCmd.Flags().StringVar(&cloudRegionFlag, "cloud-region", "us-east1", "the GCP region to provision infrastructure in") createCmd.Flags().StringVar(&clusterNameFlag, "cluster-name", "kubefirst", "the name of the cluster to create") createCmd.Flags().StringVar(&clusterTypeFlag, "cluster-type", "mgmt", "the type of cluster to create (i.e. mgmt|workload)") + createCmd.Flags().StringVar(&nodeCountFlag, "node-count", googleDefaults.NodeCount, "the node count for the cluster") + createCmd.Flags().StringVar(&nodeTypeFlag, "node-type", googleDefaults.InstanceSize, "the instance size of the cluster to create") createCmd.Flags().StringVar(&dnsProviderFlag, "dns-provider", "google", fmt.Sprintf("the dns provider - one of: %s", supportedDNSProviders)) createCmd.Flags().StringVar(&domainNameFlag, "domain-name", "", "the GCP DNS Name to use for DNS records (i.e. your-domain.com|subdomain.your-domain.com) (required)") createCmd.MarkFlagRequired("domain-name") diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kubefirst-2.3.5/cmd/k3d/command.go new/kubefirst-2.3.7/cmd/k3d/command.go --- old/kubefirst-2.3.5/cmd/k3d/command.go 2023-11-01 20:52:58.000000000 +0100 +++ new/kubefirst-2.3.7/cmd/k3d/command.go 2023-12-14 06:14:10.000000000 +0100 @@ -9,6 +9,7 @@ import ( "fmt" + "github.com/kubefirst/kubefirst/internal/progress" "github.com/spf13/cobra" ) @@ -46,6 +47,14 @@ Use: "k3d", Short: "kubefirst k3d installation", Long: "kubefirst k3d", + Run: func(cmd *cobra.Command, args []string) { + fmt.Println("To learn more about k3d in kubefirst, run:") + fmt.Println(" kubefirst k3d --help") + + if progress.Progress != nil { + progress.Progress.Quit() + } + }, } // wire up new commands diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kubefirst-2.3.5/cmd/k3d/create.go new/kubefirst-2.3.7/cmd/k3d/create.go --- old/kubefirst-2.3.5/cmd/k3d/create.go 2023-11-01 20:52:58.000000000 +0100 +++ new/kubefirst-2.3.7/cmd/k3d/create.go 2023-12-14 06:14:10.000000000 +0100 @@ -328,8 +328,6 @@ } segClient := segment.InitClient(clusterId, clusterTypeFlag, gitProviderFlag) - defer segClient.Client.Close() - telemetry.SendEvent(segClient, telemetry.ClusterInstallStarted, "") // Progress output progressPrinter.AddTracker("preflight-checks", "Running preflight checks", 5) @@ -397,8 +395,6 @@ // Check git credentials executionControl := viper.GetBool(fmt.Sprintf("kubefirst-checks.%s-credentials", config.GitProvider)) if !executionControl { - segClient := segment.InitClient(clusterId, clusterTypeFlag, gitProviderFlag) - defer segClient.Client.Close() telemetry.SendEvent(segClient, telemetry.GitCredentialsCheckStarted, "") if len(cGitToken) == 0 { msg := fmt.Sprintf( @@ -433,15 +429,11 @@ var gitopsRepoURL string executionControl = viper.GetBool("kubefirst-checks.kbot-setup") if !executionControl { - segClient := segment.InitClient(clusterId, clusterTypeFlag, gitProviderFlag) - defer segClient.Client.Close() telemetry.SendEvent(segClient, telemetry.KbotSetupStarted, "") log.Info().Msg("creating an ssh key pair for your new cloud infrastructure") sshPrivateKey, sshPublicKey, err = internalssh.CreateSshKeyPair() if err != nil { - segClient := segment.InitClient(clusterId, clusterTypeFlag, gitProviderFlag) - defer segClient.Client.Close() telemetry.SendEvent(segClient, telemetry.KbotSetupFailed, err.Error()) return err } @@ -590,8 +582,6 @@ // //* create teams and repositories in github executionControl = viper.GetBool("kubefirst-checks.terraform-apply-github") if !executionControl { - segClient := segment.InitClient(clusterId, clusterTypeFlag, gitProviderFlag) - defer segClient.Client.Close() telemetry.SendEvent(segClient, telemetry.GitTerraformApplyStarted, "") log.Info().Msg("Creating GitHub resources with Terraform") @@ -613,8 +603,6 @@ } err := terraform.InitApplyAutoApprove(config.TerraformClient, tfEntrypoint, tfEnvs) if err != nil { - segClient := segment.InitClient(clusterId, clusterTypeFlag, gitProviderFlag) - defer segClient.Client.Close() msg := fmt.Sprintf("error creating github resources with terraform %s: %s", tfEntrypoint, err) telemetry.SendEvent(segClient, telemetry.GitTerraformApplyFailed, msg) return fmt.Errorf(msg) @@ -633,8 +621,6 @@ // //* create teams and repositories in gitlab executionControl = viper.GetBool("kubefirst-checks.terraform-apply-gitlab") if !executionControl { - segClient := segment.InitClient(clusterId, clusterTypeFlag, gitProviderFlag) - defer segClient.Client.Close() telemetry.SendEvent(segClient, telemetry.GitTerraformApplyStarted, "") log.Info().Msg("Creating GitLab resources with Terraform") @@ -657,8 +643,6 @@ err := terraform.InitApplyAutoApprove(config.TerraformClient, tfEntrypoint, tfEnvs) if err != nil { msg := fmt.Sprintf("error creating gitlab resources with terraform %s: %s", tfEntrypoint, err) - segClient := segment.InitClient(clusterId, clusterTypeFlag, gitProviderFlag) - defer segClient.Client.Close() telemetry.SendEvent(segClient, telemetry.GitTerraformApplyFailed, msg) return fmt.Errorf(msg) } @@ -683,8 +667,6 @@ executionControl = viper.GetBool("kubefirst-checks.gitops-repo-pushed") if !executionControl { - segClient := segment.InitClient(clusterId, clusterTypeFlag, gitProviderFlag) - defer segClient.Client.Close() telemetry.SendEvent(segClient, telemetry.GitopsRepoPushStarted, "") gitopsRepo, err := git.PlainOpen(config.GitopsDir) @@ -716,8 +698,6 @@ ) if err != nil { msg := fmt.Sprintf("error pushing detokenized gitops repository to remote %s: %s", config.DestinationGitopsRepoGitURL, err) - segClient := segment.InitClient(clusterId, clusterTypeFlag, gitProviderFlag) - defer segClient.Client.Close() telemetry.SendEvent(segClient, telemetry.GitopsRepoPushFailed, msg) if !strings.Contains(msg, "already up-to-date") { log.Panic().Msg(msg) @@ -733,8 +713,6 @@ ) if err != nil { msg := fmt.Sprintf("error pushing detokenized metaphor repository to remote %s: %s", config.DestinationMetaphorRepoURL, err) - segClient := segment.InitClient(clusterId, clusterTypeFlag, gitProviderFlag) - defer segClient.Client.Close() telemetry.SendEvent(segClient, telemetry.GitopsRepoPushFailed, msg) if !strings.Contains(msg, "already up-to-date") { log.Panic().Msg(msg) @@ -759,8 +737,6 @@ progressPrinter.SetupProgress(progressPrinter.TotalOfTrackers(), false) if !viper.GetBool("kubefirst-checks.create-k3d-cluster") { - segClient := segment.InitClient(clusterId, clusterTypeFlag, gitProviderFlag) - defer segClient.Client.Close() telemetry.SendEvent(segClient, telemetry.CloudTerraformApplyStarted, "") log.Info().Msg("Creating k3d cluster") @@ -770,8 +746,6 @@ msg := fmt.Sprintf("error creating k3d resources with k3d client %s: %s", config.K3dClient, err) viper.Set("kubefirst-checks.create-k3d-cluster-failed", true) viper.WriteConfig() - segClient := segment.InitClient(clusterId, clusterTypeFlag, gitProviderFlag) - defer segClient.Client.Close() telemetry.SendEvent(segClient, telemetry.CloudTerraformApplyFailed, msg) return fmt.Errorf(msg) } @@ -910,8 +884,6 @@ //* install argocd executionControl = viper.GetBool("kubefirst-checks.argocd-install") if !executionControl { - segClient := segment.InitClient(clusterId, clusterTypeFlag, gitProviderFlag) - defer segClient.Client.Close() telemetry.SendEvent(segClient, telemetry.ArgoCDInstallStarted, "") log.Info().Msgf("installing argocd") @@ -927,8 +899,6 @@ } err = kcfg.ApplyObjects("", output) if err != nil { - segClient := segment.InitClient(clusterId, clusterTypeFlag, gitProviderFlag) - defer segClient.Client.Close() telemetry.SendEvent(segClient, telemetry.ArgoCDInstallFailed, err.Error()) return err } @@ -1031,8 +1001,6 @@ //* argocd sync registry and start sync waves executionControl = viper.GetBool("kubefirst-checks.argocd-create-registry") if !executionControl { - segClient := segment.InitClient(clusterId, clusterTypeFlag, gitProviderFlag) - defer segClient.Client.Close() telemetry.SendEvent(segClient, telemetry.CreateRegistryStarted, "") argocdClient, err := argocdapi.NewForConfig(kcfg.RestConfig) if err != nil { @@ -1082,8 +1050,6 @@ executionControl = viper.GetBool("kubefirst-checks.vault-initialized") if !executionControl { - segClient := segment.InitClient(clusterId, clusterTypeFlag, gitProviderFlag) - defer segClient.Client.Close() telemetry.SendEvent(segClient, telemetry.VaultInitializationStarted, "") // Initialize and unseal Vault @@ -1111,8 +1077,6 @@ _, err = k8s.WaitForJobComplete(kcfg.Clientset, job, 240) if err != nil { msg := fmt.Sprintf("could not run vault unseal job: %s", err) - segClient := segment.InitClient(clusterId, clusterTypeFlag, gitProviderFlag) - defer segClient.Client.Close() telemetry.SendEvent(segClient, telemetry.VaultInitializationFailed, msg) log.Fatal().Msg(msg) } @@ -1216,8 +1180,6 @@ //* configure vault with terraform executionControl = viper.GetBool("kubefirst-checks.terraform-apply-vault") if !executionControl { - segClient := segment.InitClient(clusterId, clusterTypeFlag, gitProviderFlag) - defer segClient.Client.Close() telemetry.SendEvent(segClient, telemetry.VaultTerraformApplyStarted, "") tfEnvs := map[string]string{} @@ -1259,8 +1221,6 @@ tfEntrypoint := config.GitopsDir + "/terraform/vault" err := terraform.InitApplyAutoApprove(config.TerraformClient, tfEntrypoint, tfEnvs) if err != nil { - segClient := segment.InitClient(clusterId, clusterTypeFlag, gitProviderFlag) - defer segClient.Client.Close() telemetry.SendEvent(segClient, telemetry.VaultTerraformApplyStarted, err.Error()) return err } @@ -1281,8 +1241,6 @@ executionControl = viper.GetBool("kubefirst-checks.terraform-apply-users") if !executionControl { - segClient := segment.InitClient(clusterId, clusterTypeFlag, gitProviderFlag) - defer segClient.Client.Close() telemetry.SendEvent(segClient, telemetry.UsersTerraformApplyStarted, "") log.Info().Msg("applying users terraform") @@ -1300,8 +1258,6 @@ tfEntrypoint := config.GitopsDir + "/terraform/users" err := terraform.InitApplyAutoApprove(config.TerraformClient, tfEntrypoint, tfEnvs) if err != nil { - segClient := segment.InitClient(clusterId, clusterTypeFlag, gitProviderFlag) - defer segClient.Client.Close() telemetry.SendEvent(segClient, telemetry.UsersTerraformApplyStarted, err.Error()) return err } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kubefirst-2.3.5/cmd/k3d/mkcert.go new/kubefirst-2.3.7/cmd/k3d/mkcert.go --- old/kubefirst-2.3.5/cmd/k3d/mkcert.go 2023-11-01 20:52:58.000000000 +0100 +++ new/kubefirst-2.3.7/cmd/k3d/mkcert.go 2023-12-14 06:14:10.000000000 +0100 @@ -9,6 +9,7 @@ import ( "fmt" + "github.com/kubefirst/kubefirst/internal/progress" "github.com/kubefirst/runtime/pkg/helpers" "github.com/kubefirst/runtime/pkg/k3d" "github.com/kubefirst/runtime/pkg/k8s" @@ -51,6 +52,7 @@ } log.Infof("Certificate generated. You can use it with an app by setting `tls.secretName: %s-tls` on a Traefik IngressRoute.", appNameFlag) + progress.Progress.Quit() return nil } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kubefirst-2.3.5/cmd/k3d/root-credentials.go new/kubefirst-2.3.7/cmd/k3d/root-credentials.go --- old/kubefirst-2.3.5/cmd/k3d/root-credentials.go 2023-11-01 20:52:58.000000000 +0100 +++ new/kubefirst-2.3.7/cmd/k3d/root-credentials.go 2023-12-14 06:14:10.000000000 +0100 @@ -10,6 +10,7 @@ "fmt" "github.com/kubefirst/kubefirst-api/pkg/credentials" + "github.com/kubefirst/kubefirst/internal/progress" "github.com/kubefirst/runtime/pkg/k3d" "github.com/kubefirst/runtime/pkg/k8s" "github.com/spf13/cobra" @@ -63,5 +64,7 @@ return err } + progress.Progress.Quit() + return nil } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kubefirst-2.3.5/cmd/k3d/vault.go new/kubefirst-2.3.7/cmd/k3d/vault.go --- old/kubefirst-2.3.5/cmd/k3d/vault.go 2023-11-01 20:52:58.000000000 +0100 +++ new/kubefirst-2.3.7/cmd/k3d/vault.go 2023-12-14 06:14:10.000000000 +0100 @@ -14,6 +14,7 @@ "time" vaultapi "github.com/hashicorp/vault/api" + "github.com/kubefirst/kubefirst/internal/progress" "github.com/kubefirst/runtime/pkg/helpers" "github.com/kubefirst/runtime/pkg/k3d" "github.com/kubefirst/runtime/pkg/k8s" @@ -112,6 +113,8 @@ return fmt.Errorf("vault is already unsealed") } + progress.Progress.Quit() + return nil } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kubefirst-2.3.5/cmd/letsencrypt.go new/kubefirst-2.3.7/cmd/letsencrypt.go --- old/kubefirst-2.3.5/cmd/letsencrypt.go 2023-11-01 20:52:58.000000000 +0100 +++ new/kubefirst-2.3.7/cmd/letsencrypt.go 2023-12-14 06:14:10.000000000 +0100 @@ -10,6 +10,7 @@ "fmt" "github.com/kubefirst/kubefirst-api/pkg/certificates" + "github.com/kubefirst/kubefirst/internal/progress" "github.com/spf13/cobra" ) @@ -41,6 +42,7 @@ if err != nil { fmt.Println(err) } + progress.Progress.Quit() }, } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kubefirst-2.3.5/cmd/reset.go new/kubefirst-2.3.7/cmd/reset.go --- old/kubefirst-2.3.5/cmd/reset.go 2023-11-01 20:52:58.000000000 +0100 +++ new/kubefirst-2.3.7/cmd/reset.go 2023-12-14 06:14:10.000000000 +0100 @@ -12,6 +12,7 @@ "strconv" "time" + "github.com/kubefirst/kubefirst/internal/progress" "github.com/kubefirst/runtime/pkg" "github.com/kubefirst/runtime/pkg/helpers" "github.com/kubefirst/runtime/pkg/progressPrinter" @@ -131,6 +132,7 @@ progressPrinter.IncrementTracker("removing-platform-content", 1) time.Sleep(time.Second * 2) + progress.Progress.Quit() return nil } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kubefirst-2.3.5/cmd/root.go new/kubefirst-2.3.7/cmd/root.go --- old/kubefirst-2.3.5/cmd/root.go 2023-11-01 20:52:58.000000000 +0100 +++ new/kubefirst-2.3.7/cmd/root.go 2023-12-14 06:14:10.000000000 +0100 @@ -12,8 +12,10 @@ "github.com/kubefirst/kubefirst/cmd/aws" "github.com/kubefirst/kubefirst/cmd/civo" + "github.com/kubefirst/kubefirst/cmd/digitalocean" "github.com/kubefirst/kubefirst/cmd/k3d" "github.com/kubefirst/kubefirst/internal/common" + "github.com/kubefirst/kubefirst/internal/progress" "github.com/kubefirst/runtime/configs" "github.com/kubefirst/runtime/pkg/progressPrinter" @@ -34,6 +36,7 @@ Run: func(cmd *cobra.Command, args []string) { fmt.Println("To learn more about kubefirst, run:") fmt.Println(" kubefirst help") + progress.Progress.Quit() }, } @@ -59,6 +62,7 @@ betaCmd, aws.NewCommand(), civo.NewCommand(), + digitalocean.NewCommand(), k3d.NewCommand(), k3d.LocalCommandAlias(), LaunchCommand(), diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kubefirst-2.3.5/cmd/vultr/command.go new/kubefirst-2.3.7/cmd/vultr/command.go --- old/kubefirst-2.3.5/cmd/vultr/command.go 2023-11-01 20:52:58.000000000 +0100 +++ new/kubefirst-2.3.7/cmd/vultr/command.go 2023-12-14 06:14:10.000000000 +0100 @@ -9,7 +9,9 @@ import ( "fmt" + "github.com/kubefirst/kubefirst-api/pkg/constants" "github.com/kubefirst/kubefirst/internal/common" + "github.com/kubefirst/kubefirst/internal/progress" "github.com/spf13/cobra" ) @@ -29,6 +31,8 @@ gitopsTemplateURLFlag string gitopsTemplateBranchFlag string useTelemetryFlag bool + nodeTypeFlag string + nodeCountFlag string // RootCredentials copyArgoCDPasswordToClipboardFlag bool @@ -48,6 +52,14 @@ Use: "vultr", Short: "kubefirst Vultr installation", Long: "kubefirst vultr", + Run: func(cmd *cobra.Command, args []string) { + fmt.Println("To learn more about vultr in kubefirst, run:") + fmt.Println(" kubefirst beta vultr --help") + + if progress.Progress != nil { + progress.Progress.Quit() + } + }, } // on error, doesnt show helper/usage @@ -68,6 +80,8 @@ // PreRun: common.CheckDocker, } + vultrDefaults := constants.GetCloudDefaults().Vultr + // todo review defaults and update descriptions createCmd.Flags().StringVar(&alertsEmailFlag, "alerts-email", "", "email address for let's encrypt certificate notifications (required)") createCmd.MarkFlagRequired("alerts-email") @@ -75,6 +89,8 @@ createCmd.Flags().StringVar(&cloudRegionFlag, "cloud-region", "ewr", "the Vultr region to provision infrastructure in") createCmd.Flags().StringVar(&clusterNameFlag, "cluster-name", "kubefirst", "the name of the cluster to create") createCmd.Flags().StringVar(&clusterTypeFlag, "cluster-type", "mgmt", "the type of cluster to create (i.e. mgmt|workload)") + createCmd.Flags().StringVar(&nodeCountFlag, "node-count", vultrDefaults.NodeCount, "the node count for the cluster") + createCmd.Flags().StringVar(&nodeTypeFlag, "node-type", vultrDefaults.InstanceSize, "the instance size of the cluster to create") createCmd.Flags().StringVar(&dnsProviderFlag, "dns-provider", "vultr", fmt.Sprintf("the dns provider - one of: %s", supportedDNSProviders)) createCmd.Flags().StringVar(&domainNameFlag, "domain-name", "", "the Vultr DNS Name to use for DNS records (i.e. your-domain.com|subdomain.your-domain.com) (required)") createCmd.MarkFlagRequired("domain-name") diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kubefirst-2.3.5/go.mod new/kubefirst-2.3.7/go.mod --- old/kubefirst-2.3.5/go.mod 2023-11-01 20:52:58.000000000 +0100 +++ new/kubefirst-2.3.7/go.mod 2023-12-14 06:14:10.000000000 +0100 @@ -9,22 +9,22 @@ github.com/charmbracelet/bubbles v0.16.1 github.com/charmbracelet/bubbletea v0.24.2 github.com/charmbracelet/lipgloss v0.8.0 - github.com/chromedp/chromedp v0.8.7 - github.com/civo/civogo v0.3.28 + github.com/civo/civogo v0.3.53 github.com/denisbrodbeck/machineid v1.0.1 github.com/dustin/go-humanize v1.0.1 github.com/go-git/go-git/v5 v5.6.1 github.com/hashicorp/vault/api v1.9.0 - github.com/kubefirst/kubefirst-api v0.0.4 - github.com/kubefirst/metrics-client v0.2.1 - github.com/kubefirst/runtime v0.3.28 + github.com/kubefirst/kubefirst-api v0.1.8 + github.com/kubefirst/metrics-client v0.3.0 + github.com/kubefirst/runtime v0.3.35 github.com/rs/zerolog v1.29.1 github.com/segmentio/analytics-go v3.1.0+incompatible github.com/sirupsen/logrus v1.9.0 github.com/spf13/cobra v1.7.0 github.com/spf13/viper v1.15.0 go.mongodb.org/mongo-driver v1.10.3 - k8s.io/api v0.26.2 + golang.org/x/exp v0.0.0-20230321023759-10a507213a29 + k8s.io/api v0.27.1 k8s.io/apimachinery v0.27.1 k8s.io/client-go v11.0.1-0.20190816222228-6d55c1b1f1ca+incompatible ) @@ -80,8 +80,6 @@ github.com/caarlos0/sshmarshal v0.1.0 // indirect github.com/cespare/xxhash/v2 v2.2.0 // indirect github.com/chai2010/gettext-go v0.1.0 // indirect - github.com/chromedp/cdproto v0.0.0-20230109101555-6b041c6303cc // indirect - github.com/chromedp/sysutil v1.0.0 // indirect github.com/cloudflare/circl v1.1.0 // indirect github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect github.com/digitalocean/godo v1.98.0 // indirect @@ -106,9 +104,6 @@ github.com/go-test/deep v1.1.0 // indirect github.com/go-yaml/yaml v2.1.0+incompatible // indirect github.com/gobwas/glob v0.2.3 // indirect - github.com/gobwas/httphead v0.1.0 // indirect - github.com/gobwas/pool v0.2.1 // indirect - github.com/gobwas/ws v1.1.0 // indirect github.com/gofrs/flock v0.7.0 // indirect github.com/golang-jwt/jwt/v4 v4.4.3 // indirect github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect @@ -179,7 +174,6 @@ go.opencensus.io v0.24.0 // indirect go.starlark.net v0.0.0-20200306205701-8dd3e2ee1dd5 // indirect golang.org/x/crypto v0.12.0 // indirect - golang.org/x/exp v0.0.0-20230321023759-10a507213a29 // indirect golang.org/x/mod v0.12.0 // indirect golang.org/x/sync v0.3.0 // indirect golang.org/x/tools v0.12.0 // indirect diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kubefirst-2.3.5/go.sum new/kubefirst-2.3.7/go.sum --- old/kubefirst-2.3.5/go.sum 2023-11-01 20:52:58.000000000 +0100 +++ new/kubefirst-2.3.7/go.sum 2023-12-14 06:14:10.000000000 +0100 @@ -251,19 +251,13 @@ github.com/charmbracelet/lipgloss v0.8.0 h1:IS00fk4XAHcf8uZKc3eHeMUTCxUH6NkaTrdyCQk84RU= github.com/charmbracelet/lipgloss v0.8.0/go.mod h1:p4eYUZZJ/0oXTuCQKFF8mqyKCz0ja6y+7DniDDw5KKU= github.com/checkpoint-restore/go-criu/v5 v5.3.0/go.mod h1:E/eQpaFtUKGOOSEBZgmKAcn+zUUwWxqcaKZlF54wK8E= -github.com/chromedp/cdproto v0.0.0-20230109101555-6b041c6303cc h1:pgBIUnhrsNh0Xi+8qUdHIP/nljIVz3laeRv23eqr45M= -github.com/chromedp/cdproto v0.0.0-20230109101555-6b041c6303cc/go.mod h1:GKljq0VrfU4D5yc+2qA6OVr8pmO/MBbPEWqWQ/oqGEs= -github.com/chromedp/chromedp v0.8.7 h1:dYOYc5ynTBzwSLOi+1IfgHwPr8r2BqV48l/RC+3OuJ0= -github.com/chromedp/chromedp v0.8.7/go.mod h1:iL+ywnwk3eG3EVXV1ackXBMNzdEh3Ye/KHvQkq1KRKU= -github.com/chromedp/sysutil v1.0.0 h1:+ZxhTpfpZlmchB58ih/LBHX52ky7w2VhQVKQMucy3Ic= -github.com/chromedp/sysutil v1.0.0/go.mod h1:kgWmDdq8fTzXYcKIBqIYvRRTnYb9aNS9moAV0xufSww= github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= github.com/cilium/ebpf v0.4.0/go.mod h1:4tRaxcgiL706VnOzHOdBlY8IEAIdxINsQBcU4xJJXRs= github.com/cilium/ebpf v0.7.0/go.mod h1:/oI2+1shJiTGAMgl6/RgJr36Eo1jzrRcAWbcXO2usCA= -github.com/civo/civogo v0.3.28 h1:DDjzAf9X7zvF4SNkGPC2ZAvTqsHAXSCl7ZNGnb9nr4s= -github.com/civo/civogo v0.3.28/go.mod h1:SbS06e0JPgIF27r1sLC97gjU1xWmONQeHgzF1hfLpak= +github.com/civo/civogo v0.3.53 h1:PYqwTwt9YmeBRKMzfuTXBSPtE0WIsbLzhxD3V36bVlo= +github.com/civo/civogo v0.3.53/go.mod h1:54lv/FOf7gh6wE9ZwVdw4yBehk8V1CvU9aWa4v6dvW0= github.com/clbanning/x2j v0.0.0-20191024224557-825249438eec/go.mod h1:jMjuTZXRI4dUb/I5gc9Hdhagfvm9+RyrPryS/auMzxE= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= github.com/cloudflare/circl v1.1.0 h1:bZgT/A+cikZnKIwn7xL2OBj012Bmvho/o6RpRvv3GKY= @@ -462,6 +456,7 @@ github.com/go-redis/redis/v8 v8.11.5/go.mod h1:gREzHqY1hg6oD9ngVRbLStwAWKhA0FEgq8Jd4h5lpwo= github.com/go-sql-driver/mysql v1.4.0/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= +github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0 h1:p104kn46Q8WdvHunIJ9dAyjPVtrBPhSr3KT2yUst43I= github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE= github.com/go-test/deep v1.1.0 h1:WOcxcdHcvdgThNXjw0t76K42FXTU7HpNQWHpA2HHNlg= github.com/go-test/deep v1.1.0/go.mod h1:5C2ZWiW0ErCdrYzpqxLbTX7MG14M9iiw8DgHncVwcsE= @@ -469,12 +464,6 @@ github.com/go-yaml/yaml v2.1.0+incompatible/go.mod h1:w2MrLa16VYP0jy6N7M5kHaCkaLENm+P+Tv+MfurjSw0= github.com/gobwas/glob v0.2.3 h1:A4xDbljILXROh+kObIiy5kIaPYD8e96x1tgBhUI5J+Y= github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8= -github.com/gobwas/httphead v0.1.0 h1:exrUm0f4YX0L7EBwZHuCF4GDp8aJfVeBrlLQrs6NqWU= -github.com/gobwas/httphead v0.1.0/go.mod h1:O/RXo79gxV8G+RqlR/otEwx4Q36zl9rqC5u12GKvMCM= -github.com/gobwas/pool v0.2.1 h1:xfeeEhW7pwmX8nuLVlqbzVc7udMDrwetjEv+TZIz1og= -github.com/gobwas/pool v0.2.1/go.mod h1:q8bcK0KcYlCgd9e7WYLm9LpyS+YeLd8JVDW6WezmKEw= -github.com/gobwas/ws v1.1.0 h1:7RFti/xnNkMJnrK7D1yQ/iCIB5OrrY/54/H930kIbHA= -github.com/gobwas/ws v1.1.0/go.mod h1:nzvNcVha5eUziGrbxFCo6qFIojQHjJV5cLYIbezhfL0= github.com/godbus/dbus/v5 v5.0.3/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/godbus/dbus/v5 v5.0.6/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= @@ -568,6 +557,7 @@ github.com/google/pprof v0.0.0-20201218002935-b9804c9f04c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20210122040257-d980be63207e/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20210226084205-cbba55b83ad5/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20210407192527-94a9f03dee38 h1:yAJXTCF9TqKcTiHJAE8dj7HMvPfh66eeA2JYW7eFpSE= github.com/google/pprof v0.0.0-20210407192527-94a9f03dee38/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= github.com/google/s2a-go v0.1.4 h1:1kZ/sQM3srePvKs3tXAvQzo66XfcReoqFpIpIccE7Oc= @@ -731,14 +721,15 @@ github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= -github.com/kubefirst/kubefirst-api v0.0.4 h1:YhPR9L14s7ZlLbKM3ODHaXIq+r5LO7qesBW0e4/2w58= -github.com/kubefirst/kubefirst-api v0.0.4/go.mod h1:RCxLtyupPlpkOYYGFKnbbPCpacEHvlHzEW3Rn77r7XU= -github.com/kubefirst/metrics-client v0.2.1 h1:KCzeeKQCq13ksj+l8cTrtHWKtraYTTnwWks2X4+xdFI= -github.com/kubefirst/metrics-client v0.2.1/go.mod h1:GR7wsMcyYhd+EU67PeuMCBYFE6OJ7P/j5OI5BLOoRMc= -github.com/kubefirst/runtime v0.3.28 h1:Ac9NzqX+H0fa4tUauOMrjbtpSFnNluLYmSk6v5u++G4= -github.com/kubefirst/runtime v0.3.28/go.mod h1:9egAgF5cF594mIzra5nTB1kfE57Hr/Nvl79tjLsAWCQ= +github.com/kubefirst/kubefirst-api v0.1.8 h1:+5AT9pDj4AuH2GCW43Z9U/frEEyemqeZOm3zKGHd6no= +github.com/kubefirst/kubefirst-api v0.1.8/go.mod h1:Euz7+acib+o9DTkJ3MXRVtPL1rI+vGFZditYG2aXQCY= +github.com/kubefirst/metrics-client v0.2.8 h1:JfaeiBifZD/DpyYW2QVHcrhH/KWA98OmM+7c7M12qMc= +github.com/kubefirst/metrics-client v0.2.8/go.mod h1:GR7wsMcyYhd+EU67PeuMCBYFE6OJ7P/j5OI5BLOoRMc= +github.com/kubefirst/metrics-client v0.3.0 h1:zCug82pEzeWhHhpeYQvdhytRNDxrLxX18dPQ5PSxY3s= +github.com/kubefirst/metrics-client v0.3.0/go.mod h1:GR7wsMcyYhd+EU67PeuMCBYFE6OJ7P/j5OI5BLOoRMc= +github.com/kubefirst/runtime v0.3.35 h1:wn430Irf0E1vc3X0WX3lYBpyhQ5TN6xxMcargILA9uI= +github.com/kubefirst/runtime v0.3.35/go.mod h1:0CnYy+8JTG+/0f3QlkTQJqTT654Su6JXk30OufFVY98= github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc= -github.com/ledongthuc/pdf v0.0.0-20220302134840-0c2507a12d80 h1:6Yzfa6GP0rIo/kULo2bwGEkFvCePZ3qHDDTC3/J9Swo= github.com/libopenstorage/openstorage v1.0.0/go.mod h1:Sp1sIObHjat1BeXhfMqLZ14wnOzEhNx2YQedreMcUyc= github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de h1:9TO3cAIGXtEhnIaL+V+BEER86oLrvS+kWobKpbJuye0= github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de/go.mod h1:zAbeS9B/r2mtpb6U+EI2rYA5OAXxsYw6wTamcNW+zcE= @@ -885,15 +876,33 @@ github.com/onsi/ginkgo v1.16.4/go.mod h1:dX+/inL/fNMqNlz0e9LfyB9TswhZpCVdJM/Z6Vvnwo0= github.com/onsi/ginkgo v1.16.5 h1:8xi0RTUf59SOSfEtZMvwTvXYMzG4gV23XVHOZiXNtnE= github.com/onsi/ginkgo/v2 v2.1.3/go.mod h1:vw5CSIxN1JObi/U8gcbwft7ZxR2dgaR70JSE3/PpL4c= -github.com/onsi/ginkgo/v2 v2.1.4 h1:GNapqRSid3zijZ9H77KrgVG4/8KqiyRsxcSxe+7ApXY= +github.com/onsi/ginkgo/v2 v2.1.4/go.mod h1:um6tUpWM/cxCK3/FK8BXqEiUMUwRgSM4JXG47RKZmLU= +github.com/onsi/ginkgo/v2 v2.1.6/go.mod h1:MEH45j8TBi6u9BMogfbp0stKC5cdGjumZj5Y7AG4VIk= +github.com/onsi/ginkgo/v2 v2.3.0/go.mod h1:Eew0uilEqZmIEZr8JrvYlvOM7Rr6xzTmMV8AyFNU9d0= +github.com/onsi/ginkgo/v2 v2.4.0/go.mod h1:iHkDK1fKGcBoEHT5W7YBq4RFWaQulw+caOMkAt4OrFo= +github.com/onsi/ginkgo/v2 v2.5.0/go.mod h1:Luc4sArBICYCS8THh8v3i3i5CuSZO+RaQRaJoeNwomw= +github.com/onsi/ginkgo/v2 v2.7.0/go.mod h1:yjiuMwPokqY1XauOgju45q3sJt6VzQ/Fict1LFVcsAo= +github.com/onsi/ginkgo/v2 v2.8.1/go.mod h1:N1/NbDngAFcSLdyZ+/aYTYGSlq9qMCS/cNKGJjy+csc= +github.com/onsi/ginkgo/v2 v2.9.0/go.mod h1:4xkjoL/tZv4SMWeww56BU5kAt19mVB47gTWxmrTcxyk= +github.com/onsi/ginkgo/v2 v2.9.1 h1:zie5Ly042PD3bsCvsSOPvRnFwyo3rKe64TJlD6nu0mk= +github.com/onsi/ginkgo/v2 v2.9.1/go.mod h1:FEcmzVcCHl+4o9bQZVab+4dC9+j+91t2FHSzmGAPfuo= github.com/onsi/gomega v0.0.0-20170829124025-dcabb60a477c/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= github.com/onsi/gomega v1.15.0/go.mod h1:cIuvLEne0aoVhAgh/O6ac0Op8WWw9H6eYCriF+tEHG0= github.com/onsi/gomega v1.17.0/go.mod h1:HnhC7FXeEQY45zxNK3PPoIUhzk/80Xly9PcubAlGdZY= -github.com/onsi/gomega v1.19.0 h1:4ieX6qQjPP/BfC3mpsAtIGGlxTWPeA3Inl/7DtXw1tw= github.com/onsi/gomega v1.19.0/go.mod h1:LY+I3pBVzYsTBU1AnDwOSxaYi9WoWiqgwooUqq9yPro= +github.com/onsi/gomega v1.20.1/go.mod h1:DtrZpjmvpn2mPm4YWQa0/ALMDj9v4YxLgojwPeREyVo= +github.com/onsi/gomega v1.21.1/go.mod h1:iYAIXgPSaDHak0LCMA+AWBpIKBr8WZicMxnE8luStNc= +github.com/onsi/gomega v1.22.1/go.mod h1:x6n7VNe4hw0vkyYUM4mjIXx3JbLiPaBPNgB7PRQ1tuM= +github.com/onsi/gomega v1.24.0/go.mod h1:Z/NWtiqwBrwUt4/2loMmHL63EDLnYHmVbuBpDr2vQAg= +github.com/onsi/gomega v1.24.1/go.mod h1:3AOiACssS3/MajrniINInwbfOOtfZvplPzuRSmvt1jM= +github.com/onsi/gomega v1.26.0/go.mod h1:r+zV744Re+DiYCIPRlYOTxn0YkOLcAnW8k1xXdMPGhM= +github.com/onsi/gomega v1.27.1/go.mod h1:aHX5xOykVYzWOV4WqQy0sy8BQptgukenXpCXfadcIAw= +github.com/onsi/gomega v1.27.3/go.mod h1:5vG284IBtfDAmDyrK+eGyZmUgUlmi+Wngqo557cZ6Gw= +github.com/onsi/gomega v1.27.4 h1:Z2AnStgsdSayCMDiCU42qIz+HLqEPcgiOCXjAU/w+8E= +github.com/onsi/gomega v1.27.4/go.mod h1:riYq/GJKh8hhoM01HN6Vmuy93AarCXCBGpvFDK3q3fQ= github.com/op/go-logging v0.0.0-20160315200505-970db520ece7/go.mod h1:HzydrMdWErDVzsI23lYNej1Htcns9BCg93Dk0bBINWk= github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= @@ -914,7 +923,6 @@ github.com/openzipkin/zipkin-go v0.1.6/go.mod h1:QgAqvLzwWbR/WpD4A3cGpPtJrZXNIiJc5AZX7/PBEpw= github.com/openzipkin/zipkin-go v0.2.1/go.mod h1:NaW6tEwdmWMaCDZzg8sh+IBNOxHMPnhQw8ySjnjRyN4= github.com/openzipkin/zipkin-go v0.2.2/go.mod h1:NaW6tEwdmWMaCDZzg8sh+IBNOxHMPnhQw8ySjnjRyN4= -github.com/orisano/pixelmatch v0.0.0-20220722002657-fb0b55479cde h1:x0TT0RDC7UhAVbbWWBzr41ElhJx5tXPWkIHA2HWPRuw= github.com/otiai10/copy v1.7.0 h1:hVoPiN+t+7d2nzzwMiDHPSOogsWAStewq3TwU05+clE= github.com/otiai10/copy v1.7.0/go.mod h1:rmRl6QPdJj6EiUqXQ/4Nn2lLXoNQjFCQbbNrxgc/t3U= github.com/otiai10/curr v0.0.0-20150429015615-9b4961190c95/go.mod h1:9qAhocn7zKJG+0mI8eUu6xqkFDYS2kb2saOteoSB3cE= @@ -1293,6 +1301,9 @@ golang.org/x/mod v0.6.0-dev.0.20220106191415-9b9b3d81d5e3/go.mod h1:3p9vT2HGsQu2K1YbXdKPJLVgG5VJdoTa1poYQBtP1AY= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/mod v0.6.0/go.mod h1:4mET923SAdbXp2ki8ey+zGs1SLqsuM2Y0uvdZR/fUNI= +golang.org/x/mod v0.7.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.9.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/mod v0.12.0 h1:rmsUpXtvNzj340zd98LZ4KntptpfRHwpFOHG188oHXc= golang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -1351,12 +1362,17 @@ golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= +golang.org/x/net v0.0.0-20220425223048-2871e0cb64e4/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.0.0-20220826154423-83b083e8dc8b/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= golang.org/x/net v0.0.0-20221002022538-bcab6841153b/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco= +golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY= +golang.org/x/net v0.3.0/go.mod h1:MBQ8lrhLObU/6UmLb4fmbmk5OcyYmqtbGd/9yIeKjEE= +golang.org/x/net v0.5.0/go.mod h1:DivGGAXEgPSlEBzxGzZI+ZLohi+xUj054jfeKui00ws= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= +golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= golang.org/x/net v0.14.0 h1:BONx9s002vGdD9umnlX1Po8vOZmrgH34qlHcD1MfK14= golang.org/x/net v0.14.0/go.mod h1:PpSgVXXLK0OxS0F31C1/tv6XNguvCrnXIDrFMspZIUI= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= @@ -1387,6 +1403,7 @@ golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.3.0 h1:ftCYgMx6zT/asHUrPw8BLLscYtGznsLAnjq5RH9P66E= golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -1448,7 +1465,6 @@ golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201201145000-ef89a241ccb3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20201207223542-d4d67f95c62d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210104204734-6f8348627aad/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210112080510-489259a85091/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -1480,6 +1496,8 @@ golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220114195835-da31bd327af9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220209214540-3681064d5158/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220319134239-a9b59b0215f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220422013727-9388b58f7150/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220704084225-05e143d24a9e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -1489,7 +1507,9 @@ golang.org/x/sys v0.0.0-20220825204002-c680a09ffe64/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.4.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.11.0 h1:eG7RXZHdqOJ1i+0lgLgCpSXAp6M3LYlAo6osgSi0xOM= @@ -1498,7 +1518,11 @@ golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.0.0-20220722155259-a9ba230a4035/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= +golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc= +golang.org/x/term v0.3.0/go.mod h1:q750SLmJuPmVoN1blW3UFBPREJfb1KmY3vwxfr+nFDA= +golang.org/x/term v0.4.0/go.mod h1:9P2UbLfCdcvo3p/nzKvsmas4TnlujnuoV9hGgYzW1lQ= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= +golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U= golang.org/x/term v0.11.0 h1:F9tnn/DA/Im8nCwm+fX+1/eBwi4qFjRT++MhtVC4ZX0= golang.org/x/term v0.11.0/go.mod h1:zC9APTIj3jG3FdV/Ons+XE1riIZXG4aZ4GTHiPZJPIU= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -1512,7 +1536,10 @@ golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ= golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/text v0.5.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/text v0.6.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/text v0.12.0 h1:k+n5B8goJNdU7hSvEtMUz3d1Q6D/XW4COJSJR6fN0mc= golang.org/x/text v0.12.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= @@ -1593,8 +1620,12 @@ golang.org/x/tools v0.1.2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.10-0.20220218145154-897bd77cd717/go.mod h1:Uh6Zz+xoGYZom868N8YTex3t7RhtHDBrE8Gzo9bV56E= +golang.org/x/tools v0.1.10/go.mod h1:Uh6Zz+xoGYZom868N8YTex3t7RhtHDBrE8Gzo9bV56E= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/tools v0.2.0/go.mod h1:y4OqIKeOV/fWJetJ8bXPU1sEVniLMIyDAZWeHdV+NTA= +golang.org/x/tools v0.4.0/go.mod h1:UE5sM2OK9E/d67R0ANs2xJizIymRP5gJU295PvKXxjQ= +golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= +golang.org/x/tools v0.7.0/go.mod h1:4pg6aUX35JBAogB10C9AtvVL+qowtN4pT3CGSQex14s= golang.org/x/tools v0.12.0 h1:YW6HUoUmYBpwSgyaGaZq1fHjrBjX1rlpZ54T6mu2kss= golang.org/x/tools v0.12.0/go.mod h1:Sc0INKfu04TlqNoRA1hgpFZbhYXHPr4V5DzpSBTPqQM= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kubefirst-2.3.5/internal/common/common.go new/kubefirst-2.3.7/internal/common/common.go --- old/kubefirst-2.3.5/internal/common/common.go 2023-11-01 20:52:58.000000000 +0100 +++ new/kubefirst-2.3.7/internal/common/common.go 2023-12-14 06:14:10.000000000 +0100 @@ -175,7 +175,7 @@ successMessage := ` ### -#### :tada: Success` + "`Your K3D kubefirst platform has been destroyed.`" + ` +#### :tada: Success` + "`Your k3d kubefirst platform has been destroyed.`" + ` ### :blue_book: To delete a management cluster please see documentation: https://docs.kubefirst.io/` + cloudProvider + `/deprovision diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kubefirst-2.3.5/internal/launch/cmd.go new/kubefirst-2.3.7/internal/launch/cmd.go --- old/kubefirst-2.3.5/internal/launch/cmd.go 2023-11-01 20:52:58.000000000 +0100 +++ new/kubefirst-2.3.7/internal/launch/cmd.go 2023-12-14 06:14:10.000000000 +0100 @@ -17,17 +17,14 @@ "github.com/kubefirst/kubefirst/internal/cluster" "github.com/kubefirst/kubefirst/internal/helm" - k3dint "github.com/kubefirst/kubefirst/internal/k3d" "github.com/kubefirst/kubefirst/internal/progress" "github.com/kubefirst/runtime/configs" "github.com/kubefirst/runtime/pkg" - "github.com/kubefirst/runtime/pkg/db" "github.com/kubefirst/runtime/pkg/downloadManager" "github.com/kubefirst/runtime/pkg/k3d" "github.com/kubefirst/runtime/pkg/k8s" "github.com/rs/zerolog/log" "github.com/spf13/viper" - "golang.org/x/term" "gopkg.in/yaml.v2" v1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -77,49 +74,9 @@ progress.AddStep("Initialize database") if !dbInitialized { - dbDestination := k3dint.MongoDestinationChooser(inCluster) - switch dbDestination { - case "atlas": - fmt.Println("MongoDB Atlas Host String: ") - fmt.Scanln(&dbHost) - - fmt.Printf("\nMongoDB Atlas Username: ") - fmt.Scanln(&dbUser) - - fmt.Printf("\nMongoDB Atlas Password: ") - dbPasswordInput, err := term.ReadPassword(0) - if err != nil { - progress.Error(fmt.Sprintf("error parsing password: %s", err)) - } - - dbPassword = string(dbPasswordInput) - dbHost = strings.Replace(dbHost, "mongodb+srv://", "", -1) - - // Verify database connectivity - mdbcl := db.Connect(&db.MongoDBClientParameters{ - HostType: dbDestination, - Host: dbHost, - Username: dbUser, - Password: dbPassword, - }) - err = mdbcl.TestDatabaseConnection() - if err != nil { - progress.Error(fmt.Sprintf("Error validating Mongo credentials: %s", err)) - } - mdbcl.Client.Disconnect(mdbcl.Context) - - log.Info().Msg("MongoDB Atlas credentials verified") - - viper.Set("launch.database-destination", "atlas") - viper.Set("launch.database-initialized", true) - viper.WriteConfig() - case "in-cluster": - viper.Set("launch.database-destination", "in-cluster") - viper.Set("launch.database-initialized", true) - viper.WriteConfig() - default: - progress.Error(fmt.Sprintf("%s is not a valid option", dbDestination)) - } + viper.Set("launch.database-destination", "in-cluster") + viper.Set("launch.database-initialized", true) + viper.WriteConfig() } else { log.Info().Msg("Database has already been initialized, skipping") } @@ -541,6 +498,7 @@ if err != nil { progress.Error(fmt.Sprintf("error creating kubernetes secret for cert: %s", err)) } + time.Sleep(5 * time.Second) log.Info().Msg("Created Kubernetes Secret for certificate") } @@ -570,7 +528,7 @@ if !inCluster { progress.Success(` ### -#### :tada: Success` + "`Kubefirst Cluster is now up and running`") +#### :tada: Success` + "`Your kubefirst platform provisioner is ready`") } } @@ -616,7 +574,7 @@ if !inCluster { successMsg := ` ### -#### :tada: Success` + "`Your K3D kubefirst platform has been destroyed.`" +#### :tada: Success` + "`Your k3d kubefirst platform has been destroyed.`" progress.Success(successMsg) } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kubefirst-2.3.5/internal/launch/constants.go new/kubefirst-2.3.7/internal/launch/constants.go --- old/kubefirst-2.3.5/internal/launch/constants.go 2023-11-01 20:52:58.000000000 +0100 +++ new/kubefirst-2.3.7/internal/launch/constants.go 2023-12-14 06:14:10.000000000 +0100 @@ -11,7 +11,7 @@ helmChartName = "kubefirst" helmChartRepoName = "kubefirst" helmChartRepoURL = "https://charts.kubefirst.com" - helmChartVersion = "2.3.5" + helmChartVersion = "2.3.7" namespace = "kubefirst" secretName = "kubefirst-initial-secrets" ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kubefirst-2.3.5/internal/progress/message.go new/kubefirst-2.3.7/internal/progress/message.go --- old/kubefirst-2.3.5/internal/progress/message.go 2023-11-01 20:52:58.000000000 +0100 +++ new/kubefirst-2.3.7/internal/progress/message.go 2023-12-14 06:14:10.000000000 +0100 @@ -53,13 +53,19 @@ func DisplayLogHints(estimatedTime int) { logFile := viper.GetString("k1-paths.log-file") cloudProvider := viper.GetString("kubefirst.cloud-provider") + + documentationLink := "https://docs.kubefirst.io/" + if cloudProvider != "" { + documentationLink = documentationLink + cloudProvider + `/quick-start/install/cli` + } + header := ` ## # Welcome to Kubefirst ### :bulb: To view verbose logs run below command in new terminal: ` + fmt.Sprintf("##### **tail -f -n +1 %s**", logFile) + ` -### :blue_book: Documentation: https://docs.kubefirst.io/` + cloudProvider + `/quick-start/install/cli +### :blue_book: Documentation: ` + documentationLink + ` ### :alarm_clock: Estimated time:` + fmt.Sprintf("`%s minutes` \n\n", strconv.Itoa(estimatedTime)) @@ -73,13 +79,19 @@ func DisplaySuccessMessage(cluster types.Cluster) successMsg { cloudCliKubeconfig := "" + gitProviderLabel := "GitHub" + + if cluster.GitProvider == "gitlab" { + gitProviderLabel = "GitLab" + } + switch cluster.CloudProvider { case "aws": cloudCliKubeconfig = fmt.Sprintf("aws eks update-kubeconfig --name %s --region %s", cluster.ClusterName, cluster.CloudRegion) break case "civo": - cloudCliKubeconfig = fmt.Sprintf("civo kubernetes config %s > ~/.kube/config", cluster.ClusterName) + cloudCliKubeconfig = fmt.Sprintf("civo kubernetes config %s --save", cluster.ClusterName) break case "digitalocean": @@ -105,10 +117,10 @@ ### :bulb: To retrieve root credentials for your Kubefirst platform run: ##### kubefirst ` + cluster.CloudProvider + ` root-credentials -## GitLab +## ` + fmt.Sprintf("`%s `", gitProviderLabel) + ` ### Git Owner ` + fmt.Sprintf("`%s`", cluster.GitAuth.Owner) + ` ### Repos ` + fmt.Sprintf("`https://%s.com/%s/gitops` \n\n", cluster.GitProvider, cluster.GitAuth.Owner) + - fmt.Sprintf("` https://%s.com/%s/gitops`", cluster.GitProvider, cluster.GitAuth.Owner) + ` + fmt.Sprintf("` https://%s.com/%s/metaphor`", cluster.GitProvider, cluster.GitAuth.Owner) + ` ## Kubefirst Console ### URL ` + fmt.Sprintf("`https://kubefirst.%s`", cluster.DomainName) + ` ## Argo CD diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kubefirst-2.3.5/internal/progress/progress.go new/kubefirst-2.3.7/internal/progress/progress.go --- old/kubefirst-2.3.5/internal/progress/progress.go 2023-11-01 20:52:58.000000000 +0100 +++ new/kubefirst-2.3.7/internal/progress/progress.go 2023-12-14 06:14:10.000000000 +0100 @@ -59,7 +59,7 @@ return m, tea.Quit case successMsg: - m.successMessage = msg.message + m.successMessage = msg.message + "\n\n" return m, tea.Quit case startProvision: @@ -108,11 +108,13 @@ completedSteps = completedSteps + renderMessage(fmt.Sprintf(":white_check_mark: %s", m.completedSteps[i])) } - return m.header + "\n\n" + - completedSteps + - m.nextStep + "\n\n" + - m.error + "\n\n" + if m.header != "" { + return m.header + "\n\n" + + completedSteps + + m.nextStep + "\n\n" + + m.error + "\n\n" + } } - return m.successMessage + "\n\n" + return m.successMessage } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kubefirst-2.3.5/internal/segment/segment.go new/kubefirst-2.3.7/internal/segment/segment.go --- old/kubefirst-2.3.5/internal/segment/segment.go 2023-11-01 20:52:58.000000000 +0100 +++ new/kubefirst-2.3.7/internal/segment/segment.go 2023-12-14 06:14:10.000000000 +0100 @@ -7,38 +7,32 @@ "github.com/kubefirst/kubefirst/configs" "github.com/kubefirst/metrics-client/pkg/telemetry" "github.com/kubefirst/runtime/pkg/k3d" - - "github.com/segmentio/analytics-go" ) const ( kubefirstClient string = "api" ) -func InitClient(clusterId, clusterType, gitProvider string) *telemetry.SegmentClient { +func InitClient(clusterId, clusterType, gitProvider string) telemetry.TelemetryEvent { machineID, _ := machineid.ID() - sc := analytics.New(telemetry.SegmentIOWriteKey) - c := telemetry.SegmentClient{ - TelemetryEvent: telemetry.TelemetryEvent{ - CliVersion: configs.K1Version, - CloudProvider: k3d.CloudProvider, - ClusterID: clusterId, - ClusterType: clusterType, - DomainName: k3d.DomainName, - GitProvider: gitProvider, - InstallMethod: "kubefirst-launch", - KubefirstClient: kubefirstClient, - KubefirstTeam: os.Getenv("KUBEFIRST_TEAM"), - KubefirstTeamInfo: os.Getenv("KUBEFIRST_TEAM_INFO"), - MachineID: machineID, - ErrorMessage: "", - UserId: machineID, - MetricName: telemetry.ClusterInstallStarted, - }, - Client: sc, + c := telemetry.TelemetryEvent{ + CliVersion: configs.K1Version, + CloudProvider: k3d.CloudProvider, + ClusterID: clusterId, + ClusterType: clusterType, + DomainName: k3d.DomainName, + GitProvider: gitProvider, + InstallMethod: "kubefirst-launch", + KubefirstClient: kubefirstClient, + KubefirstTeam: os.Getenv("KUBEFIRST_TEAM"), + KubefirstTeamInfo: os.Getenv("KUBEFIRST_TEAM_INFO"), + MachineID: machineID, + ErrorMessage: "", + MetricName: telemetry.ClusterInstallCompleted, + UserId: machineID, } - return &c + return c } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kubefirst-2.3.5/internal/types/flags.go new/kubefirst-2.3.7/internal/types/flags.go --- old/kubefirst-2.3.5/internal/types/flags.go 2023-11-01 20:52:58.000000000 +0100 +++ new/kubefirst-2.3.7/internal/types/flags.go 2023-12-14 06:14:10.000000000 +0100 @@ -24,4 +24,6 @@ GoogleProject string UseTelemetry bool Ecr bool + NodeType string + NodeCount string } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kubefirst-2.3.5/internal/utilities/flags.go new/kubefirst-2.3.7/internal/utilities/flags.go --- old/kubefirst-2.3.5/internal/utilities/flags.go 2023-11-01 20:52:58.000000000 +0100 +++ new/kubefirst-2.3.7/internal/utilities/flags.go 2023-12-14 06:14:10.000000000 +0100 @@ -92,6 +92,18 @@ return cliFlags, err } + nodeTypeFlag, err := cmd.Flags().GetString("node-type") + if err != nil { + progress.Error(err.Error()) + return cliFlags, err + } + + nodeCountFlag, err := cmd.Flags().GetString("node-count") + if err != nil { + progress.Error(err.Error()) + return cliFlags, err + } + if cloudProvider == "aws" { ecrFlag, err := cmd.Flags().GetBool("ecr") if err != nil { @@ -125,6 +137,8 @@ cliFlags.GitopsTemplateURL = gitopsTemplateURLFlag cliFlags.UseTelemetry = useTelemetryFlag cliFlags.CloudProvider = cloudProvider + cliFlags.NodeType = nodeTypeFlag + cliFlags.NodeCount = nodeCountFlag viper.Set("flags.alerts-email", cliFlags.AlertsEmail) viper.Set("flags.cluster-name", cliFlags.ClusterName) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kubefirst-2.3.5/internal/utilities/utilities.go new/kubefirst-2.3.7/internal/utilities/utilities.go --- old/kubefirst-2.3.5/internal/utilities/utilities.go 2023-11-01 20:52:58.000000000 +0100 +++ new/kubefirst-2.3.7/internal/utilities/utilities.go 2023-12-14 06:14:10.000000000 +0100 @@ -12,6 +12,7 @@ "fmt" "io/ioutil" "os" + "strconv" "time" apiTypes "github.com/kubefirst/kubefirst-api/pkg/types" @@ -133,6 +134,11 @@ kubefirstTeam = "false" } + stringToIntNodeCount, err := strconv.Atoi(cliFlags.NodeCount) + if err != nil { + log.Info().Msg("Unable to convert node count to type string") + } + cl := apiTypes.ClusterDefinition{ AdminEmail: viper.GetString("flags.alerts-email"), ClusterName: viper.GetString("flags.cluster-name"), @@ -140,6 +146,8 @@ CloudRegion: viper.GetString("flags.cloud-region"), DomainName: domainName, Type: "mgmt", + NodeType: cliFlags.NodeType, + NodeCount: stringToIntNodeCount, GitopsTemplateURL: cliFlags.GitopsTemplateURL, GitopsTemplateBranch: cliFlags.GitopsTemplateBranch, GitProvider: gitProvider, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kubefirst-2.3.5/main.go new/kubefirst-2.3.7/main.go --- old/kubefirst-2.3.5/main.go 2023-11-01 20:52:58.000000000 +0100 +++ new/kubefirst-2.3.7/main.go 2023-12-14 06:14:10.000000000 +0100 @@ -13,6 +13,7 @@ "time" "github.com/rs/zerolog" + "golang.org/x/exp/slices" "github.com/rs/zerolog/log" @@ -24,6 +25,21 @@ ) func main() { + argsWithProg := os.Args + + bubbleTeaBlacklist := []string{"completion", "help", "--help", "-h"} + canRunBubbleTea := true + + if argsWithProg != nil { + for _, arg := range argsWithProg { + isBlackListed := slices.Contains(bubbleTeaBlacklist, arg) + + if isBlackListed { + canRunBubbleTea = false + } + } + } + now := time.Now() epoch := now.Unix() @@ -85,11 +101,16 @@ stdLog.Panicf("unable to set log-file-location, error is: %s", err) } - progress.InitializeProgressTerminal() + if canRunBubbleTea { + progress.InitializeProgressTerminal() + + go func() { + cmd.Execute() + }() - go func() { + progress.Progress.Run() + } else { cmd.Execute() - }() + } - progress.Progress.Run() } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kubefirst-2.3.5/tools/aws-assume-role.sh new/kubefirst-2.3.7/tools/aws-assume-role.sh --- old/kubefirst-2.3.5/tools/aws-assume-role.sh 1970-01-01 01:00:00.000000000 +0100 +++ new/kubefirst-2.3.7/tools/aws-assume-role.sh 2023-12-14 06:14:10.000000000 +0100 @@ -0,0 +1,67 @@ +#!/bin/bash + +# +# This script helps you assume the AssumedAdmin role you either created manually or using the Terraform plan from ws-create-role.tf +# +# Requirement: aws-cli installed (see https://github.com/aws/aws-cli) +# +# Replace the AWS account ID `111111111111` in the `ROLE` variable with yours. If you give the admin a different name than `AssumedAdmin`, please update it also. +# +# Ensure that the default values fit your needs (i.e., role session name, duration of assume role...) +# +# Before running the script, ensure you have credentials. configure with the AWS CLI. To do so, run +# aws configure +# +# To run this script +# ./aws-assume-role.sh +# + +# +# Change the AWS account ID & role name +# +ROLE="arn:aws:iam::111111111111:role/AssumedAdmin" + +# +# You can leave the rest of thre script as is +# + +# An identifier for the assumed role session: you can change it if you want. +ROLE_SESSION_NAME="AssumedAdmin-kubefirst" + +# Colors for formatting +YELLOW="\033[1;93m" +NOFORMAT="\033[0m" +BOLD="\033[1m" + +# Backup the previous credentials +if [ -f "~/.aws/credentials" ] +then + mv ~/.aws/credentials ~/.aws/credentials.bak +fi + +# Unset previously set AWS access environment variables +unset AWS_ACCESS_KEY_ID +unset AWS_SECRET_ACCESS_KEY +unset AWS_SESSION_TOKEN + +# Retrieving the connected user +USER=$(aws sts get-caller-identity | jq -r .Arn | cut -d'/' -f 2) + +if [ $(echo "$USER" | grep -v "Unable to locate credentials") ] +then + # Assuming the new role for 12 hours. You can change the `--duration-seconds` to shorter timeout for security reason. + JSON=$(aws sts assume-role --role-arn "${ROLE}" --role-session-name "${ROLE_SESSION_NAME}" --duration-seconds 43200) + export AWS_ACCESS_KEY_ID=$(echo $JSON | jq -r .Credentials.AccessKeyId) + export AWS_SECRET_ACCESS_KEY=$(echo $JSON | jq -r .Credentials.SecretAccessKey) + export AWS_SESSION_TOKEN=$(echo $JSON | jq -r .Credentials.SessionToken) + unset JSON + + # Display useful information for UI installation + echo -e "\n${YELLOW}Started session for user ${NOFORMAT}${BOLD}${USER}${NOFORMAT}${YELLOW} assuming ${NOFORMAT}${BOLD}${ROLE}${NOFORMAT}\n" + echo -e "${BOLD}AWS_ACCESS_KEY_ID: ${NOFORMAT} ${AWS_ACCESS_KEY_ID}" + echo -e "${BOLD}AWS_SECRET_ACCESS_KEY:${NOFORMAT} ${AWS_SECRET_ACCESS_KEY}" + echo -e "${BOLD}AWS_SESSION_TOKEN: ${NOFORMAT} ${AWS_SESSION_TOKEN}" +else + # The script wasn't successful + exit 1 +fi diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kubefirst-2.3.5/tools/aws-create-role.tf new/kubefirst-2.3.7/tools/aws-create-role.tf --- old/kubefirst-2.3.5/tools/aws-create-role.tf 1970-01-01 01:00:00.000000000 +0100 +++ new/kubefirst-2.3.7/tools/aws-create-role.tf 2023-12-14 06:14:10.000000000 +0100 @@ -0,0 +1,67 @@ +# +# Terraform plan to create the administrator role that will be assumed +# +# Please read the comment within the file (not just this one) carefully to prevent any security issues within your organization! +# +# Replace the AWS account ID `111111111111` with yours. +# +# Ensure that the default values fit your needs (i.e., AWS region, role permission...) +# +# To run this plan: +# terraform init +# terraform apply +# + +terraform { + required_providers { + aws = { + source = "hashicorp/aws" + version = "4.67.0" + } + } +} + +provider "aws" { + region = "us-east-1" +} + +resource "aws_iam_role" "assumed_admin" { + + # The role name + name = "AssumedAdmin" + + # The default session time is 1 hour, this set it to 12 hours for convenience. It's less annoying, but less secure, feel free to remove or change! + max_session_duration = 43200 + + # + # Below is a permissive role not intended for long-term use. + # + # It grants all IAM users of the AWS account the ability to assume the role `AssumedAdmin` (or whatever name you gave it), which we created and give the `AdministratorAccess` policy. + # + # The value `:root` grants assume to the whole account but you can replace it with your individual IAM ARN, or your role if appropriate. + # + # As a reminder, the value `111111111111` below should be replaced with your AWS account ID. + # + # Anyone with IAM can assume the role while it's in place like this. You can scope it down to your specific user, or across accounts, or whatever you need. + # + assume_role_policy = <<EOF + { + "Version": "2012-10-17", + "Statement": [ + { + "Sid": "AllowAssumeRoleToIamUsers", + "Effect": "Allow", + "Principal": { + "AWS": "arn:aws:iam::111111111111:root" + }, + "Action": "sts:AssumeRole" + } + ] + } + EOF +} + +resource "aws_iam_role_policy_attachment" "assumed_admin_admin_policy" { + role = aws_iam_role.assumed_admin.name + policy_arn = "arn:aws:iam::aws:policy/AdministratorAccess" +} ++++++ kubefirst.obsinfo ++++++ --- /var/tmp/diff_new_pack.PScyhn/_old 2023-12-15 21:47:59.431710021 +0100 +++ /var/tmp/diff_new_pack.PScyhn/_new 2023-12-15 21:47:59.435710168 +0100 @@ -1,5 +1,5 @@ name: kubefirst -version: 2.3.5 -mtime: 1698868378 -commit: 1567ee0b66bd4e6d8d767662e075024fa277da52 +version: 2.3.7 +mtime: 1702530850 +commit: c816caa695e1569f83071544d9e98133f42649b5 ++++++ vendor.tar.gz ++++++ /work/SRC/openSUSE:Factory/kubefirst/vendor.tar.gz /work/SRC/openSUSE:Factory/.kubefirst.new.25432/vendor.tar.gz differ: char 5, line 1