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-10-25 18:03:23 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/kubefirst (Old) and /work/SRC/openSUSE:Factory/.kubefirst.new.24901 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kubefirst" Wed Oct 25 18:03:23 2023 rev:2 rq:1120152 version:2.3.2 Changes: -------- --- /work/SRC/openSUSE:Factory/kubefirst/kubefirst.changes 2023-10-24 20:09:16.794537316 +0200 +++ /work/SRC/openSUSE:Factory/.kubefirst.new.24901/kubefirst.changes 2023-10-25 18:04:06.205027387 +0200 @@ -1,0 +2,13 @@ +Wed Oct 25 04:50:42 UTC 2023 - [email protected] + +- Update to version 2.3.2: + * fix: styles json (#1868) + +------------------------------------------------------------------- +Wed Oct 25 04:38:56 UTC 2023 - [email protected] + +- Update to version 2.3.1: + * pin cli to 2.3.1 (#1867) + * chore: remove previous E2E tests (#1860) + +------------------------------------------------------------------- Old: ---- kubefirst-2.3.0.obscpio New: ---- kubefirst-2.3.2.obscpio ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ kubefirst.spec ++++++ --- /var/tmp/diff_new_pack.ewflrL/_old 2023-10-25 18:04:07.381066939 +0200 +++ /var/tmp/diff_new_pack.ewflrL/_new 2023-10-25 18:04:07.381066939 +0200 @@ -19,7 +19,7 @@ %define __arch_install_post export NO_BRP_STRIP_DEBUG=true Name: kubefirst -Version: 2.3.0 +Version: 2.3.2 Release: 0 Summary: CLI for the KubeFirst GitOps Infrastructure & Application Delivery Platform License: MIT ++++++ _service ++++++ --- /var/tmp/diff_new_pack.ewflrL/_old 2023-10-25 18:04:07.413068016 +0200 +++ /var/tmp/diff_new_pack.ewflrL/_new 2023-10-25 18:04:07.417068150 +0200 @@ -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.0</param> + <param name="revision">v2.3.2</param> <param name="versionformat">@PARENT_TAG@</param> <param name="changesgenerate">enable</param> <param name="versionrewrite-pattern">v(.*)</param> ++++++ _servicedata ++++++ --- /var/tmp/diff_new_pack.ewflrL/_old 2023-10-25 18:04:07.433068688 +0200 +++ /var/tmp/diff_new_pack.ewflrL/_new 2023-10-25 18:04:07.437068822 +0200 @@ -1,6 +1,6 @@ <servicedata> <service name="tar_scm"> <param name="url">https://github.com/kubefirst/kubefirst</param> - <param name="changesrevision">476c9db41292307fa11d93f2090bcf123a7333b2</param></service></servicedata> + <param name="changesrevision">155d0304b9c5ac032c430c91be7463ce6854f6e5</param></service></servicedata> (No newline at EOF) ++++++ kubefirst-2.3.0.obscpio -> kubefirst-2.3.2.obscpio ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kubefirst-2.3.0/Taskfile.yaml new/kubefirst-2.3.2/Taskfile.yaml --- old/kubefirst-2.3.0/Taskfile.yaml 2023-10-24 09:02:39.000000000 +0200 +++ new/kubefirst-2.3.2/Taskfile.yaml 1970-01-01 01:00:00.000000000 +0100 @@ -1,38 +0,0 @@ -version: '3' - -tasks: - unit-test: - - go test -v -short ./... - unit-test-with-report: - - go test -v ./... -coverpkg=./... -coverprofile cover.out - - go tool cover -html cover.out -o coverage.html - integration-tests: - - go run . init --profile default --cloud aws --region $AWS_REGION --aws-nodes-spot --cluster-name $CLUSTER_NAME --s3-suffix $SUFFIX_S3 --admin-email $EMAIL --hosted-zone-name $HOSTED_ZONE_NAME --gitops-branch $GITOPS_BRANCH --silent || echo $? - - go test -v -run TestAreS3BucketsLiveIntegration ./internal/aws || echo $? - - go run . cluster create --silent || echo $? - - go test -v -run TestArgoCDLivenessIntegration ./internal/argocd || echo $? - - go test -v -run TestArgoWorkflowLivenessIntegration ./internal/argocd || echo $? - - go test -v -run TestGitLabLivenessIntegration ./internal/gitlab || echo $? - - go test -v -run TestMetaphorsLivenessIntegration ./internal/metaphor || echo $? - - go run . destroy --silent || echo $? - - go test -v -run TestIsVPCByTagDestroyedIntegration ./internal/aws || echo $? - - go test -v -run TestIsLoadBalancerByTagDestroyedIntegration ./internal/aws || echo $? - - go test -v -run TestAreS3BucketsDestroyedIntegration ./internal/aws || echo $? - - go test -v -run TestIsKMSKeyAliasDestroyedIntegration ./internal/aws || echo $? - - go test -v -run TestIsEKSDestroyedIntegration ./internal/aws || echo $? - - go run . clean --destroy-buckets --destroy-confirm || echo $? - - aws s3 sync $HOME/kubefirst/logs s3://$CICD_LOGS_BUCKET - integration-test-for-tls-localdev: - - go test -v -run TestArgoCertificateIntegration ./internal/ssl -count=1 - e2e-test-local-metaphors: - - go test -v -run TestLocalMetaphorFrontendEndToEnd ./tests -count=1 - e2e-test-cloud-metaphors: - - go test -v -run TestCloudMetaphorsEndToEnd ./tests -count=1 - e2e-test-github-user-creation-and-login: - # creates GitHub user - - go test -v -run TestGitHubUserCreationEndToEnd ./tests -count=1 - # before checking if user exists, we need to wait for Atlantis apply to finish - - sleep 10 - # check is the created user can log in into Vault - # this test requires E2E_VAULT_USERNAME to be set (aone, or kbot) - - go test -v -run TestVaultLoginEndToEnd ./tests -count=1 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kubefirst-2.3.0/cmd/aws/command.go new/kubefirst-2.3.2/cmd/aws/command.go --- old/kubefirst-2.3.0/cmd/aws/command.go 2023-10-24 09:02:39.000000000 +0200 +++ new/kubefirst-2.3.2/cmd/aws/command.go 2023-10-24 19:19:57.000000000 +0200 @@ -61,7 +61,7 @@ Short: "create the kubefirst platform running in aws", TraverseChildren: true, RunE: createAws, - PreRun: common.CheckDocker, + // PreRun: common.CheckDocker, } // todo review defaults and update descriptions @@ -88,11 +88,11 @@ func Destroy() *cobra.Command { destroyCmd := &cobra.Command{ - Use: "destroy", - Short: "destroy the kubefirst platform", - Long: "deletes the GitHub resources, aws resources, and local content to re-provision", - RunE: common.Destroy, - PreRun: common.CheckDocker, + Use: "destroy", + Short: "destroy the kubefirst platform", + Long: "deletes the GitHub resources, aws resources, and local content to re-provision", + RunE: common.Destroy, + // PreRun: common.CheckDocker, } return destroyCmd diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kubefirst-2.3.0/cmd/civo/command.go new/kubefirst-2.3.2/cmd/civo/command.go --- old/kubefirst-2.3.0/cmd/civo/command.go 2023-10-24 09:02:39.000000000 +0200 +++ new/kubefirst-2.3.2/cmd/civo/command.go 2023-10-24 19:19:57.000000000 +0200 @@ -72,7 +72,7 @@ Short: "create the kubefirst platform running on civo kubernetes", TraverseChildren: true, RunE: createCivo, - PreRun: common.CheckDocker, + // PreRun: common.CheckDocker, } // todo review defaults and update descriptions @@ -98,11 +98,11 @@ func Destroy() *cobra.Command { destroyCmd := &cobra.Command{ - Use: "destroy", - Short: "destroy the kubefirst platform", - Long: "destroy the kubefirst platform running in civo and remove all resources", - RunE: common.Destroy, - PreRun: common.CheckDocker, + Use: "destroy", + Short: "destroy the kubefirst platform", + Long: "destroy the kubefirst platform running in civo and remove all resources", + RunE: common.Destroy, + // PreRun: common.CheckDocker, } return destroyCmd diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kubefirst-2.3.0/cmd/digitalocean/command.go new/kubefirst-2.3.2/cmd/digitalocean/command.go --- old/kubefirst-2.3.0/cmd/digitalocean/command.go 2023-10-24 09:02:39.000000000 +0200 +++ new/kubefirst-2.3.2/cmd/digitalocean/command.go 2023-10-24 19:19:57.000000000 +0200 @@ -64,7 +64,7 @@ Short: "create the kubefirst platform running on DigitalOcean Kubernetes", TraverseChildren: true, RunE: createDigitalocean, - PreRun: common.CheckDocker, + // PreRun: common.CheckDocker, } // todo review defaults and update descriptions @@ -90,11 +90,11 @@ func Destroy() *cobra.Command { destroyCmd := &cobra.Command{ - Use: "destroy", - Short: "destroy the kubefirst platform", - Long: "destroy the kubefirst platform running in DigitalOcean and remove all resources", - RunE: common.Destroy, - PreRun: common.CheckDocker, + Use: "destroy", + Short: "destroy the kubefirst platform", + Long: "destroy the kubefirst platform running in DigitalOcean and remove all resources", + RunE: common.Destroy, + // PreRun: common.CheckDocker, } return destroyCmd diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kubefirst-2.3.0/cmd/google/command.go new/kubefirst-2.3.2/cmd/google/command.go --- old/kubefirst-2.3.0/cmd/google/command.go 2023-10-24 09:02:39.000000000 +0200 +++ new/kubefirst-2.3.2/cmd/google/command.go 2023-10-24 19:19:57.000000000 +0200 @@ -67,7 +67,7 @@ Short: "create the kubefirst platform running on GCP kubernetes", TraverseChildren: true, RunE: createGoogle, - PreRun: common.CheckDocker, + // PreRun: common.CheckDocker, } // todo review defaults and update descriptions @@ -95,11 +95,11 @@ func Destroy() *cobra.Command { destroyCmd := &cobra.Command{ - Use: "destroy", - Short: "destroy the kubefirst platform", - Long: "destroy the kubefirst platform running in Goole and remove all resources", - RunE: common.Destroy, - PreRun: common.CheckDocker, + Use: "destroy", + Short: "destroy the kubefirst platform", + Long: "destroy the kubefirst platform running in Goole and remove all resources", + RunE: common.Destroy, + // PreRun: common.CheckDocker, } return destroyCmd diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kubefirst-2.3.0/cmd/k3d/create.go new/kubefirst-2.3.2/cmd/k3d/create.go --- old/kubefirst-2.3.0/cmd/k3d/create.go 2023-10-24 09:02:39.000000000 +0200 +++ new/kubefirst-2.3.2/cmd/k3d/create.go 2023-10-24 19:19:57.000000000 +0200 @@ -33,7 +33,6 @@ "github.com/kubefirst/runtime/configs" "github.com/kubefirst/runtime/pkg" "github.com/kubefirst/runtime/pkg/argocd" - "github.com/kubefirst/runtime/pkg/docker" "github.com/kubefirst/runtime/pkg/gitClient" "github.com/kubefirst/runtime/pkg/github" gitlab "github.com/kubefirst/runtime/pkg/gitlab" @@ -148,14 +147,14 @@ return fmt.Errorf("%s - this port is required to set up your kubefirst environment - please close any existing port forwards before continuing", err.Error()) } - // Verify Docker is running - dcli := docker.DockerClientWrapper{ - Client: docker.NewDockerClient(), - } - _, err = dcli.CheckDockerReady() - if err != nil { - return err - } + // Verify Docker is running # TODO: reintroduce once we support more runtimes + // dcli := docker.DockerClientWrapper{ + // Client: docker.NewDockerClient(), + // } + // _, err = dcli.CheckDockerReady() + // if err != nil { + // return err + // } // Global context var ctx context.Context diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kubefirst-2.3.0/cmd/launch.go new/kubefirst-2.3.2/cmd/launch.go --- old/kubefirst-2.3.0/cmd/launch.go 2023-10-24 09:02:39.000000000 +0200 +++ new/kubefirst-2.3.2/cmd/launch.go 2023-10-24 19:19:57.000000000 +0200 @@ -9,7 +9,6 @@ import ( "fmt" - "github.com/kubefirst/kubefirst/internal/common" "github.com/kubefirst/kubefirst/internal/launch" "github.com/spf13/cobra" ) @@ -82,7 +81,7 @@ Use: "list", Short: "list clusters created by the kubefirst console", TraverseChildren: true, - PreRun: common.CheckDocker, + // PreRun: common.CheckDocker, Run: func(cmd *cobra.Command, args []string) { launch.ListClusters() }, @@ -97,7 +96,7 @@ Use: "delete", Short: "delete a cluster created by the kubefirst console", TraverseChildren: true, - PreRun: common.CheckDocker, + // PreRun: common.CheckDocker, Args: func(cmd *cobra.Command, args []string) error { if err := cobra.ExactArgs(1)(cmd, args); err != nil { return fmt.Errorf("you must provide a cluster name as the only argument to this command") diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kubefirst-2.3.0/cmd/vultr/command.go new/kubefirst-2.3.2/cmd/vultr/command.go --- old/kubefirst-2.3.0/cmd/vultr/command.go 2023-10-24 09:02:39.000000000 +0200 +++ new/kubefirst-2.3.2/cmd/vultr/command.go 2023-10-24 19:19:57.000000000 +0200 @@ -65,7 +65,7 @@ Short: "create the kubefirst platform running on Vultr kubernetes", TraverseChildren: true, RunE: createVultr, - PreRun: common.CheckDocker, + // PreRun: common.CheckDocker, } // todo review defaults and update descriptions @@ -91,11 +91,11 @@ func Destroy() *cobra.Command { destroyCmd := &cobra.Command{ - Use: "destroy", - Short: "destroy the kubefirst platform", - Long: "destroy the kubefirst platform running in Vultr and remove all resources", - RunE: common.Destroy, - PreRun: common.CheckDocker, + Use: "destroy", + Short: "destroy the kubefirst platform", + Long: "destroy the kubefirst platform running in Vultr and remove all resources", + RunE: common.Destroy, + // PreRun: common.CheckDocker, } return destroyCmd diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kubefirst-2.3.0/internal/launch/constants.go new/kubefirst-2.3.2/internal/launch/constants.go --- old/kubefirst-2.3.0/internal/launch/constants.go 2023-10-24 09:02:39.000000000 +0200 +++ new/kubefirst-2.3.2/internal/launch/constants.go 2023-10-24 19:19:57.000000000 +0200 @@ -11,7 +11,7 @@ helmChartName = "kubefirst" helmChartRepoName = "kubefirst" helmChartRepoURL = "https://charts.kubefirst.com" - helmChartVersion = "2.3.0" + helmChartVersion = "2.3.2" namespace = "kubefirst" secretName = "kubefirst-initial-secrets" ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kubefirst-2.3.0/internal/progress/message.go new/kubefirst-2.3.2/internal/progress/message.go --- old/kubefirst-2.3.0/internal/progress/message.go 2023-10-24 09:02:39.000000000 +0200 +++ new/kubefirst-2.3.2/internal/progress/message.go 2023-10-24 19:19:57.000000000 +0200 @@ -11,6 +11,7 @@ import ( "fmt" + "log" "strconv" "github.com/charmbracelet/glamour" @@ -20,11 +21,15 @@ func renderMessage(message string) string { r, _ := glamour.NewTermRenderer( - glamour.WithStylesFromJSONFile("styles.json"), + glamour.WithStyles(StyleConfig), glamour.WithEmoji(), ) - out, _ := r.Render(message) + out, err := r.Render(message) + if err != nil { + log.Println(err.Error()) + return err.Error() + } return out } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kubefirst-2.3.0/internal/progress/styles.go new/kubefirst-2.3.2/internal/progress/styles.go --- old/kubefirst-2.3.0/internal/progress/styles.go 1970-01-01 01:00:00.000000000 +0100 +++ new/kubefirst-2.3.2/internal/progress/styles.go 2023-10-24 19:19:57.000000000 +0200 @@ -0,0 +1,230 @@ +package progress + +import "github.com/charmbracelet/glamour/ansi" + +var StyleConfig = ansi.StyleConfig{ + Document: ansi.StyleBlock{ + StylePrimitive: ansi.StylePrimitive{ + BlockPrefix: "", + BlockSuffix: "", + Color: stringPtr("252"), + }, + Margin: uintPtr(2), + }, + BlockQuote: ansi.StyleBlock{ + Indent: uintPtr(1), + IndentToken: stringPtr("â "), + }, + List: ansi.StyleList{ + LevelIndent: 2, + }, + Heading: ansi.StyleBlock{ + StylePrimitive: ansi.StylePrimitive{ + BlockSuffix: "\n", + Color: stringPtr("39"), + Bold: boolPtr(true), + }, + }, + H1: ansi.StyleBlock{ + StylePrimitive: ansi.StylePrimitive{ + Prefix: " ", + Suffix: " ", + Color: stringPtr("288"), + BackgroundColor: stringPtr("63"), + Bold: boolPtr(true), + }, + }, + H2: ansi.StyleBlock{ + StylePrimitive: ansi.StylePrimitive{ + Prefix: "", + Color: stringPtr("99"), + }, + }, + H3: ansi.StyleBlock{ + StylePrimitive: ansi.StylePrimitive{ + Prefix: "", + Color: stringPtr("244"), + Bold: boolPtr(true), + }, + Margin: uintPtr(0), + }, + H4: ansi.StyleBlock{ + StylePrimitive: ansi.StylePrimitive{ + Prefix: "", + Color: stringPtr("70"), + }, + }, + H5: ansi.StyleBlock{ + StylePrimitive: ansi.StylePrimitive{ + Prefix: "", + Color: stringPtr("15"), + }, + Margin: uintPtr(0), + }, + H6: ansi.StyleBlock{ + StylePrimitive: ansi.StylePrimitive{ + Prefix: "###### ", + Color: stringPtr("35"), + Bold: boolPtr(false), + }, + }, + Strikethrough: ansi.StylePrimitive{ + CrossedOut: boolPtr(true), + }, + Emph: ansi.StylePrimitive{ + Italic: boolPtr(true), + }, + Strong: ansi.StylePrimitive{ + Bold: boolPtr(true), + }, + HorizontalRule: ansi.StylePrimitive{ + Color: stringPtr("240"), + Format: "\n--------\n", + }, + Item: ansi.StylePrimitive{ + BlockPrefix: "⢠", + }, + Enumeration: ansi.StylePrimitive{ + BlockPrefix: ". ", + Color: stringPtr("#8be9fd"), + }, + Task: ansi.StyleTask{ + StylePrimitive: ansi.StylePrimitive{}, + Ticked: "[â] ", + Unticked: "[ ] ", + }, + Link: ansi.StylePrimitive{ + Color: stringPtr("15"), + Underline: boolPtr(false), + }, + LinkText: ansi.StylePrimitive{ + Color: stringPtr("35"), + Bold: boolPtr(true), + }, + Image: ansi.StylePrimitive{ + Color: stringPtr("212"), + Underline: boolPtr(true), + }, + ImageText: ansi.StylePrimitive{ + Color: stringPtr("243"), + Format: "Image: {{.text}} â", + }, + Code: ansi.StyleBlock{ + StylePrimitive: ansi.StylePrimitive{ + Color: stringPtr("15"), + Prefix: " ", + Suffix: " ", + Bold: boolPtr(true), + BackgroundColor: stringPtr(""), + }, + }, + CodeBlock: ansi.StyleCodeBlock{ + StyleBlock: ansi.StyleBlock{ + StylePrimitive: ansi.StylePrimitive{ + Color: stringPtr("244"), + }, + Margin: uintPtr(2), + }, + Chroma: &ansi.Chroma{ + Text: ansi.StylePrimitive{ + Color: stringPtr("#f8f8f2"), + }, + Error: ansi.StylePrimitive{ + Color: stringPtr("#f8f8f2"), + BackgroundColor: stringPtr("#ff5555"), + }, + Comment: ansi.StylePrimitive{ + Color: stringPtr("#6272A4"), + }, + CommentPreproc: ansi.StylePrimitive{ + Color: stringPtr("#ff79c6"), + }, + Keyword: ansi.StylePrimitive{ + Color: stringPtr("#ff79c6"), + }, + KeywordReserved: ansi.StylePrimitive{ + Color: stringPtr("#ff79c6"), + }, + KeywordNamespace: ansi.StylePrimitive{ + Color: stringPtr("#ff79c6"), + }, + KeywordType: ansi.StylePrimitive{ + Color: stringPtr("#8be9fd"), + }, + Operator: ansi.StylePrimitive{ + Color: stringPtr("#ff79c6"), + }, + Punctuation: ansi.StylePrimitive{ + Color: stringPtr("#f8f8f2"), + }, + Name: ansi.StylePrimitive{ + Color: stringPtr("#8be9fd"), + }, + NameBuiltin: ansi.StylePrimitive{ + Color: stringPtr("#8be9fd"), + }, + NameTag: ansi.StylePrimitive{ + Color: stringPtr("#ff79c6"), + }, + NameAttribute: ansi.StylePrimitive{ + Color: stringPtr("#50fa7b"), + }, + NameClass: ansi.StylePrimitive{ + Color: stringPtr("#8be9fd"), + }, + NameConstant: ansi.StylePrimitive{ + Color: stringPtr("#bd93f9"), + }, + NameDecorator: ansi.StylePrimitive{ + Color: stringPtr("#50fa7b"), + }, + NameFunction: ansi.StylePrimitive{ + Color: stringPtr("#50fa7b"), + }, + LiteralNumber: ansi.StylePrimitive{ + Color: stringPtr("#6EEFC0"), + }, + LiteralString: ansi.StylePrimitive{ + Color: stringPtr("#f1fa8c"), + }, + LiteralStringEscape: ansi.StylePrimitive{ + Color: stringPtr("#ff79c6"), + }, + GenericDeleted: ansi.StylePrimitive{ + Color: stringPtr("#ff5555"), + }, + GenericEmph: ansi.StylePrimitive{ + Color: stringPtr("#f1fa8c"), + Italic: boolPtr(true), + }, + GenericInserted: ansi.StylePrimitive{ + Color: stringPtr("#50fa7b"), + }, + GenericStrong: ansi.StylePrimitive{ + Color: stringPtr("#ffb86c"), + Bold: boolPtr(true), + }, + GenericSubheading: ansi.StylePrimitive{ + Color: stringPtr("#bd93f9"), + }, + Background: ansi.StylePrimitive{ + BackgroundColor: stringPtr("#282a36"), + }, + }, + }, + Table: ansi.StyleTable{ + StyleBlock: ansi.StyleBlock{ + StylePrimitive: ansi.StylePrimitive{}, + }, + CenterSeparator: stringPtr("â¼"), + ColumnSeparator: stringPtr("â"), + RowSeparator: stringPtr("â"), + }, + DefinitionDescription: ansi.StylePrimitive{ + BlockPrefix: "\nð ¶ ", + }, +} + +func boolPtr(b bool) *bool { return &b } +func stringPtr(s string) *string { return &s } +func uintPtr(u uint) *uint { return &u } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kubefirst-2.3.0/styles.json new/kubefirst-2.3.2/styles.json --- old/kubefirst-2.3.0/styles.json 2023-10-24 09:02:39.000000000 +0200 +++ new/kubefirst-2.3.2/styles.json 1970-01-01 01:00:00.000000000 +0100 @@ -1,203 +0,0 @@ -{ - "document": { - "block_prefix": "", - "block_suffix": "", - "color": "252", - "margin": 2 - }, - "block_quote": { - "indent": 1, - "indent_token": "â " - }, - "paragraph": {}, - "list": { - "level_indent": 2 - }, - "heading": { - "block_suffix": "\n", - "color": "39", - "bold": true - }, - "h1": { - "prefix": " ", - "suffix": " ", - "color": "228", - "background_color": "63", - "bold": true - }, - "h2": { - "prefix": "", - "color": "99" - }, - "h3": { - "prefix": "", - "color": "244", - "bold": true, - "margin": 0 - }, - "h4": { - "prefix": "", - "color" : "70" - }, - "h5": { - "prefix": "", - "color": "15", - "margin": 0 - }, - "h6": { - "prefix": "###### ", - "color": "35", - "bold": false - }, - "text": {}, - "strikethrough": { - "crossed_out": true - }, - "emph": { - "italic": true - }, - "strong": { - "bold": true - }, - "hr": { - "color": "240", - "format": "\n--------\n" - }, - "item": { - "block_prefix": "⢠" - }, - "enumeration": { - "block_prefix": ". " - }, - "task": { - "ticked": "[â] ", - "unticked": "[ ] " - }, - "link": { - "color": "15", - "underline": false - }, - "link_text": { - "color": "35", - "bold": true - }, - "image": { - "color": "212", - "underline": true - }, - "image_text": { - "color": "243", - "format": "Image: {{.text}} â" - }, - "code": { - "prefix": " ", - "suffix": " ", - "color": "15", - "background_color": "", - "bold": true - }, - "code_block": { - "color": "244", - "margin": 1, - "chroma": { - "text": { - "color": "#C4C4C4" - }, - "error": { - "color": "#F1F1F1", - "background_color": "#F05B5B" - }, - "comment": { - "color": "#676767" - }, - "comment_preproc": { - "color": "#FF875F" - }, - "keyword": { - "color": "#00AAFF" - }, - "keyword_reserved": { - "color": "#FF5FD2" - }, - "keyword_namespace": { - "color": "#FF5F87" - }, - "keyword_type": { - "color": "#6E6ED8" - }, - "operator": { - "color": "#EF8080" - }, - "punctuation": { - "color": "#E8E8A8" - }, - "name": { - "color": "#C4C4C4" - }, - "name_builtin": { - "color": "#FF8EC7" - }, - "name_tag": { - "color": "#B083EA" - }, - "name_attribute": { - "color": "#7A7AE6" - }, - "name_class": { - "color": "#F1F1F1", - "underline": true, - "bold": true - }, - "name_constant": {}, - "name_decorator": { - "color": "#FFFF87" - }, - "name_exception": {}, - "name_function": { - "color": "#00D787" - }, - "name_other": {}, - "literal": {}, - "literal_number": { - "color": "#6EEFC0" - }, - "literal_date": {}, - "literal_string": { - "color": "#C69669" - }, - "literal_string_escape": { - "color": "#AFFFD7" - }, - "generic_deleted": { - "color": "#FD5B5B" - }, - "generic_emph": { - "italic": true - }, - "generic_inserted": { - "color": "#00D787" - }, - "generic_strong": { - "bold": true - }, - "generic_subheading": { - "color": "#777777" - }, - "background": { - "background_color": "#373737" - } - } - }, - "table": { - "center_separator": "â¼", - "column_separator": "â", - "row_separator": "â" - }, - "definition_list": {}, - "definition_term": {}, - "definition_description": { - "block_prefix": "\nð ¶ " - }, - "html_block": {}, - "html_span": {} -} \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kubefirst-2.3.0/test/artifacts/init/aws_profile.yaml new/kubefirst-2.3.2/test/artifacts/init/aws_profile.yaml --- old/kubefirst-2.3.0/test/artifacts/init/aws_profile.yaml 2023-10-24 09:02:39.000000000 +0200 +++ new/kubefirst-2.3.2/test/artifacts/init/aws_profile.yaml 1970-01-01 01:00:00.000000000 +0100 @@ -1,5 +0,0 @@ -config: - admin-email: [email protected] - cloud: aws - hosted-zone-name: my.domain.com - profile: default diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kubefirst-2.3.0/test/artifacts/init/sample.yaml new/kubefirst-2.3.2/test/artifacts/init/sample.yaml --- old/kubefirst-2.3.0/test/artifacts/init/sample.yaml 2023-10-24 09:02:39.000000000 +0200 +++ new/kubefirst-2.3.2/test/artifacts/init/sample.yaml 1970-01-01 01:00:00.000000000 +0100 @@ -1,2 +0,0 @@ -config: - sample: set-by-config diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kubefirst-2.3.0/tests/README.md new/kubefirst-2.3.2/tests/README.md --- old/kubefirst-2.3.0/tests/README.md 2023-10-24 09:02:39.000000000 +0200 +++ new/kubefirst-2.3.2/tests/README.md 1970-01-01 01:00:00.000000000 +0100 @@ -1,36 +0,0 @@ -# End to End tests - -This directory contains end to end tests to be run against a running Kubefirst instance of the [local](https://docs.kubefirst.io/kubefirst/local/install.html), [AWS with GitHub](https://docs.kubefirst.io/kubefirst/github/install.html), and [AWS with GitLab](https://docs.kubefirst.io/kubefirst/gitlab/install.html) installations. After a successful installation, the tests can be run to verify that the: - -- installation was successful -- cluster is working as expected -- downloaded repositories are working as expected -- Metaphor application is working as expected -- Traefik ingress controller rules are working as expected -- TLS certificates are working as expected -- Vault is working as expected -- Vault initial token is able to be used to login to Vault -- Kubefirst process is able to create new GitHub users via IAC/Webhooks/Atlantis/Terraform -- newly created users are able to login into Vault - -## Taskfile to trigger sequential execution of the tests - -Kubefirst make use of [Taskfile](https://github.com/go-task/task) (instead of makefile), to trigger sequential execution of the tests. The [Taskfile](../Taskfile.yaml) is located in the root of this repository, so you need to run the tests from there. The following test cases are avaialble: - -### test Traefik rules and TLS certificates - -```bash -task integration-test-for-tls-localdev -``` - -### test Metaphor application - -```bash -task e2e-test-local-metaphors -``` - -### test user creation via IAC/Webhooks/Atlantis/Terraform, and check if is able to login with the new user - -```bash -task e2e-test-github-user-creation-and-login -``` diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kubefirst-2.3.0/tests/metaphor-frontend_test.go new/kubefirst-2.3.2/tests/metaphor-frontend_test.go --- old/kubefirst-2.3.0/tests/metaphor-frontend_test.go 2023-10-24 09:02:39.000000000 +0200 +++ new/kubefirst-2.3.2/tests/metaphor-frontend_test.go 1970-01-01 01:00:00.000000000 +0100 @@ -1,105 +0,0 @@ -/* -Copyright (C) 2021-2023, Kubefirst - -This program is licensed under MIT. -See the LICENSE file for more details. -*/ -package tests - -import ( - "fmt" - "net/http" - "testing" - - "github.com/kubefirst/runtime/configs" - "github.com/kubefirst/runtime/pkg" - "github.com/spf13/viper" -) - -// TestLocalMetaphorFrontendEndToEnd tests the Metaphor frontend (dev, staging, prod), and look for a http response code of 200 -func TestLocalMetaphorFrontendEndToEnd(t *testing.T) { - - if testing.Short() { - t.Skip("skipping end to tend test") - } - - testCases := []struct { - name string - url string - expected int - }{ - {name: "metaphor frontend development", url: pkg.MetaphorFrontendSlimTLSDev, expected: http.StatusOK}, - {name: "metaphor frontend staging", url: pkg.MetaphorFrontendSlimTLSStaging, expected: http.StatusOK}, - {name: "metaphor frontend production", url: pkg.MetaphorFrontendSlimTLSProd, expected: http.StatusOK}, - } - - for _, tc := range testCases { - t.Run(tc.name, func(t *testing.T) { - - resp, err := http.Get(tc.url) - if err != nil { - t.Errorf(err.Error()) - return - } - defer resp.Body.Close() - - fmt.Println("HTTP status code:", resp.StatusCode) - - if resp.StatusCode != http.StatusOK { - t.Errorf("HTTP status code is not 200") - } - }) - } - -} - -// TestCloudMetaphorsEndToEnd tests the Metaphor frontend, and look for a http response code of 200 for cloud -func TestCloudMetaphorsEndToEnd(t *testing.T) { - - if testing.Short() { - t.Skip("skipping end to tend test") - } - - config := configs.ReadConfig() - if err := pkg.SetupViper(config); err != nil { - t.Errorf(err.Error()) - } - - testCases := []struct { - name string - url string - expected int - }{ - {name: "metaphor frontend development", url: "https://metaphor-development." + viper.GetString("aws.hostedzonename"), expected: http.StatusOK}, - {name: "metaphor frontend staging", url: "https://metaphor-staging." + viper.GetString("aws.hostedzonename"), expected: http.StatusOK}, - {name: "metaphor frontend production", url: "https://metaphor-production." + viper.GetString("aws.hostedzonename"), expected: http.StatusOK}, - {name: "metaphor NodeJs development", url: "https://metaphor-development." + viper.GetString("aws.hostedzonename") + "/app", expected: http.StatusOK}, - {name: "metaphor NodeJs staging", url: "https://metaphor-staging." + viper.GetString("aws.hostedzonename") + "/app", expected: http.StatusOK}, - {name: "metaphor NodeJs production", url: "https://metaphor-production." + viper.GetString("aws.hostedzonename") + "/app", expected: http.StatusOK}, - {name: "metaphor Go development", url: "https://metaphor-go-development." + viper.GetString("aws.hostedzonename") + "/app", expected: http.StatusOK}, - {name: "metaphor Go staging", url: "https://metaphor-go-staging." + viper.GetString("aws.hostedzonename") + "/app", expected: http.StatusOK}, - {name: "metaphor Go production", url: "https://metaphor-go-production." + viper.GetString("aws.hostedzonename") + "/app", expected: http.StatusOK}, - } - - for _, tc := range testCases { - t.Run(tc.name, func(t *testing.T) { - - resp, err := http.Get(tc.url) - if err != nil { - t.Errorf(err.Error()) - return - } - defer resp.Body.Close() - - fmt.Println("HTTP status code:", resp.StatusCode) - - if resp.StatusCode != http.StatusOK { - t.Errorf("HTTP status code is not 200") - } - if resp.StatusCode != tc.expected { - t.Errorf("[%s] wanted http status code (%d), got (%d)", tc.url, resp.StatusCode, tc.expected) - } - }) - } - -} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kubefirst-2.3.0/tests/ngrok_test.go new/kubefirst-2.3.2/tests/ngrok_test.go --- old/kubefirst-2.3.0/tests/ngrok_test.go 2023-10-24 09:02:39.000000000 +0200 +++ new/kubefirst-2.3.2/tests/ngrok_test.go 1970-01-01 01:00:00.000000000 +0100 @@ -1,62 +0,0 @@ -/* -Copyright (C) 2021-2023, Kubefirst - -This program is licensed under MIT. -See the LICENSE file for more details. -*/ -package tests - -import ( - "fmt" - "net/http" - "testing" - "time" - - "github.com/kubefirst/runtime/configs" - "github.com/kubefirst/runtime/pkg" - "github.com/spf13/viper" -) - -// TestNgrokGitHubWebhookIntegration tests the ngrok GitHub webhook response, and look for a http response code of 200 -func TestNgrokGitHubWebhookIntegration(t *testing.T) { - - if testing.Short() { - t.Skip("skipping end to tend test") - } - - config := configs.ReadConfig() - err := pkg.SetupViper(config) - if err != nil { - t.Error(err) - } - - testCases := []struct { - name string - url string - expected int - }{ - {name: "ngrok", url: viper.GetString("ngrok.url") + "/events", expected: http.StatusOK}, - } - - for _, tc := range testCases { - t.Run(tc.name, func(t *testing.T) { - - client := &http.Client{ - Timeout: time.Second * 10, - } - resp, err := client.Get(tc.url) - if err != nil { - t.Errorf(err.Error()) - return - } - defer resp.Body.Close() - - fmt.Println("HTTP status code:", resp.StatusCode) - - if resp.StatusCode != http.StatusOK { - t.Errorf("HTTP status code is not 200") - } - }) - } - -} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kubefirst-2.3.0/tests/vault_test.go new/kubefirst-2.3.2/tests/vault_test.go --- old/kubefirst-2.3.0/tests/vault_test.go 2023-10-24 09:02:39.000000000 +0200 +++ new/kubefirst-2.3.2/tests/vault_test.go 1970-01-01 01:00:00.000000000 +0100 @@ -1,169 +0,0 @@ -/* -Copyright (C) 2021-2023, Kubefirst - -This program is licensed under MIT. -See the LICENSE file for more details. -*/ -package tests - -import ( - "context" - "os" - "testing" - "time" - - "github.com/chromedp/chromedp" - "github.com/kubefirst/runtime/configs" - "github.com/kubefirst/runtime/pkg" - "github.com/spf13/viper" -) - -// TestVaultLoginEndToEnd tests the end to end flow of logging into the cloud and local vault and retrieving a secret -// from it. This test is not run by default because it requires a cloud vault to be running. -// This test does: -// - login to the cloud vault -// - make sure the login was successful -// - retrieve kbot secret -// - logout of the cloud vault -// - login to the cloud vault again using kbot credentials and userpass flow -// - make sure the kbot is logged in -// -// prerequisites: this test requires E2E_VAULT_USERNAME to be set to "aone" in case we want to test a new created user -// and "kbot" in case we want to test the login for the initial account -func TestVaultLoginEndToEnd(t *testing.T) { - - if testing.Short() { - t.Skip("skipping end to tend test") - } - - username := os.Getenv("E2E_VAULT_USERNAME") - if username == "" { - t.Error("E2E_VAULT_USERNAME is not set") - return - } - - config := configs.ReadConfig() - - err := pkg.SetupViper(config) - if err != nil { - t.Error(err) - } - - initialVaultToken := viper.GetString("vault.token") - if initialVaultToken == "" { - t.Error("Vault token is empty") - } - - // Headless is active by default - opts := append(chromedp.DefaultExecAllocatorOptions[3:], - chromedp.NoFirstRun, - chromedp.NoDefaultBrowserCheck, - chromedp.IgnoreCertErrors, - chromedp.Headless, - ) - - ctx, cancel := chromedp.NewExecAllocator(context.Background(), opts...) - defer cancel() - - // create chrome instance - ctx, cancel = chromedp.NewContext(ctx) - defer cancel() - - // create a timeout - ctx, cancel = context.WithTimeout(ctx, 60*time.Second) - defer cancel() - - // find Vault url - var vaultURL string - switch viper.GetString("cloud") { - case pkg.CloudK3d: - vaultURL = viper.GetString("vault.local.service") - default: - // cloud default - vaultURL = "https://vault." + viper.GetString("aws.hostedzonename") - } - - if err = chromedp.Run( - ctx, - chromedp.Navigate(vaultURL), - chromedp.WaitVisible("//h1[text()='Sign in to Vault']"), - ); err != nil { - t.Error(err.Error()) - } - - if err = chromedp.Run(ctx, chromedp.SendKeys(`//form/div/div/input`, initialVaultToken)); err != nil { - t.Error(err) - } - - time.Sleep(1 * time.Second) - - if err = chromedp.Run(ctx, chromedp.Click(`//button[@id='auth-submit']`)); err != nil { - t.Error(err) - } - - // confirm its logged in - if err = chromedp.Run(ctx, - chromedp.WaitVisible(`//div[@class='level-left']/h1[contains(text(),'Secrets Engines')]`), - ); err != nil { - t.Error(err) - } - - if err = chromedp.Run(ctx, - chromedp.Click(`(//div[@class='linkable-item-content'])[3]//a`), - ); err != nil { - t.Error(err) - } - - if err = chromedp.Run(ctx, chromedp.Click(`(//a)[10]`)); err != nil { - t.Error(err) - } - - // show secret - if err = chromedp.Run(ctx, chromedp.Click(`//button[@class=' masked-input-toggle button']`)); err != nil { - t.Error(err) - } - - var initialPassword string - if err = chromedp.Run(ctx, - chromedp.Text(`//pre[@class='masked-value display-only is-word-break']`, &initialPassword), - ); err != nil { - t.Error(err) - } - - if initialPassword == "" { - t.Error("initial user password is empty") - } - - vaultLogoutURL := vaultURL + "/ui/vault/logout" - if err = chromedp.Run(ctx, - chromedp.Navigate(vaultLogoutURL), - ); err != nil { - t.Error(err) - } - - // select - if err = chromedp.Run(ctx, chromedp.SetValue(`//select[@class="select"]`, "userpass", chromedp.BySearch)); err != nil { - t.Error(err) - } - // force wait above select update - time.Sleep(1 * time.Second) - - if err = chromedp.Run(ctx, chromedp.SendKeys(`//input[@id="username"]`, username)); err != nil { - t.Error(err) - } - if err = chromedp.Run(ctx, chromedp.SendKeys(`//input[@id="password"]`, initialPassword)); err != nil { - t.Error(err) - } - - // click sign in - if err = chromedp.Run(ctx, chromedp.Click(`//button[@id='auth-submit']`)); err != nil { - t.Error(err) - } - - if err = chromedp.Run(ctx, - chromedp.WaitVisible(`//div[@class='level-left']/h1[contains(text(),'Secrets Engines')]`), - ); err != nil { - t.Error(err) - } - -} ++++++ kubefirst.obsinfo ++++++ --- /var/tmp/diff_new_pack.ewflrL/_old 2023-10-25 18:04:07.657076222 +0200 +++ /var/tmp/diff_new_pack.ewflrL/_new 2023-10-25 18:04:07.661076356 +0200 @@ -1,5 +1,5 @@ name: kubefirst -version: 2.3.0 -mtime: 1698130959 -commit: 476c9db41292307fa11d93f2090bcf123a7333b2 +version: 2.3.2 +mtime: 1698167997 +commit: 155d0304b9c5ac032c430c91be7463ce6854f6e5 ++++++ vendor.tar.gz ++++++ /work/SRC/openSUSE:Factory/kubefirst/vendor.tar.gz /work/SRC/openSUSE:Factory/.kubefirst.new.24901/vendor.tar.gz differ: char 5, line 1
