From ec7b0c779ba3fd1d58ea5489e2a4a15acc2e35f8 Mon Sep 17 00:00:00 2001 From: Eric Date: Tue, 27 Oct 2020 03:44:13 -0400 Subject: [PATCH] Add option to exclude deprecated charts (#280) --- ct/cmd/root.go | 1 + pkg/chart/chart.go | 7 ++++++- pkg/config/config.go | 1 + pkg/config/config_test.go | 1 + pkg/config/test_config.json | 3 ++- pkg/config/test_config.yaml | 1 + 6 files changed, 12 insertions(+), 2 deletions(-) diff --git a/ct/cmd/root.go b/ct/cmd/root.go index 76c96f97..56c8609d 100644 --- a/ct/cmd/root.go +++ b/ct/cmd/root.go @@ -74,6 +74,7 @@ func addCommonFlags(flags *pflag.FlagSet) { flags.Bool("print-config", false, heredoc.Doc(` Prints the configuration to stderr (caution: setting this may expose sensitive data when helm-repo-extra-args contains passwords)`)) + flags.Bool("exclude-deprecated", false, "Skip charts that are marked as deprecated") } func addCommonLintAndInstallFlags(flags *pflag.FlagSet) { diff --git a/pkg/chart/chart.go b/pkg/chart/chart.go index 3ed7b14c..856540d1 100644 --- a/pkg/chart/chart.go +++ b/pkg/chart/chart.go @@ -304,7 +304,12 @@ func (t *Testing) processCharts(action func(chart *Chart) TestResult) ([]TestRes if err != nil { return nil, err } - charts = append(charts, chart) + + if t.config.ExcludeDeprecated && chart.yaml.Deprecated { + fmt.Printf("Chart '%s' is deprecated and will be ignored because '--exclude-deprecated' is set\n", chart.String()) + } else { + charts = append(charts, chart) + } } fmt.Println() diff --git a/pkg/config/config.go b/pkg/config/config.go index a88d4025..eaf3a030 100644 --- a/pkg/config/config.go +++ b/pkg/config/config.go @@ -64,6 +64,7 @@ type Configuration struct { SkipMissingValues bool `mapstructure:"skip-missing-values"` Namespace string `mapstructure:"namespace"` ReleaseLabel string `mapstructure:"release-label"` + ExcludeDeprecated bool `mapstructure:"exclude-deprecated"` } func LoadConfiguration(cfgFile string, cmd *cobra.Command, printConfig bool) (*Configuration, error) { diff --git a/pkg/config/config_test.go b/pkg/config/config_test.go index 03862800..b5c47bba 100644 --- a/pkg/config/config_test.go +++ b/pkg/config/config_test.go @@ -53,4 +53,5 @@ func loadAndAssertConfigFromFile(t *testing.T, configFile string) { require.Equal(t, true, cfg.SkipMissingValues) require.Equal(t, "default", cfg.Namespace) require.Equal(t, "release", cfg.ReleaseLabel) + require.Equal(t, true, cfg.ExcludeDeprecated) } diff --git a/pkg/config/test_config.json b/pkg/config/test_config.json index a46d1de4..83bf1577 100644 --- a/pkg/config/test_config.json +++ b/pkg/config/test_config.json @@ -28,5 +28,6 @@ "upgrade": true, "skip-missing-values": true, "namespace": "default", - "release-label": "release" + "release-label": "release", + "exclude-deprecated": true } diff --git a/pkg/config/test_config.yaml b/pkg/config/test_config.yaml index b2942340..0b704658 100644 --- a/pkg/config/test_config.yaml +++ b/pkg/config/test_config.yaml @@ -24,3 +24,4 @@ upgrade: true skip-missing-values: true namespace: default release-label: release +exclude-deprecated: true