Documentation ¶
Index ¶
- type ChartSpec
- type Client
- type GenericHelmOptions
- type HelmClient
- func (c *HelmClient) AddOrUpdateChartRepo(entry repo.Entry) error
- func (c *HelmClient) GetChart(chartName string, chartPathOptions *action.ChartPathOptions) (*chart.Chart, string, error)
- func (c *HelmClient) GetRelease(name string) (*release.Release, error)
- func (c *HelmClient) GetReleaseValues(name string, allValues bool) (map[string]interface{}, error)
- func (c *HelmClient) InstallChart(ctx context.Context, spec *ChartSpec, opts *GenericHelmOptions) (*release.Release, error)
- func (c *HelmClient) InstallOrUpgradeChart(ctx context.Context, spec *ChartSpec, opts *GenericHelmOptions) (*release.Release, error)
- func (c *HelmClient) LintChart(spec *ChartSpec) error
- func (c *HelmClient) ListDeployedReleases() ([]*release.Release, error)
- func (c *HelmClient) ListReleaseHistory(name string, max int) ([]*release.Release, error)
- func (c *HelmClient) ListReleasesByStateMask(states action.ListStates) ([]*release.Release, error)
- func (c *HelmClient) RollbackRelease(spec *ChartSpec) error
- func (c *HelmClient) SetDebugLog(debugLog action.DebugLog)
- func (c *HelmClient) TemplateChart(spec *ChartSpec, options *HelmTemplateOptions) ([]byte, error)
- func (c *HelmClient) UninstallRelease(spec *ChartSpec) error
- func (c *HelmClient) UninstallReleaseByName(name string) error
- func (c *HelmClient) UpdateChartRepos() error
- func (c *HelmClient) UpgradeChart(ctx context.Context, spec *ChartSpec, opts *GenericHelmOptions) (*release.Release, error)
- type HelmTemplateOptions
- type KubeConfClientOptions
- type Options
- type RESTClientGetter
- type RESTClientOption
- type RestConfClientOptions
- type RollBack
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ChartSpec ¶
type ChartSpec struct { ReleaseName string `json:"release"` ChartName string `json:"chart"` // Namespace where the chart release is deployed. // Note that helmclient.Options.Namespace should ideally match the namespace configured here. Namespace string `json:"namespace"` // ValuesYaml is the values.yaml content. // use string instead of map[string]interface{} // https://github.com/kubernetes-sigs/kubebuilder/issues/528#issuecomment-466449483 // and https://github.com/kubernetes-sigs/controller-tools/pull/317 // +optional ValuesYaml string `json:"valuesYaml,omitempty"` // Version of the chart release. // +optional Version string `json:"version,omitempty"` // CreateNamespace indicates whether to create the namespace if it does not exist. // +optional CreateNamespace bool `json:"createNamespace,omitempty"` // DisableHooks indicates whether to disable hooks. // +optional DisableHooks bool `json:"disableHooks,omitempty"` // Replace indicates whether to replace the chart release if it already exists. // +optional Replace bool `json:"replace,omitempty"` // Wait indicates whether to wait for the release to be deployed or not. // +optional Wait bool `json:"wait,omitempty"` // WaitForJobs indicates whether to wait for completion of release Jobs before marking the release as successful. // 'Wait' has to be specified for this to take effect. // The timeout may be specified via the 'Timeout' field. WaitForJobs bool `json:"waitForJobs,omitempty"` // DependencyUpdate indicates whether to update the chart release if the dependencies have changed. // +optional DependencyUpdate bool `json:"dependencyUpdate,omitempty"` // Timeout configures the time to wait for any individual Kubernetes operation (like Jobs for hooks). // +optional Timeout time.Duration `json:"timeout,omitempty"` // GenerateName indicates that the release name should be generated. // +optional GenerateName bool `json:"generateName,omitempty"` // NameTemplate is the template used to generate the release name if GenerateName is configured. // +optional NameTemplate string `json:"nameTemplate,omitempty"` // Atomic indicates whether to install resources atomically. // 'Wait' will automatically be set to true when using Atomic. // +optional Atomic bool `json:"atomic,omitempty"` // SkipCRDs indicates whether to skip CRDs during installation. // +optional SkipCRDs bool `json:"skipCRDs,omitempty"` // Upgrade indicates whether to perform a CRD upgrade during installation. // +optional UpgradeCRDs bool `json:"upgradeCRDs,omitempty"` // SubNotes indicates whether to print sub-notes. // +optional SubNotes bool `json:"subNotes,omitempty"` // Force indicates whether to force the operation. // +optional Force bool `json:"force,omitempty"` // ResetValues indicates whether to reset the values.yaml file during installation. // +optional ResetValues bool `json:"resetValues,omitempty"` // ReuseValues indicates whether to reuse the values.yaml file during installation. // +optional ReuseValues bool `json:"reuseValues,omitempty"` // Recreate indicates whether to recreate the release if it already exists. // +optional Recreate bool `json:"recreate,omitempty"` // MaxHistory limits the maximum number of revisions saved per release. // +optional MaxHistory int `json:"maxHistory,omitempty"` // CleanupOnFail indicates whether to cleanup the release on failure. // +optional CleanupOnFail bool `json:"cleanupOnFail,omitempty"` // DryRun indicates whether to perform a dry run. // +optional DryRun bool `json:"dryRun,omitempty"` }
ChartSpec defines the values of a helm chart +kubebuilder:object:generate:=true
func (*ChartSpec) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ChartSpec.
func (*ChartSpec) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ChartSpec) GetValuesMap ¶
GetValuesMap returns the mapped out values of a chart
type Client ¶
type Client interface { AddOrUpdateChartRepo(entry repo.Entry) error UpdateChartRepos() error InstallOrUpgradeChart(ctx context.Context, spec *ChartSpec, opts *GenericHelmOptions) (*release.Release, error) InstallChart(ctx context.Context, spec *ChartSpec, opts *GenericHelmOptions) (*release.Release, error) UpgradeChart(ctx context.Context, spec *ChartSpec, opts *GenericHelmOptions) (*release.Release, error) ListDeployedReleases() ([]*release.Release, error) ListReleasesByStateMask(action.ListStates) ([]*release.Release, error) GetRelease(name string) (*release.Release, error) // RollBack is an interface to abstract a rollback action. RollBack GetReleaseValues(name string, allValues bool) (map[string]interface{}, error) UninstallRelease(spec *ChartSpec) error UninstallReleaseByName(name string) error TemplateChart(spec *ChartSpec, options *HelmTemplateOptions) ([]byte, error) LintChart(spec *ChartSpec) error SetDebugLog(debugLog action.DebugLog) ListReleaseHistory(name string, max int) ([]*release.Release, error) GetChart(chartName string, chartPathOptions *action.ChartPathOptions) (*chart.Chart, string, error) }
Client holds the method signatures for a Helm client. NOTE: This is an interface to allow for mocking in tests.
func NewClientFromKubeConf ¶
func NewClientFromKubeConf(options *KubeConfClientOptions, restClientOpts ...RESTClientOption) (Client, error)
NewClientFromKubeConf returns a new Helm client constructed with the provided kubeconfig & RESTClient (optional) options.
func NewClientFromRestConf ¶
func NewClientFromRestConf(options *RestConfClientOptions) (Client, error)
NewClientFromRestConf returns a new Helm client constructed with the provided REST config options.
type GenericHelmOptions ¶
type GenericHelmOptions struct { PostRenderer postrender.PostRenderer RollBack RollBack InsecureSkipTLSverify bool }
type HelmClient ¶
type HelmClient struct { // Settings defines the environment settings of a client. Settings *cli.EnvSettings Providers getter.Providers // ActionConfig is the helm action configuration. ActionConfig *action.Configuration DebugLog action.DebugLog // contains filtered or unexported fields }
HelmClient Client defines the values of a helm client.
func (*HelmClient) AddOrUpdateChartRepo ¶
func (c *HelmClient) AddOrUpdateChartRepo(entry repo.Entry) error
AddOrUpdateChartRepo adds or updates the provided helm chart repository.
func (*HelmClient) GetChart ¶
func (c *HelmClient) GetChart(chartName string, chartPathOptions *action.ChartPathOptions) (*chart.Chart, string, error)
GetChart returns a chart matching the provided chart name and options.
func (*HelmClient) GetRelease ¶
func (c *HelmClient) GetRelease(name string) (*release.Release, error)
GetRelease returns a release specified by name.
func (*HelmClient) GetReleaseValues ¶
func (c *HelmClient) GetReleaseValues(name string, allValues bool) (map[string]interface{}, error)
GetReleaseValues returns the (optionally, all computed) values for the specified release.
func (*HelmClient) InstallChart ¶
func (c *HelmClient) InstallChart(ctx context.Context, spec *ChartSpec, opts *GenericHelmOptions) (*release.Release, error)
InstallChart installs the provided chart and returns the corresponding release. Namespace and other context is provided via the helmclient.Options struct when instantiating a client.
func (*HelmClient) InstallOrUpgradeChart ¶
func (c *HelmClient) InstallOrUpgradeChart(ctx context.Context, spec *ChartSpec, opts *GenericHelmOptions) (*release.Release, error)
InstallOrUpgradeChart installs or upgrades the provided chart and returns the corresponding release. Namespace and other context is provided via the helmclient.Options struct when instantiating a client.
func (*HelmClient) LintChart ¶
func (c *HelmClient) LintChart(spec *ChartSpec) error
LintChart fetches a chart using the provided ChartSpec 'spec' and lints it's values.
func (*HelmClient) ListDeployedReleases ¶
func (c *HelmClient) ListDeployedReleases() ([]*release.Release, error)
ListDeployedReleases lists all deployed releases. Namespace and other context is provided via the helmclient.Options struct when instantiating a client.
func (*HelmClient) ListReleaseHistory ¶
ListReleaseHistory lists the last 'max' number of entries in the history of the release identified by 'name'.
func (*HelmClient) ListReleasesByStateMask ¶
func (c *HelmClient) ListReleasesByStateMask(states action.ListStates) ([]*release.Release, error)
ListReleasesByStateMask lists all releases filtered by stateMask. Namespace and other context is provided via the helmclient.Options struct when instantiating a client.
func (*HelmClient) RollbackRelease ¶
func (c *HelmClient) RollbackRelease(spec *ChartSpec) error
RollbackRelease implicitly rolls back a release to the last revision.
func (*HelmClient) SetDebugLog ¶
func (c *HelmClient) SetDebugLog(debugLog action.DebugLog)
SetDebugLog set's a Helm client's DebugLog to the desired 'debugLog'.
func (*HelmClient) TemplateChart ¶
func (c *HelmClient) TemplateChart(spec *ChartSpec, options *HelmTemplateOptions) ([]byte, error)
TemplateChart returns a rendered version of the provided ChartSpec 'spec' by performing a "dry-run" install.
func (*HelmClient) UninstallRelease ¶
func (c *HelmClient) UninstallRelease(spec *ChartSpec) error
UninstallRelease uninstalls the provided release
func (*HelmClient) UninstallReleaseByName ¶
func (c *HelmClient) UninstallReleaseByName(name string) error
UninstallReleaseByName uninstalls a release identified by the provided 'name'.
func (*HelmClient) UpdateChartRepos ¶
func (c *HelmClient) UpdateChartRepos() error
UpdateChartRepos updates the list of chart repositories stored in the client's cache.
func (*HelmClient) UpgradeChart ¶
func (c *HelmClient) UpgradeChart(ctx context.Context, spec *ChartSpec, opts *GenericHelmOptions) (*release.Release, error)
UpgradeChart upgrades the provided chart and returns the corresponding release. Namespace and other context is provided via the helmclient.Options struct when instantiating a client.
type HelmTemplateOptions ¶
type HelmTemplateOptions struct { KubeVersion *chartutil.KubeVersion // APIVersions defined here will be appended to the default list helm provides APIVersions chartutil.VersionSet }
type KubeConfClientOptions ¶
KubeConfClientOptions defines the options used for constructing a client via kubeconfig.
type Options ¶
type Options struct { Namespace string RepositoryConfig string RepositoryCache string Debug bool Linting bool DebugLog action.DebugLog RegistryConfig string Output io.Writer }
Options defines the options of a client. If Output is not set, os.Stdout will be used.
type RESTClientGetter ¶
type RESTClientGetter struct {
// contains filtered or unexported fields
}
RESTClientGetter defines the values of a helm REST client.
func NewRESTClientGetter ¶
func NewRESTClientGetter(namespace string, kubeConfig []byte, restConfig *rest.Config, opts ...RESTClientOption) *RESTClientGetter
NewRESTClientGetter returns a RESTClientGetter using the provided 'namespace', 'kubeConfig' and 'restConfig'.
source: https://github.com/helm/helm/issues/6910#issuecomment-601277026
func (*RESTClientGetter) ToDiscoveryClient ¶
func (c *RESTClientGetter) ToDiscoveryClient() (discovery.CachedDiscoveryInterface, error)
ToDiscoveryClient returns a CachedDiscoveryInterface that can be used as a discovery client.
func (*RESTClientGetter) ToRESTConfig ¶
func (c *RESTClientGetter) ToRESTConfig() (*rest.Config, error)
ToRESTConfig returns a REST config build from a given kubeconfig
func (*RESTClientGetter) ToRESTMapper ¶
func (c *RESTClientGetter) ToRESTMapper() (meta.RESTMapper, error)
func (*RESTClientGetter) ToRawKubeConfigLoader ¶
func (c *RESTClientGetter) ToRawKubeConfigLoader() clientcmd.ClientConfig
type RESTClientOption ¶
RESTClientOption is a function that can be used to set the RESTClientOptions of a HelmClient.
func Burst ¶
func Burst(v int) RESTClientOption
Maximum burst for throttle the created RESTClient will use DefaultBurst: 100.
func Timeout ¶
func Timeout(d time.Duration) RESTClientOption
Timeout specifies the timeout for a RESTClient as a RESTClientOption. The default (if unspecified) is 32 seconds. See [1] for reference. [^1]: https://github.com/kubernetes/client-go/blob/c6bd30b9ec5f668df191bc268c6f550c37726edb/discovery/discovery_client.go#L52
type RestConfClientOptions ¶
RestConfClientOptions defines the options used for constructing a client via REST config.