Add --skip-diff-on-install to helmfile diff (#1841)

* Add --skip-diff-on-install to helmfile diff
This commit is contained in:
dudicoco 2021-05-16 08:02:53 +03:00 committed by GitHub
parent f502a0a779
commit 92ba347d6f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 30 additions and 18 deletions

View File

@ -207,6 +207,10 @@ func main() {
Name: "include-needs", Name: "include-needs",
Usage: `automatically include releases from the target release's "needs" when --selector/-l flag is provided. Does nothing when when --selector/-l flag is not provided`, Usage: `automatically include releases from the target release's "needs" when --selector/-l flag is provided. Does nothing when when --selector/-l flag is not provided`,
}, },
cli.BoolFlag{
Name: "skip-diff-on-install",
Usage: "Skips running helm-diff on releases being newly installed on this apply. Useful when the release manifests are too huge to be reviewed, or it's too time-consuming to diff at all",
},
cli.BoolFlag{ cli.BoolFlag{
Name: "suppress-secrets", Name: "suppress-secrets",
Usage: "suppress secrets in the output. highly recommended to specify on CI/CD use-cases", Usage: "suppress secrets in the output. highly recommended to specify on CI/CD use-cases",

View File

@ -1436,10 +1436,11 @@ func (a *App) diff(r *Run, c DiffConfigProvider) (*string, bool, bool, []error)
r.helm.SetExtraArgs(argparser.GetArgs(c.Args(), r.state)...) r.helm.SetExtraArgs(argparser.GetArgs(c.Args(), r.state)...)
opts := &state.DiffOpts{ opts := &state.DiffOpts{
Context: c.Context(), Context: c.Context(),
Output: c.DiffOutput(), Output: c.DiffOutput(),
NoColor: c.NoColor(), NoColor: c.NoColor(),
Set: c.Set(), Set: c.Set(),
SkipDiffOnInstall: c.SkipDiffOnInstall(),
} }
st.Releases = selectedAndNeededReleases st.Releases = selectedAndNeededReleases

View File

@ -98,6 +98,7 @@ type DiffConfigProvider interface {
SuppressSecrets() bool SuppressSecrets() bool
ShowSecrets() bool ShowSecrets() bool
SuppressDiff() bool SuppressDiff() bool
SkipDiffOnInstall() bool
SkipNeeds() bool SkipNeeds() bool
IncludeNeeds() bool IncludeNeeds() bool

View File

@ -36,6 +36,7 @@ type diffConfig struct {
concurrency int concurrency int
detailedExitcode bool detailedExitcode bool
interactive bool interactive bool
skipDiffOnInstall bool
logger *zap.SugaredLogger logger *zap.SugaredLogger
} }
@ -111,6 +112,10 @@ func (a diffConfig) Interactive() bool {
return a.interactive return a.interactive
} }
func (a diffConfig) SkipDiffOnInstall() bool {
return a.skipDiffOnInstall
}
func (a diffConfig) Logger() *zap.SugaredLogger { func (a diffConfig) Logger() *zap.SugaredLogger {
return a.logger return a.logger
} }
@ -125,20 +130,21 @@ func TestDiff(t *testing.T) {
} }
testcases := []struct { testcases := []struct {
name string name string
loc string loc string
ns string ns string
concurrency int concurrency int
detailedExitcode bool skipDiffOnInstall bool
error string detailedExitcode bool
flags flags error string
files map[string]string flags flags
selectors []string files map[string]string
lists map[exectest.ListKey]string selectors []string
diffs map[exectest.DiffKey]error lists map[exectest.ListKey]string
upgraded []exectest.Release diffs map[exectest.DiffKey]error
deleted []exectest.Release upgraded []exectest.Release
log string deleted []exectest.Release
log string
}{ }{
// //
// complex test cases for smoke testing // complex test cases for smoke testing