From 923a5882deb9a18b278a7ce26d08d84c605951b6 Mon Sep 17 00:00:00 2001 From: Jack Evans Date: Mon, 8 Nov 2021 16:21:02 +0000 Subject: [PATCH] make flux bootstrap and install generation more consistent Signed-off-by: Jack Evans --- cmd/flux/install.go | 4 ---- pkg/manifestgen/install/install.go | 10 +++++++++- pkg/manifestgen/install/install_test.go | 5 +++++ pkg/manifestgen/manifest.go | 2 +- 4 files changed, 15 insertions(+), 6 deletions(-) diff --git a/cmd/flux/install.go b/cmd/flux/install.go index 206d995254..c0d62660a3 100644 --- a/cmd/flux/install.go +++ b/cmd/flux/install.go @@ -21,7 +21,6 @@ import ( "fmt" "os" "path/filepath" - "strings" "time" "github.com/spf13/cobra" @@ -177,9 +176,6 @@ func installCmdRun(cmd *cobra.Command, args []string) error { } if installArgs.export { - fmt.Println("---") - fmt.Println("# Flux version:", installArgs.version) - fmt.Println("# Components:", strings.Join(components, ",")) fmt.Print(manifest.Content) fmt.Println("---") return nil diff --git a/pkg/manifestgen/install/install.go b/pkg/manifestgen/install/install.go index 373b19e48e..ce6d1e1902 100644 --- a/pkg/manifestgen/install/install.go +++ b/pkg/manifestgen/install/install.go @@ -84,7 +84,7 @@ func Generate(options Options, manifestsBase string) (*manifestgen.Manifest, err return &manifestgen.Manifest{ Path: path.Join(options.TargetPath, options.Namespace, options.ManifestFile), - Content: string(content), + Content: fmt.Sprintf("%s\n%s", GetGenWarning(options), string(content)), }, nil } @@ -142,3 +142,11 @@ func ExistingVersion(version string) (bool, error) { return false, fmt.Errorf("GitHub API returned an unexpected status code (%d)", res.StatusCode) } } + +// GetGenWarning generates a consistent generation warning in the install and bootstrap case in the following format: +// # This manifest was generated by flux. DO NOT EDIT. +// # Flux version: v0.21.1 +// # Components: source-controller,kustomize-controller,helm-controller,notification-controller,image-reflector-controller,image-automation-controller +func GetGenWarning(options Options) string { + return fmt.Sprintf("---\n%s\n# Flux Version: %s\n# Components: %s", manifestgen.GenWarning, options.Version, strings.Join(options.Components, ",")) +} diff --git a/pkg/manifestgen/install/install_test.go b/pkg/manifestgen/install/install_test.go index eab771ad51..d9dc77894e 100644 --- a/pkg/manifestgen/install/install_test.go +++ b/pkg/manifestgen/install/install_test.go @@ -41,5 +41,10 @@ func TestGenerate(t *testing.T) { t.Errorf("toleration key '%s' not found", opts.TolerationKeys[0]) } + warning := GetGenWarning(opts) + if !strings.HasPrefix(output.Content, warning) { + t.Errorf("Generation warning '%s' not found", warning) + } + fmt.Println(output) } diff --git a/pkg/manifestgen/manifest.go b/pkg/manifestgen/manifest.go index 693b22ebe6..db385f69df 100644 --- a/pkg/manifestgen/manifest.go +++ b/pkg/manifestgen/manifest.go @@ -24,7 +24,7 @@ import ( securejoin "github.com/cyphar/filepath-securejoin" ) -const GenWarning = "# This manifest was generated by flux bootstrap. DO NOT EDIT." +const GenWarning = "# This manifest was generated by flux. DO NOT EDIT." // Manifest holds the data of a multi-doc YAML type Manifest struct {