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",
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{
Name: "suppress-secrets",
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)...)
opts := &state.DiffOpts{
Context: c.Context(),
Output: c.DiffOutput(),
NoColor: c.NoColor(),
Set: c.Set(),
Context: c.Context(),
Output: c.DiffOutput(),
NoColor: c.NoColor(),
Set: c.Set(),
SkipDiffOnInstall: c.SkipDiffOnInstall(),
}
st.Releases = selectedAndNeededReleases

View File

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

View File

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