From a7980230982b4d4fdb25be7346643f150e0ca963 Mon Sep 17 00:00:00 2001 From: yxxhero Date: Fri, 19 Jan 2024 23:13:58 +0800 Subject: [PATCH 1/2] fix: HELM_DIFF_IGNORE_UNKNOWN_FLAGS ignored issue Signed-off-by: yxxhero --- .vscode/launch.json | 19 +++++++++++++++++++ cmd/upgrade.go | 14 ++++++++++---- 2 files changed, 29 insertions(+), 4 deletions(-) create mode 100644 .vscode/launch.json diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 00000000..fc483ec2 --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,19 @@ +{ + // Use IntelliSense to learn about possible attributes. + // Hover to view descriptions of existing attributes. + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "name": "Launch Package", + "type": "go", + "request": "launch", + "mode": "auto", + "program": "${fileDirname}", + "env": { + "HELM_DIFF_IGNORE_UNKNOWN_FLAGS": "true", + }, + "args": ["upgrade", "--abc", "--color"] + } + ] +} \ No newline at end of file diff --git a/cmd/upgrade.go b/cmd/upgrade.go index 0f8bfb8d..63933bb0 100644 --- a/cmd/upgrade.go +++ b/cmd/upgrade.go @@ -107,6 +107,7 @@ func newChartCommand() *cobra.Command { diff := diffCmd{ namespace: os.Getenv("HELM_NAMESPACE"), } + unknownFlags := os.Getenv("HELM_DIFF_IGNORE_UNKNOWN_FLAGS") == "true" cmd := &cobra.Command{ Use: "upgrade [flags] [RELEASE] [CHART]", @@ -164,13 +165,18 @@ func newChartCommand() *cobra.Command { " --dry-run=server enables the cluster access with helm-get and the lookup template function." ) + cmdFlags := cmd.Flags() + + // see: https://github.com/databus23/helm-diff/issues/537 + cmdFlags.ParseErrorsWhitelist.UnknownFlags = unknownFlags + legacyDryRunFlagSet := pflag.NewFlagSet("upgrade", pflag.ContinueOnError) legacyDryRun := legacyDryRunFlagSet.Bool("dry-run", false, dryRunUsage) if err := legacyDryRunFlagSet.Parse(args); err == nil && *legacyDryRun { diff.dryRunModeSpecified = true args = legacyDryRunFlagSet.Args() } else { - cmd.Flags().StringVar(&diff.dryRunMode, "dry-run", "", dryRunUsage) + cmdFlags.StringVar(&diff.dryRunMode, "dry-run", "", dryRunUsage) } // Here we parse the flags ourselves so that we can support @@ -181,11 +187,11 @@ func newChartCommand() *cobra.Command { // // This works becase we have `DisableFlagParsing: true`` above. // Never turn that off, or you'll get the error again. - if err := cmd.Flags().Parse(args); err != nil { + if err := cmdFlags.Parse(args); err != nil { return err } - args = cmd.Flags().Args() + args = cmdFlags.Args() if !diff.dryRunModeSpecified { dryRunModeSpecified := cmd.Flags().Changed("dry-run") @@ -254,7 +260,7 @@ func newChartCommand() *cobra.Command { return diff.runHelm3() }, FParseErrWhitelist: cobra.FParseErrWhitelist{ - UnknownFlags: os.Getenv("HELM_DIFF_IGNORE_UNKNOWN_FLAGS") == "true", + UnknownFlags: unknownFlags, }, } From c7f1b0d74324d3ee76d60d0722b20651621edbd4 Mon Sep 17 00:00:00 2001 From: yxxhero Date: Fri, 19 Jan 2024 23:16:03 +0800 Subject: [PATCH 2/2] remove unused file Signed-off-by: yxxhero --- .gitignore | 1 + .vscode/launch.json | 19 ------------------- 2 files changed, 1 insertion(+), 19 deletions(-) delete mode 100644 .vscode/launch.json diff --git a/.gitignore b/.gitignore index 8e93598b..b7c98174 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,4 @@ release/ .envrc .idea docker-run-release-cache/ +.vscode/ diff --git a/.vscode/launch.json b/.vscode/launch.json deleted file mode 100644 index fc483ec2..00000000 --- a/.vscode/launch.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - // Use IntelliSense to learn about possible attributes. - // Hover to view descriptions of existing attributes. - // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 - "version": "0.2.0", - "configurations": [ - { - "name": "Launch Package", - "type": "go", - "request": "launch", - "mode": "auto", - "program": "${fileDirname}", - "env": { - "HELM_DIFF_IGNORE_UNKNOWN_FLAGS": "true", - }, - "args": ["upgrade", "--abc", "--color"] - } - ] -} \ No newline at end of file