Documentation ¶
Index ¶
- Constants
- func NewChartDependencyManager(name string, logger *zap.SugaredLogger) *chartDependencyManager
- type AffectedReleases
- type ChartLockedRequirements
- type ChartMeta
- type ChartRequirements
- type EnvironmentSpec
- type EnvironmentTemplateData
- type HelmSpec
- type HelmState
- func (st *HelmState) BuildDeps(helm helmexec.Interface) []error
- func (st *HelmState) Clean() []error
- func (st *HelmState) DeleteReleases(affectedReleases *AffectedReleases, helm helmexec.Interface, purge bool) []error
- func (st *HelmState) DetectReleasesToBeDeleted(helm helmexec.Interface) ([]*ReleaseSpec, error)
- func (st *HelmState) DiffReleases(helm helmexec.Interface, additionalValues []string, workerLimit int, ...) ([]*ReleaseSpec, []error)
- func (st *HelmState) ExecuteTemplates() (*HelmState, error)
- func (st *HelmState) ExpandPaths(patterns []string, glob func(string) ([]string, error)) ([]string, error)
- func (st *HelmState) FilterReleases() error
- func (st *HelmState) JoinBase(relPath string) string
- func (st *HelmState) LintReleases(helm helmexec.Interface, additionalValues []string, args []string, ...) []error
- func (st *HelmState) PrepareReleases(helm helmexec.Interface, helmfileCommand string) []error
- func (st *HelmState) ReleaseStatuses(helm helmexec.Interface, workerLimit int) []error
- func (st *HelmState) RenderValuesFileToBytes(path string) ([]byte, error)
- func (st *HelmState) ResolveDeps() (*HelmState, error)
- func (st *HelmState) SyncReleases(affectedReleases *AffectedReleases, helm helmexec.Interface, ...) []error
- func (st *HelmState) SyncRepos(helm RepoUpdater) []error
- func (st *HelmState) TemplateReleases(helm helmexec.Interface, additionalValues []string, args []string, ...) []error
- func (st *HelmState) TestReleases(helm helmexec.Interface, cleanup bool, timeout int, concurrency int) []error
- func (st *HelmState) UpdateDeps(helm helmexec.Interface) []error
- type LabelFilter
- type ReleaseError
- type ReleaseFilter
- type ReleaseSpec
- type ReleaseTemplateData
- type RepoUpdater
- type RepositorySpec
- type ResolvedChartDependency
- type ResolvedDependencies
- type SetValue
- type StateCreator
- func (c *StateCreator) LoadEnvValues(target *HelmState, env string, ctxEnv *environment.Environment) (*HelmState, error)
- func (c *StateCreator) Parse(content []byte, baseDir, file string) (*HelmState, error)
- func (c *StateCreator) ParseAndLoad(content []byte, baseDir, file string, envName string, evaluateBases bool, ...) (*HelmState, error)
- type StateLoadError
- type SubHelmfileSpec
- type TemplateSpec
- type TestFs
- func (f *TestFs) Abs(path string) (string, error)
- func (f *TestFs) Chdir(dir string) error
- func (f *TestFs) DirectoryExistsAt(path string) bool
- func (f *TestFs) FileExistsAt(path string) bool
- func (f *TestFs) FileReaderCalls() int
- func (f *TestFs) Getwd() (string, error)
- func (f *TestFs) Glob(relPattern string) ([]string, error)
- func (f *TestFs) ReadFile(filename string) ([]byte, error)
- func (f *TestFs) SuccessfulReads() []string
- type UndefinedEnvError
- type UnresolvedDependencies
Constants ¶
const DefaultEnv = "default"
const ReleaseErrorCodeFailure = 1
Variables ¶
This section is empty.
Functions ¶
func NewChartDependencyManager ¶ added in v0.61.0
func NewChartDependencyManager(name string, logger *zap.SugaredLogger) *chartDependencyManager
Types ¶
type AffectedReleases ¶ added in v0.55.0
type AffectedReleases struct { Upgraded []*ReleaseSpec Deleted []*ReleaseSpec Failed []*ReleaseSpec }
AffectedReleases hold the list of released that where updated, deleted, or in error
func (*AffectedReleases) DisplayAffectedReleases ¶ added in v0.55.0
func (ar *AffectedReleases) DisplayAffectedReleases(logger *zap.SugaredLogger)
DisplayAffectedReleases logs the upgraded, deleted and in error releases
type ChartLockedRequirements ¶ added in v0.61.0
type ChartLockedRequirements struct {
ResolvedDependencies []ResolvedChartDependency `yaml:"dependencies"`
}
type ChartRequirements ¶ added in v0.61.0
type ChartRequirements struct {
UnresolvedDependencies []unresolvedChartDependency `yaml:"dependencies"`
}
type EnvironmentSpec ¶ added in v0.28.0
type EnvironmentTemplateData ¶ added in v0.42.0
type EnvironmentTemplateData struct { // Environment is accessible as `.Environment` from any template executed by the renderer Environment environment.Environment // Namespace is accessible as `.Namespace` from any non-values template executed by the renderer Namespace string }
EnvironmentTemplateData provides variables accessible while executing golang text/template expressions in helmfile and values YAML files
type HelmSpec ¶ added in v0.20.0
type HelmSpec struct { KubeContext string `yaml:"kubeContext"` TillerNamespace string `yaml:"tillerNamespace"` Tillerless bool `yaml:"tillerless"` Args []string `yaml:"args"` Verify bool `yaml:"verify"` // Devel, when set to true, use development versions, too. Equivalent to version '>0.0.0-0' Devel bool `yaml:"devel"` // Wait, if set to true, will wait until all Pods, PVCs, Services, and minimum number of Pods of a Deployment are in a ready state before marking the release as successful Wait bool `yaml:"wait"` // Timeout is the time in seconds to wait for any individual Kubernetes operation (like Jobs for hooks, and waits on pod/pvc/svc/deployment readiness) (default 300) Timeout int `yaml:"timeout"` // RecreatePods, when set to true, instruct helmfile to perform pods restart for the resource if applicable RecreatePods bool `yaml:"recreatePods"` // Force, when set to true, forces resource update through delete/recreate if needed Force bool `yaml:"force"` // Atomic, when set to true, restore previous state in case of a failed install/upgrade attempt Atomic bool `yaml:"atomic"` TLS bool `yaml:"tls"` TLSCACert string `yaml:"tlsCACert"` TLSKey string `yaml:"tlsKey"` TLSCert string `yaml:"tlsCert"` }
HelmSpec to defines helmDefault values
type HelmState ¶
type HelmState struct { Environments map[string]EnvironmentSpec FilePath string Bases []string `yaml:"bases"` HelmDefaults HelmSpec `yaml:"helmDefaults"` Helmfiles []SubHelmfileSpec `yaml:"helmfiles"` DeprecatedContext string `yaml:"context"` DeprecatedReleases []ReleaseSpec `yaml:"charts"` Namespace string `yaml:"namespace"` Repositories []RepositorySpec `yaml:"repositories"` Releases []ReleaseSpec `yaml:"releases"` Selectors []string Templates map[string]TemplateSpec `yaml:"templates"` Env environment.Environment // contains filtered or unexported fields }
HelmState structure for the helmfile
func (*HelmState) BuildDeps ¶ added in v0.45.0
BuildDeps wrapper for building dependencies on the releases
func (*HelmState) DeleteReleases ¶
func (st *HelmState) DeleteReleases(affectedReleases *AffectedReleases, helm helmexec.Interface, purge bool) []error
DeleteReleases wrapper for executing helm delete on the releases
func (*HelmState) DetectReleasesToBeDeleted ¶ added in v0.36.0
func (st *HelmState) DetectReleasesToBeDeleted(helm helmexec.Interface) ([]*ReleaseSpec, error)
func (*HelmState) DiffReleases ¶
func (st *HelmState) DiffReleases(helm helmexec.Interface, additionalValues []string, workerLimit int, detailedExitCode, suppressSecrets bool, triggerCleanupEvents bool) ([]*ReleaseSpec, []error)
DiffReleases wrapper for executing helm diff on the releases It returns releases that had any changes
func (*HelmState) ExecuteTemplates ¶ added in v0.42.0
func (*HelmState) ExpandPaths ¶ added in v0.63.2
func (*HelmState) FilterReleases ¶
FilterReleases allows for the execution of helm commands against a subset of the releases in the helmfile.
func (*HelmState) JoinBase ¶ added in v0.33.2
JoinBase returns an absolute path in the form basePath/relative
func (*HelmState) LintReleases ¶ added in v0.20.0
func (st *HelmState) LintReleases(helm helmexec.Interface, additionalValues []string, args []string, workerLimit int) []error
LintReleases wrapper for executing helm lint on the releases
func (*HelmState) PrepareReleases ¶ added in v0.61.0
func (*HelmState) ReleaseStatuses ¶ added in v0.14.0
func (*HelmState) RenderValuesFileToBytes ¶ added in v0.28.0
func (*HelmState) ResolveDeps ¶ added in v0.61.0
ResolveDeps returns a copy of this helmfile state with the concrete chart version numbers filled in for remote chart dependencies
func (*HelmState) SyncReleases ¶
func (st *HelmState) SyncReleases(affectedReleases *AffectedReleases, helm helmexec.Interface, additionalValues []string, workerLimit int) []error
SyncReleases wrapper for executing helm upgrade on the releases
func (*HelmState) SyncRepos ¶
func (st *HelmState) SyncRepos(helm RepoUpdater) []error
SyncRepos will update the given helm releases
func (*HelmState) TemplateReleases ¶ added in v0.31.0
func (st *HelmState) TemplateReleases(helm helmexec.Interface, additionalValues []string, args []string, workerLimit int) []error
TemplateReleases wrapper for executing helm template on the releases
type LabelFilter ¶
type LabelFilter struct {
// contains filtered or unexported fields
}
LabelFilter matches a release with the given positive lables. Negative labels invert the match for cases such as tier!=backend
func ParseLabels ¶
func ParseLabels(l string) (LabelFilter, error)
ParseLabels takes a label in the form foo=bar,baz!=bat and returns a LabelFilter that will match the labels
func (LabelFilter) Match ¶
func (l LabelFilter) Match(r ReleaseSpec) bool
Match will match a release that has the same labels as the filter
type ReleaseError ¶ added in v0.23.0
type ReleaseError struct { *ReleaseSpec Code int // contains filtered or unexported fields }
func (*ReleaseError) Error ¶ added in v0.23.0
func (e *ReleaseError) Error() string
type ReleaseFilter ¶
type ReleaseFilter interface { // Match returns true if the ReleaseSpec matches the Filter Match(r ReleaseSpec) bool }
ReleaseFilter is used to determine if a given release should be used during helmfile execution
type ReleaseSpec ¶
type ReleaseSpec struct { // Chart is the name of the chart being installed to create this release Chart string `yaml:"chart"` Version string `yaml:"version"` Verify *bool `yaml:"verify"` // Devel, when set to true, use development versions, too. Equivalent to version '>0.0.0-0' Devel *bool `yaml:"devel"` // Wait, if set to true, will wait until all Pods, PVCs, Services, and minimum number of Pods of a Deployment are in a ready state before marking the release as successful Wait *bool `yaml:"wait"` // Timeout is the time in seconds to wait for any individual Kubernetes operation (like Jobs for hooks, and waits on pod/pvc/svc/deployment readiness) (default 300) Timeout *int `yaml:"timeout"` // RecreatePods, when set to true, instruct helmfile to perform pods restart for the resource if applicable RecreatePods *bool `yaml:"recreatePods"` // Force, when set to true, forces resource update through delete/recreate if needed Force *bool `yaml:"force"` // Installed, when set to true, `delete --purge` the release Installed *bool `yaml:"installed"` // Atomic, when set to true, restore previous state in case of a failed install/upgrade attempt Atomic *bool `yaml:"atomic"` // MissingFileHandler is set to either "Error" or "Warn". "Error" instructs helmfile to fail when unable to find a values or secrets file. When "Warn", it prints the file and continues. // The default value for MissingFileHandler is "Error". MissingFileHandler *string `yaml:"missingFileHandler"` // Hooks is a list of extension points paired with operations, that are executed in specific points of the lifecycle of releases defined in helmfile Hooks []event.Hook `yaml:"hooks"` // Name is the name of this release Name string `yaml:"name"` Namespace string `yaml:"namespace"` Labels map[string]string `yaml:"labels"` Values []interface{} `yaml:"values"` Secrets []string `yaml:"secrets"` SetValues []SetValue `yaml:"set"` // The 'env' section is not really necessary any longer, as 'set' would now provide the same functionality EnvValues []SetValue `yaml:"env"` ValuesPathPrefix string `yaml:"valuesPathPrefix"` TillerNamespace string `yaml:"tillerNamespace"` Tillerless *bool `yaml:"tillerless"` TLS *bool `yaml:"tls"` TLSCACert string `yaml:"tlsCACert"` TLSKey string `yaml:"tlsKey"` TLSCert string `yaml:"tlsCert"` // contains filtered or unexported fields }
ReleaseSpec defines the structure of a helm release
func (ReleaseSpec) Clone ¶ added in v0.42.0
func (r ReleaseSpec) Clone() (*ReleaseSpec, error)
func (ReleaseSpec) Desired ¶ added in v0.51.1
func (r ReleaseSpec) Desired() bool
func (ReleaseSpec) ExecuteTemplateExpressions ¶ added in v0.42.0
func (r ReleaseSpec) ExecuteTemplateExpressions(renderer *tmpl.FileRenderer) (*ReleaseSpec, error)
type ReleaseTemplateData ¶ added in v0.42.0
type ReleaseTemplateData struct { // Environment is accessible as `.Environment` from any template expression executed by the renderer Environment environment.Environment // Release is accessible as `.Release` from any template expression executed by the renderer Release ReleaseSpec }
ReleaseTemplateData provides variables accessible while executing golang text/template expressions in releases of a helmfile YAML file
type RepoUpdater ¶ added in v0.38.0
type RepositorySpec ¶
type RepositorySpec struct { Name string `yaml:"name"` URL string `yaml:"url"` CertFile string `yaml:"certFile"` KeyFile string `yaml:"keyFile"` Username string `yaml:"username"` Password string `yaml:"password"` }
RepositorySpec that defines values for a helm repo
type ResolvedChartDependency ¶ added in v0.61.0
type ResolvedChartDependency struct { // ChartName identifies the dependant chart. In Helmfile, ChartName for `chart: stable/envoy` would be just `envoy`. // It can't be collided with other charts referenced in the same helmfile spec. // That is, collocating `chart: incubator/foo` and `chart: stable/foo` isn't allowed. Name them differently for a work-around. ChartName string `yaml:"name"` // Repository contains the URL for the helm chart repository that hosts the chart identified by ChartName Repository string `yaml:"repository"` // Version is the version number of the dependent chart. // In the context of helmfile this can be omitted. When omitted, it is considered `*` which results helm/helmfile fetching the latest version. Version string `yaml:"version"` }
type ResolvedDependencies ¶ added in v0.61.0
type ResolvedDependencies struct {
// contains filtered or unexported fields
}
type SetValue ¶
type SetValue struct { Name string `yaml:"name"` Value string `yaml:"value"` File string `yaml:"file"` Values []string `yaml:"values"` }
SetValue are the key values to set on a helm release
type StateCreator ¶ added in v0.63.1
type StateCreator struct { Strict bool LoadFile func(inheritedEnv *environment.Environment, baseDir, file string, evaluateBases bool) (*HelmState, error) // contains filtered or unexported fields }
func NewCreator ¶ added in v0.33.4
func (*StateCreator) LoadEnvValues ¶ added in v0.63.1
func (c *StateCreator) LoadEnvValues(target *HelmState, env string, ctxEnv *environment.Environment) (*HelmState, error)
LoadEnvValues loads environment values files relative to the `baseDir`
func (*StateCreator) Parse ¶ added in v0.63.1
func (c *StateCreator) Parse(content []byte, baseDir, file string) (*HelmState, error)
Parse parses YAML into HelmState
func (*StateCreator) ParseAndLoad ¶ added in v0.63.1
func (c *StateCreator) ParseAndLoad(content []byte, baseDir, file string, envName string, evaluateBases bool, envValues *environment.Environment) (*HelmState, error)
Parses YAML into HelmState, while loading environment values files relative to the `baseDir`
type StateLoadError ¶ added in v0.32.0
type StateLoadError struct { Cause error // contains filtered or unexported fields }
func (*StateLoadError) Error ¶ added in v0.32.0
func (e *StateLoadError) Error() string
type SubHelmfileSpec ¶ added in v0.56.0
type SubHelmfileSpec struct { Path string //path or glob pattern for the sub helmfiles Selectors []string //chosen selectors for the sub helmfiles SelectorsInherited bool //do the sub helmfiles inherits from parent selectors }
SubHelmfileSpec defines the subhelmfile path and options
func (*SubHelmfileSpec) UnmarshalYAML ¶ added in v0.56.0
func (hf *SubHelmfileSpec) UnmarshalYAML(unmarshal func(interface{}) error) error
UnmarshalYAML will unmarshal the helmfile yaml section and fill the SubHelmfileSpec structure this is required to keep allowing string scalar for defining helmfile
type TemplateSpec ¶ added in v0.42.0
type TemplateSpec struct {
ReleaseSpec `yaml:",inline"`
}
TemplateSpec defines the structure of a reusable and composable template for helm releases.
type TestFs ¶ added in v0.63.2
type TestFs struct { Cwd string GlobFixtures map[string][]string // contains filtered or unexported fields }
func (*TestFs) DirectoryExistsAt ¶ added in v0.63.2
func (*TestFs) FileExistsAt ¶ added in v0.63.2
func (*TestFs) FileReaderCalls ¶ added in v0.63.2
func (*TestFs) SuccessfulReads ¶ added in v0.63.2
type UndefinedEnvError ¶ added in v0.32.0
type UndefinedEnvError struct {
// contains filtered or unexported fields
}
func (*UndefinedEnvError) Error ¶ added in v0.32.0
func (e *UndefinedEnvError) Error() string
type UnresolvedDependencies ¶ added in v0.61.0
type UnresolvedDependencies struct {
// contains filtered or unexported fields
}
func (*UnresolvedDependencies) Add ¶ added in v0.61.0
func (d *UnresolvedDependencies) Add(chart, url, versionConstraint string) error
func (*UnresolvedDependencies) ToChartRequirements ¶ added in v0.61.0
func (d *UnresolvedDependencies) ToChartRequirements() *ChartRequirements