diff --git a/main.go b/main.go index e99cacad..fbb5f222 100644 --- a/main.go +++ b/main.go @@ -441,6 +441,10 @@ func main() { Name: "include-transitive-needs", Usage: `like --include-needs, but also includes transitive needs (needs of needs). Does nothing when when --selector/-l flag is not provided. Overrides exclusions of other selectors and conditions.`, }, + cli.BoolFlag{ + Name: "validate", + Usage: `ADVANCED CONFIGURATION: When sync is going to involve helm-template as a part of the "chartify" process, it might fail due to missing .Capabilities. This flag makes instructs helmfile to pass --validate to helm-template so it populates .Capabilities and validates your manifests against the Kubernetes cluster you are currently pointing at. Note that this requiers access to a Kubernetes cluster to obtain information necessary for validating, like the list of available API versions`, + }, cli.BoolFlag{ Name: "wait", Usage: `Override helmDefaults.wait setting "helm upgrade --install --wait"`, diff --git a/pkg/app/app.go b/pkg/app/app.go index 7bc3e797..898763ad 100644 --- a/pkg/app/app.go +++ b/pkg/app/app.go @@ -363,6 +363,7 @@ func (a *App) Sync(c SyncConfigProvider) error { WaitForJobs: c.WaitForJobs(), IncludeCRDs: &includeCRDs, IncludeTransitiveNeeds: c.IncludeTransitiveNeeds(), + Validate: c.Validate(), }, func() { ok, errs = a.sync(run, c) }) diff --git a/pkg/app/config.go b/pkg/app/config.go index 99cfc1fa..81350ab4 100644 --- a/pkg/app/config.go +++ b/pkg/app/config.go @@ -85,6 +85,8 @@ type SyncConfigProvider interface { Wait() bool WaitForJobs() bool + Validate() bool + SkipNeeds() bool IncludeNeeds() bool IncludeTransitiveNeeds() bool