Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AffectedReleases ¶
type AffectedReleases struct {
Upgraded []*ReleaseSpec
Deleted []*ReleaseSpec
Failed []*ReleaseSpec
}
AffectedReleases hold the list of released that where updated, deleted, or in error
type Dependency ¶
type Dependency struct {
Chart string `json:"chart"`
Version string `json:"version"`
Alias string `json:"alias"`
}
Dependency deps
type Environment ¶
type Environment struct {
Name string
Values map[string]interface{}
Defaults map[string]interface{}
}
Environment vars
type EnvironmentSpec ¶
type EnvironmentSpec struct {
Values []interface{} `json:"values,omitempty"`
Secrets []string `json:"secrets,omitempty"`
// MissingFileHandler instructs helmfile to fail when unable to find a environment values file listed
// under `environments.NAME.values`.
//
// Possible values are "Error", "Warn", "Info", "Debug". The default is "Error".
//
// Use "Warn", "Info", or "Debug" if you want helmfile to not fail when a values file is missing, while just leaving
// a message about the missing file at the log-level.
MissingFileHandler *string `json:"missingFileHandler,omitempty"`
}
EnvironmentSpec envs
type EnvironmentTemplateData ¶
type EnvironmentTemplateData struct {
// Environment is accessible as `.Environment` from any template executed by the renderer
Environment Environment
// Namespace is accessible as `.Namespace` from any non-values template executed by the renderer
Namespace string
// Values is accessible as `.Values` and it contains default state values overrode by environment values and override values.
Values map[string]interface{}
}
EnvironmentTemplateData provides variables accessible while executing golang text/template expressions in helmfile and values YAML files
type HelmSpec ¶
type HelmSpec struct {
KubeContext string `json:"kubeContext,omitempty"`
TillerNamespace string `json:"tillerNamespace,omitempty"`
Tillerless bool `json:"tillerless"`
Args []string `json:"args,omitempty"`
Verify bool `json:"verify"`
// Devel, when set to true, use development versions, too. Equivalent to version '>0.0.0-0'
Devel bool `json:"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 `json:"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 `json:"timeout"`
// RecreatePods, when set to true, instruct helmfile to perform pods restart for the resource if applicable
RecreatePods bool `json:"recreatePods"`
// Force, when set to true, forces resource update through delete/recreate if needed
Force bool `json:"force"`
// Atomic, when set to true, restore previous state in case of a failed install/upgrade attempt
Atomic bool `json:"atomic"`
// CleanupOnFail, when set to true, the --cleanup-on-fail helm flag is passed to the upgrade command
CleanupOnFail bool `json:"cleanupOnFail,omitempty"`
// HistoryMax, limit the maximum number of revisions saved per release. Use 0 for no limit (default 10)
HistoryMax *int `json:"historyMax,omitempty"`
TLS bool `json:"tls"`
TLSCACert string `json:"tlsCACert,omitempty"`
TLSKey string `json:"tlsKey,omitempty"`
TLSCert string `json:"tlsCert,omitempty"`
}
HelmSpec to defines helmDefault values
type HelmState ¶
type HelmState struct {
FilePath string `json:"filePath,omitempty"`
// DefaultValues is the default values to be overrode by environment values and command-line overrides
DefaultValues []interface{} `json:"values,omitempty"`
Environments map[string]EnvironmentSpec `json:"environments,omitempty"`
Bases []string `json:"bases,omitempty"`
HelmDefaults HelmSpec `json:"helmDefaults,omitempty"`
Helmfiles []SubHelmfileSpec `json:"helmfiles,omitempty"`
DeprecatedContext string `json:"context,omitempty"`
DeprecatedReleases []ReleaseSpec `json:"charts,omitempty"`
OverrideNamespace string `json:"namespace,omitempty"`
Repositories []RepositorySpec `json:"repositories,omitempty"`
Releases []ReleaseSpec `json:"releases,omitempty"`
Selectors []string `json:"-"`
APIVersions []string `json:"apiVersions,omitempty"`
Templates map[string]TemplateSpec `json:"templates,omitempty"`
Env Environment `json:"-"`
}
HelmState structure for the helmfile
type Hook ¶
type Hook struct {
Name string `json:"name"`
Events []string `json:"events"`
Command string `json:"command"`
Args []string `json:"args"`
ShowLogs bool `json:"showlogs"`
}
Hook hooks
type ReleaseSpec ¶
type ReleaseSpec struct {
// Chart is the name of the chart being installed to create this release
Chart string `json:"chart,omitempty"`
Version string `json:"version,omitempty"`
Verify *bool `json:"verify,omitempty"`
// Devel, when set to true, use development versions, too. Equivalent to version '>0.0.0-0'
Devel *bool `json:"devel,omitempty"`
// 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 `json:"wait,omitempty"`
// 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 `json:"timeout,omitempty"`
// RecreatePods, when set to true, instruct helmfile to perform pods restart for the resource if applicable
RecreatePods *bool `json:"recreatePods,omitempty"`
// Force, when set to true, forces resource update through delete/recreate if needed
Force *bool `json:"force,omitempty"`
// Installed, when set to true, `delete --purge` the release
Installed *bool `json:"installed,omitempty"`
// Atomic, when set to true, restore previous state in case of a failed install/upgrade attempt
Atomic *bool `json:"atomic,omitempty"`
// CleanupOnFail, when set to true, the --cleanup-on-fail helm flag is passed to the upgrade command
CleanupOnFail *bool `json:"cleanupOnFail,omitempty"`
// HistoryMax, limit the maximum number of revisions saved per release. Use 0 for no limit (default 10)
HistoryMax *int `json:"historyMax,omitempty"`
// 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 `json:"missingFileHandler,omitempty"`
// Needs is the [TILLER_NS/][NS/]NAME representations of releases that this release depends on.
Needs []string `json:"needs,omitempty"`
// 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 []Hook `json:"hooks,omitempty"`
// Name is the name of this release
Name string `json:"name,omitempty"`
Namespace string `json:"namespace,omitempty"`
Labels map[string]string `json:"labels,omitempty"`
// JENKINS X comment - changed from the original []interface{} so we can unmarshall string array
Values []string `json:"values,omitempty"`
Secrets []string `json:"secrets,omitempty"`
SetValues []SetValue `json:"set,omitempty"`
ValuesTemplate []interface{} `json:"valuesTemplate,omitempty"`
SetValuesTemplate []SetValue `json:"setTemplate,omitempty"`
// The 'env' section is not really necessary any longer, as 'set' would now provide the same functionality
EnvValues []SetValue `json:"env,omitempty"`
ValuesPathPrefix string `json:"valuesPathPrefix,omitempty"`
TillerNamespace string `json:"tillerNamespace,omitempty"`
Tillerless *bool `json:"tillerless,omitempty"`
KubeContext string `json:"kubeContext,omitempty"`
TLS *bool `json:"tls,omitempty"`
TLSCACert string `json:"tlsCACert,omitempty"`
TLSKey string `json:"tlsKey,omitempty"`
TLSCert string `json:"tlsCert,omitempty"`
// These values are used in templating
TillerlessTemplate *string `json:"tillerlessTemplate,omitempty"`
VerifyTemplate *string `json:"verifyTemplate,omitempty"`
WaitTemplate *string `json:"waitTemplate,omitempty"`
InstalledTemplate *string `json:"installedTemplate,omitempty"`
// These settings requires helm-x integration to work
Dependencies []Dependency `json:"dependencies,omitempty"`
JSONPatches []interface{} `json:"jsonPatches,omitempty"`
StrategicMergePatches []interface{} `json:"strategicMergePatches,omitempty"`
Adopt []string `json:"adopt,omitempty"`
}
ReleaseSpec defines the structure of a helm release
type RepositorySpec ¶
type RepositorySpec struct {
Name string `json:"name,omitempty"`
URL string `json:"url,omitempty"`
CaFile string `json:"caFile,omitempty"`
CertFile string `json:"certFile,omitempty"`
KeyFile string `json:"keyFile,omitempty"`
Username string `json:"username,omitempty"`
Password string `json:"password,omitempty"`
}
RepositorySpec that defines values for a helm repo
type SetValue ¶
type SetValue struct {
Name string `json:"name,omitempty"`
Value string `json:"value,omitempty"`
File string `json:"file,omitempty"`
Values []string `json:"values,omitempty"`
}
SetValue are the key values to set on a helm release
type SubHelmfileSpec ¶
type SubHelmfileSpec struct {
//path or glob pattern for the sub helmfiles
Path string `json:"path,omitempty"`
//chosen selectors for the sub helmfiles
Selectors []string `json:"selectors,omitempty"`
//do the sub helmfiles inherits from parent selectors
SelectorsInherited bool `json:"selectorsInherited,omitempty"`
Environment SubhelmfileEnvironmentSpec
}
SubHelmfileSpec defines the subhelmfile path and options
type SubhelmfileEnvironmentSpec ¶
type SubhelmfileEnvironmentSpec struct {
OverrideValues []interface{} `json:"values,omitempty"`
}
SubhelmfileEnvironmentSpec overrides
type TemplateSpec ¶
type TemplateSpec struct {
ReleaseSpec `json:",inline"`
}
TemplateSpec defines the structure of a reusable and composable template for helm releases.