Documentation ¶
Overview ¶
Package action contains the logic for each action that Helm can perform.
This is a library for calling top-level Helm actions like 'install', 'upgrade', or 'list'. Actions approximately match the command line invocations that the Helm client uses.
Index ¶
- Constants
- Variables
- func CheckDependencies(ch *chart.Chart, reqs []*chart.Dependency) error
- func FormatList(rels []*release.Release) string
- func GetVersionSet(client discovery.ServerResourcesInterface) (chartutil.VersionSet, error)
- func PrintRelease(out io.Writer, rel *release.Release)
- func TemplateName(nameTemplate string) (string, error)
- type ChartExport
- type ChartList
- type ChartPathOptions
- type ChartPull
- type ChartPush
- type ChartRemove
- type ChartSave
- type Configuration
- type Dependency
- type Get
- type GetValues
- type History
- type Install
- type Lint
- type LintResult
- type List
- type ListStates
- type OutputFormat
- type Package
- type Pull
- type RESTClientGetter
- type RegistryLogin
- type RegistryLogout
- type ReleaseTesting
- type Rollback
- type Show
- type ShowOutputFormat
- type Sorter
- type Status
- type TableFunc
- type Uninstall
- type Upgrade
- type ValueOptions
- type Verify
Constants ¶
const ListAll = ListDeployed | ListUninstalled | ListUninstalling | ListPendingInstall | ListPendingRollback | ListPendingUpgrade | ListSuperseded | ListFailed
ListAll is a convenience for enabling all list filters
Variables ¶
var ErrInvalidFormatType = fmt.Errorf("invalid format type")
ErrInvalidFormatType is returned when an unsupported format type is used
var Timestamper = time.Now
Timestamper is a function capable of producing a timestamp.Timestamper.
By default, this is a time.Time function. This can be overridden for testing, though, so that timestamps are predictable.
var ValidName = regexp.MustCompile("^(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])+$")
ValidName is a regular expression for names.
According to the Kubernetes help text, the regular expression it uses is:
(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])?
We modified that. First, we added start and end delimiters. Second, we changed the final ? to + to require that the pattern match at least once. This modification prevents an empty string from matching.
Functions ¶
func CheckDependencies ¶
func CheckDependencies(ch *chart.Chart, reqs []*chart.Dependency) error
func FormatList ¶
func GetVersionSet ¶
func GetVersionSet(client discovery.ServerResourcesInterface) (chartutil.VersionSet, error)
GetVersionSet retrieves a set of available k8s API versions
func PrintRelease ¶
PrintRelease prints info about a release
func TemplateName ¶
Types ¶
type ChartExport ¶
type ChartExport struct {
// contains filtered or unexported fields
}
ChartExport performs a chart export operation.
func NewChartExport ¶
func NewChartExport(cfg *Configuration) *ChartExport
NewChartExport creates a new ChartExport object with the given configuration.
type ChartList ¶
type ChartList struct {
// contains filtered or unexported fields
}
ChartList performs a chart list operation.
func NewChartList ¶
func NewChartList(cfg *Configuration) *ChartList
NewChartList creates a new ChartList object with the given configuration.
type ChartPathOptions ¶
type ChartPathOptions struct { CaFile string // --ca-file CertFile string // --cert-file KeyFile string // --key-file Keyring string // --keyring Password string // --password RepoURL string // --repo Username string // --username Verify bool // --verify Version string // --version }
func (*ChartPathOptions) LocateChart ¶
func (c *ChartPathOptions) LocateChart(name string, settings cli.EnvSettings) (string, error)
LocateChart looks for a chart directory in known places, and returns either the full path or an error.
This does not ensure that the chart is well-formed; only that the requested filename exists.
Order of resolution: - relative to current working directory - if path is absolute or begins with '.', error out here - chart repos in $HELM_HOME - URL
If 'verify' is true, this will attempt to also verify the chart.
type ChartPull ¶
type ChartPull struct {
// contains filtered or unexported fields
}
ChartPull performs a chart pull operation.
func NewChartPull ¶
func NewChartPull(cfg *Configuration) *ChartPull
NewChartPull creates a new ChartPull object with the given configuration.
type ChartPush ¶
type ChartPush struct {
// contains filtered or unexported fields
}
ChartPush performs a chart push operation.
func NewChartPush ¶
func NewChartPush(cfg *Configuration) *ChartPush
NewChartPush creates a new ChartPush object with the given configuration.
type ChartRemove ¶
type ChartRemove struct {
// contains filtered or unexported fields
}
ChartRemove performs a chart remove operation.
func NewChartRemove ¶
func NewChartRemove(cfg *Configuration) *ChartRemove
NewChartRemove creates a new ChartRemove object with the given configuration.
type ChartSave ¶
type ChartSave struct {
// contains filtered or unexported fields
}
ChartSave performs a chart save operation.
func NewChartSave ¶
func NewChartSave(cfg *Configuration) *ChartSave
NewChartSave creates a new ChartSave object with the given configuration.
type Configuration ¶
type Configuration struct { // RESTClientGetter is an interface that loads Kuberbetes clients. RESTClientGetter RESTClientGetter // Releases stores records of releases. Releases *storage.Storage // KubeClient is a Kubernetes API client. KubeClient kube.Interface // RegistryClient is a client for working with registries RegistryClient *registry.Client // Capabilities describes the capabilities of the Kubernetes cluster. Capabilities *chartutil.Capabilities Log func(string, ...interface{}) }
Configuration injects the dependencies that all actions share.
func (*Configuration) Now ¶
func (c *Configuration) Now() time.Time
Now generates a timestamp
If the configuration has a Timestamper on it, that will be used. Otherwise, this will use time.Now().
type Dependency ¶
Dependency is the action for building a given chart's dependency tree.
It provides the implementation of 'helm dependency' and its respective subcommands.
func NewDependency ¶
func NewDependency() *Dependency
NewDependency creates a new Dependency object with the given configuration.
type Get ¶
type Get struct { Version int // contains filtered or unexported fields }
Get is the action for checking a given release's information.
It provides the implementation of 'helm get' and its respective subcommands (except `helm get values`).
func NewGet ¶
func NewGet(cfg *Configuration) *Get
NewGet creates a new Get object with the given configuration.
type GetValues ¶
GetValues is the action for checking a given release's values.
It provides the implementation of 'helm get values'.
func NewGetValues ¶
func NewGetValues(cfg *Configuration) *GetValues
NewGetValues creates a new GetValues object with the given configuration.
type History ¶
History is the action for checking the release's ledger.
It provides the implementation of 'helm history'.
func NewHistory ¶
func NewHistory(cfg *Configuration) *History
NewHistory creates a new History object with the given configuration.
type Install ¶
type Install struct { ChartPathOptions ValueOptions ClientOnly bool DryRun bool DisableHooks bool Replace bool Wait bool Devel bool DependencyUpdate bool Timeout time.Duration Namespace string ReleaseName string GenerateName bool NameTemplate string OutputDir string Atomic bool // contains filtered or unexported fields }
Install performs an installation operation.
func NewInstall ¶
func NewInstall(cfg *Configuration) *Install
NewInstall creates a new Install object with the given configuration.
func (*Install) NameAndChart ¶
NameAndChart returns the name and chart that should be used.
This will read the flags and handle name generation if necessary.
type Lint ¶
type Lint struct { ValueOptions Strict bool Namespace string }
Lint is the action for checking that the semantics of a chart are well-formed.
It provides the implementation of 'helm lint'.
func (*Lint) Run ¶
func (l *Lint) Run(paths []string) *LintResult
Run executes 'helm Lint' against the given chart.
type LintResult ¶
type List ¶
type List struct { // All ignores the limit/offset All bool // AllNamespaces searches across namespaces AllNamespaces bool // Sort indicates the sort to use // // see pkg/releaseutil for several useful sorters Sort Sorter // Overrides the default lexicographic sorting ByDate bool SortReverse bool // StateMask accepts a bitmask of states for items to show. // The default is ListDeployed StateMask ListStates // Limit is the number of items to return per Run() Limit int // Offset is the starting index for the Run() call Offset int // Filter is a filter that is applied to the results Filter string Short bool Uninstalled bool Superseded bool Uninstalling bool Deployed bool Failed bool Pending bool // contains filtered or unexported fields }
List is the action for listing releases.
It provides, for example, the implementation of 'helm list'.
func (*List) SetConfiguration ¶
func (l *List) SetConfiguration(cfg *Configuration)
func (*List) SetStateMask ¶
func (l *List) SetStateMask()
setStateMask calculates the state mask based on parameters.
type ListStates ¶
type ListStates uint
ListStates represents zero or more status codes that a list item may have set
Because this is used as a bitmask filter, more than one one bit can be flipped in the ListStates.
const ( // ListDeployed filters on status "deployed" ListDeployed ListStates = 1 << iota // ListUninstalled filters on status "uninstalled" ListUninstalled // ListUninstalling filters on status "uninstalling" (uninstall in progress) ListUninstalling // ListPendingInstall filters on status "pending" (deployment in progress) ListPendingInstall // ListPendingUpgrade filters on status "pending_upgrade" (upgrade in progress) ListPendingUpgrade // ListPendingRollback filters on status "pending_rollback" (rollback in progres) ListPendingRollback // ListSuperseded filters on status "superseded" (historical release version that is no longer deployed) ListSuperseded // ListFailed filters on status "failed" (release version not deployed because of error) ListFailed // ListUnknown filters on an unknown status ListUnknown )
func (ListStates) FromName ¶
func (s ListStates) FromName(str string) ListStates
FromName takes a state name and returns a ListStates representation.
Currently, there are only names for individual flipped bits, so the returned ListStates will only match one of the constants. However, it is possible that this behavior could change in the future.
type OutputFormat ¶
type OutputFormat string
OutputFormat is a type for capturing supported output formats
const ( Table OutputFormat = "table" JSON OutputFormat = "json" YAML OutputFormat = "yaml" )
func ParseOutputFormat ¶
func ParseOutputFormat(s string) (out OutputFormat, err error)
ParseOutputFormat takes a raw string and returns the matching OutputFormat. If the format does not exists, ErrInvalidFormatType is returned
func (OutputFormat) Marshal ¶
func (o OutputFormat) Marshal(data interface{}) (byt []byte, err error)
Marshal uses the specified output format to marshal out the given data. It does not support tabular output. For tabular output, use MarshalTable
func (OutputFormat) MarshalTable ¶
func (o OutputFormat) MarshalTable(f TableFunc) ([]byte, error)
MarshalTable returns a formatted table using the given headers. Rows can be added to the table using the given TableFunc
func (OutputFormat) String ¶
func (o OutputFormat) String() string
String returns the string reprsentation of the OutputFormat
type Package ¶
type Package struct { ValueOptions Sign bool Key string Keyring string Version string AppVersion string Destination string DependencyUpdate bool }
Package is the action for packaging a chart.
It provides the implementation of 'helm package'.
func NewPackage ¶
func NewPackage() *Package
NewPackage creates a new Package object with the given configuration.
type Pull ¶
type Pull struct { ChartPathOptions Settings cli.EnvSettings // TODO: refactor this out of pkg/action Devel bool Untar bool VerifyLater bool UntarDir string DestDir string }
Pull is the action for checking a given release's information.
It provides the implementation of 'helm pull'.
type RESTClientGetter ¶
type RESTClientGetter interface { ToRESTConfig() (*rest.Config, error) ToDiscoveryClient() (discovery.CachedDiscoveryInterface, error) ToRESTMapper() (meta.RESTMapper, error) }
type RegistryLogin ¶
type RegistryLogin struct {
// contains filtered or unexported fields
}
RegistryLogin performs a registry login operation.
func NewRegistryLogin ¶
func NewRegistryLogin(cfg *Configuration) *RegistryLogin
NewRegistryLogin creates a new RegistryLogin object with the given configuration.
type RegistryLogout ¶
type RegistryLogout struct {
// contains filtered or unexported fields
}
RegistryLogout performs a registry login operation.
func NewRegistryLogout ¶
func NewRegistryLogout(cfg *Configuration) *RegistryLogout
NewRegistryLogout creates a new RegistryLogout object with the given configuration.
type ReleaseTesting ¶
type ReleaseTesting struct { Timeout time.Duration Cleanup bool // contains filtered or unexported fields }
ReleaseTesting is the action for testing a release.
It provides the implementation of 'helm test'.
func NewReleaseTesting ¶
func NewReleaseTesting(cfg *Configuration) *ReleaseTesting
NewReleaseTesting creates a new ReleaseTesting object with the given configuration.
func (*ReleaseTesting) Run ¶
func (r *ReleaseTesting) Run(name string) (<-chan *release.TestReleaseResponse, <-chan error)
Run executes 'helm test' against the given release.
type Rollback ¶
type Rollback struct { Version int Timeout time.Duration Wait bool DisableHooks bool DryRun bool Recreate bool // will (if true) recreate pods after a rollback. Force bool // will (if true) force resource upgrade through uninstall/recreate if needed // contains filtered or unexported fields }
Rollback is the action for rolling back to a given release.
It provides the implementation of 'helm rollback'.
func NewRollback ¶
func NewRollback(cfg *Configuration) *Rollback
NewRollback creates a new Rollback object with the given configuration.
type Show ¶
type Show struct { OutputFormat ShowOutputFormat ChartPathOptions }
Show is the action for checking a given release's information.
It provides the implementation of 'helm show' and its respective subcommands.
func NewShow ¶
func NewShow(output ShowOutputFormat) *Show
NewShow creates a new Show object with the given configuration.
type ShowOutputFormat ¶
type ShowOutputFormat string
const ( ShowAll ShowOutputFormat = "all" ShowChart ShowOutputFormat = "chart" ShowValues ShowOutputFormat = "values" ShowReadme ShowOutputFormat = "readme" )
func (ShowOutputFormat) String ¶
func (o ShowOutputFormat) String() string
type Status ¶
Status is the action for checking the deployment status of releases.
It provides the implementation of 'helm status'.
func NewStatus ¶
func NewStatus(cfg *Configuration) *Status
NewStatus creates a new Status object with the given configuration.
type Uninstall ¶
type Uninstall struct { DisableHooks bool DryRun bool KeepHistory bool Timeout time.Duration // contains filtered or unexported fields }
Uninstall is the action for uninstalling releases.
It provides the implementation of 'helm uninstall'.
func NewUninstall ¶
func NewUninstall(cfg *Configuration) *Uninstall
NewUninstall creates a new Uninstall object with the given configuration.
type Upgrade ¶
type Upgrade struct { ChartPathOptions ValueOptions Install bool Devel bool Namespace string Timeout time.Duration Wait bool DisableHooks bool DryRun bool Force bool ResetValues bool ReuseValues bool // Recreate will (if true) recreate pods after a rollback. Recreate bool // MaxHistory limits the maximum number of revisions saved per release MaxHistory int Atomic bool // contains filtered or unexported fields }
Upgrade is the action for upgrading releases.
It provides the implementation of 'helm upgrade'.
func NewUpgrade ¶
func NewUpgrade(cfg *Configuration) *Upgrade
NewUpgrade creates a new Upgrade object with the given configuration.
type ValueOptions ¶
type ValueOptions struct { ValueFiles []string StringValues []string Values []string // contains filtered or unexported fields }
func NewValueOptions ¶
func NewValueOptions(values map[string]interface{}) ValueOptions
func (*ValueOptions) MergeValues ¶
func (v *ValueOptions) MergeValues(settings cli.EnvSettings) error
MergeValues merges values from files specified via -f/--values and directly via --set or --set-string, marshaling them to YAML
Source Files ¶
- action.go
- chart_export.go
- chart_list.go
- chart_pull.go
- chart_push.go
- chart_remove.go
- chart_save.go
- dependency.go
- doc.go
- get.go
- get_values.go
- history.go
- install.go
- lint.go
- list.go
- output.go
- package.go
- printer.go
- pull.go
- registry_login.go
- registry_logout.go
- release_testing.go
- resource_policy.go
- rollback.go
- show.go
- status.go
- uninstall.go
- upgrade.go
- verify.go