Documentation
¶
Index ¶
- func GetDockerhubHelmRepository(ctx context.Context, repo *corev1alpha1.Repository) ([]string, error)
- func GetGithubHelmRepository(ctx context.Context, repo *corev1alpha1.Repository) ([]string, error)
- func GetHarborRepository(ctx context.Context, repo *corev1alpha1.Repository) ([]string, error)
- func GetOCIRepoList(ctx context.Context, repo *corev1alpha1.Repository) ([]string, error)
- func ParseDescription(desc string) (ns, name, uid string, generation int64, raw string)
- func ParseDigestFromPullOut(out string) string
- func ReleaseLog(rel *release.Release) []interface{}
- func RepoAdd(ctx context.Context, logger logr.Logger, entry repo.Entry, ...) (err error)
- func RepoRemove(ctx context.Context, logger logr.Logger, name string) (err error)
- func RepoUpdate(ctx context.Context, logger logr.Logger, name string, ...) (err error)
- type ChartDef
- type ChartWorker
- type CoreHelm
- type CoreHelmWrapper
- func (c *CoreHelmWrapper) GetLastRelease() (rel *release.Release, err error)
- func (c *CoreHelmWrapper) GetManifestsByDryRun(ctx context.Context, chartName string) (data string, err error)
- func (c *CoreHelmWrapper) GetOCIRepoCharts(ctx context.Context, pullURL string, skipTags map[string]bool) (latest *chart.Metadata, all []*hrepo.ChartVersion, err error)
- func (c *CoreHelmWrapper) InstallOrUpgrade(ctx context.Context, chartName string) (rel *release.Release, err error)
- func (c *CoreHelmWrapper) Pull(ctx context.Context, pullURL, version string) (out, dir, entryName string, err error)
- func (c *CoreHelmWrapper) PullAndParse(ctx context.Context, pullURL, version string) (out string, chartRequested *chart.Chart, err error)
- func (c *CoreHelmWrapper) Rollback(ctx context.Context) (err error)
- func (c *CoreHelmWrapper) Template(ctx context.Context, version, localPath string) (rel *release.Release, err error)
- func (c *CoreHelmWrapper) Uninstall(ctx context.Context) (err error)
- type HelmRelease
- type HelmWrapper
- func (h *HelmWrapper) GetDefaultInstallCfg() *action.Install
- func (h *HelmWrapper) GetDefaultPullCfg() *action.Pull
- func (h *HelmWrapper) GetDefaultRollbackCfg() *action.Rollback
- func (h *HelmWrapper) GetDefaultTemplateCfg() (templateCfg *action.Install, validate, skipTests, includeCrds bool, ...)
- func (h *HelmWrapper) GetDefaultUninstallCfg() *action.Uninstall
- func (h *HelmWrapper) GetDefaultUpgradeCfg() (upgradeCfg *action.Upgrade, createNamespace bool)
- func (h *HelmWrapper) GetLastRelease(releaseName string) (*release.Release, error)
- func (h *HelmWrapper) Install(ctx context.Context, logger logr.Logger, client *action.Install, ...) (rel *release.Release, out string, err error)
- func (h *HelmWrapper) InstallWithDefaulConfig(ctx context.Context, logger logr.Logger, name, chart string) (rel *release.Release, out string, err error)
- func (h *HelmWrapper) Pull(ctx context.Context, logger logr.Logger, client *action.Pull, args ...string) (out string, err error)
- func (h *HelmWrapper) PullWithDefaultConfig(ctx context.Context, logger logr.Logger, args ...string) (out string, err error)
- func (h *HelmWrapper) Rollback(ctx context.Context, logger logr.Logger, client *action.Rollback, ...) (out string, err error)
- func (h *HelmWrapper) RollbackWithDefaultConfig(ctx context.Context, logger logr.Logger, releaseName string, revision int) (out string, err error)
- func (h *HelmWrapper) SetValuesOptions(f, set, setString, setFile []string) *values.Options
- func (h *HelmWrapper) Template(ctx context.Context, logger logr.Logger, client *action.Install, ...) (rel *release.Release, templateOut string, err error)
- func (h *HelmWrapper) TemplateWithDefaulConfig(ctx context.Context, logger logr.Logger, name, chart string) (rel *release.Release, out string, err error)
- func (h *HelmWrapper) Uninstall(ctx context.Context, logger logr.Logger, client *action.Uninstall, ...) (out string, err error)
- func (h *HelmWrapper) UninstallWithDefaultConfig(ctx context.Context, logger logr.Logger, releaseNames ...string) (out string, err error)
- func (h *HelmWrapper) Upgrade(ctx context.Context, logger logr.Logger, client *action.Upgrade, ...) (rel *release.Release, out string, err error)
- func (h *HelmWrapper) UpgradeWithDefaulConfig(ctx context.Context, logger logr.Logger, releaseName, chart string) (rel *release.Release, out string, err error)
- type Option
- type ReleaseWorkerPool
- type WorkerPool
- func (r *WorkerPool) GetLastRelease(plan *v1alpha1.ComponentPlan) (rel *release.Release, err error)
- func (r *WorkerPool) GetManifests(ctx context.Context, plan *v1alpha1.ComponentPlan, repo *v1alpha1.Repository, ...) (data string, err error)
- func (r *WorkerPool) InstallOrUpgrade(ctx context.Context, plan *v1alpha1.ComponentPlan, repo *v1alpha1.Repository, ...) (rel *release.Release, isRunning bool, err error)
- func (r *WorkerPool) RollBack(ctx context.Context, plan *v1alpha1.ComponentPlan) (rel *release.Release, doing bool, err error)
- func (r *WorkerPool) Uninstall(ctx context.Context, plan *v1alpha1.ComponentPlan) (doing bool, err error)
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func GetDockerhubHelmRepository ¶ added in v0.1.5
func GetDockerhubHelmRepository(ctx context.Context, repo *corev1alpha1.Repository) ([]string, error)
GetDockerhubHelmRepository retrieves the Dockerhub Helm repository based on the given path and repository.
func GetGithubHelmRepository ¶ added in v0.1.5
func GetGithubHelmRepository(ctx context.Context, repo *corev1alpha1.Repository) ([]string, error)
GetGithubHelmRepository retrieves the GitHub packages repository based on the given path and repository.
func GetHarborRepository ¶ added in v0.1.5
func GetHarborRepository(ctx context.Context, repo *corev1alpha1.Repository) ([]string, error)
GetHarborRepository retrieves the Harbor packages repository based on the given path and repository.
func GetOCIRepoList ¶ added in v0.1.5
func GetOCIRepoList(ctx context.Context, repo *corev1alpha1.Repository) ([]string, error)
GetOCIRepoList retrieves the OCI packages repository based on the given path and repository. TODO need add auth for private repo
func ParseDescription ¶ added in v0.1.4
func ParseDigestFromPullOut ¶ added in v0.1.5
ParseDigestFromPullOut extracts the sha256 digest from the `helm pull` output string. It takes a string as input parameter which represents the output string. It returns a string which is the extracted sha256 digest.
func ReleaseLog ¶ added in v0.1.2
ReleaseLog generates a log slice for a Helm release object.
func RepoAdd ¶
func RepoAdd(ctx context.Context, logger logr.Logger, entry repo.Entry, httpRequestTimeout time.Duration) (err error)
RepoAdd adds a chart repository inspire by https://github.com/helm/helm/blob/dbc6d8e20fe1d58d50e6ed30f09a04a77e4c68db/cmd/helm/repo_add.go some difference with `helm repo add` command 1. when the same repo name is added, it will overwrite 2. many options we do not need now are not supported yet.
func RepoRemove ¶
RepoRemove inspire by https://github.com/helm/helm/blob/dbc6d8e20fe1d58d50e6ed30f09a04a77e4c68db/cmd/helm/repo_remove.go#L117 some difference with `helm repo remove` command 1. only support remove one repo 2. many options we do not need now are not supported yet.
func RepoUpdate ¶
func RepoUpdate(ctx context.Context, logger logr.Logger, name string, httpRequestTimeout time.Duration) (err error)
RepoUpdate inspire by https://github.com/helm/helm/blob/dbc6d8e20fe1d58d50e6ed30f09a04a77e4c68db/cmd/helm/repo_update.go#L117 some difference with `helm repo update` command 1. only support update one repo 2. many options we do not need now are not supported yet.
Types ¶
type ChartDef ¶ added in v0.1.6
type ChartWorker ¶ added in v0.1.6
type ChartWorker interface {
Push(ChartDef)
}
func NewChartWorker ¶ added in v0.1.6
func NewChartWorker(options ...Option) ChartWorker
type CoreHelm ¶ added in v0.1.6
type CoreHelm interface { InstallOrUpgrade(ctx context.Context, chartName string) (rel *release.Release, err error) Uninstall(ctx context.Context) error GetLastRelease() (rel *release.Release, err error) GetManifestsByDryRun(ctx context.Context, chartName string) (data string, err error) Rollback(ctx context.Context) error GetOCIRepoCharts(ctx context.Context, pullURL string, skipTags map[string]bool) (latest *chart.Metadata, all []*hrepo.ChartVersion, err error) PullAndParse(ctx context.Context, pullURL, version string) (out string, chartRequested *chart.Chart, err error) Pull(ctx context.Context, pullURL, version string) (out, dir, entryName string, err error) Template(ctx context.Context, version string, localPath string) (rel *release.Release, err error) }
type CoreHelmWrapper ¶ added in v0.1.6
type CoreHelmWrapper struct { *HelmWrapper // contains filtered or unexported fields }
CoreHelmWrapper is a wrapper for helm command
func NewCoreHelmWrapper ¶ added in v0.1.6
func NewCoreHelmWrapper(getter genericclioptions.RESTClientGetter, namespace string, logger logr.Logger, cli client.Client, cpl *corev1alpha1.ComponentPlan, repo *corev1alpha1.Repository, component *corev1alpha1.Component) (*CoreHelmWrapper, error)
NewCoreHelmWrapper returns a new helmWrapper instance
func (*CoreHelmWrapper) GetLastRelease ¶ added in v0.1.6
func (c *CoreHelmWrapper) GetLastRelease() (rel *release.Release, err error)
GetLastRelease get last release revision
func (*CoreHelmWrapper) GetManifestsByDryRun ¶ added in v0.1.6
func (c *CoreHelmWrapper) GetManifestsByDryRun(ctx context.Context, chartName string) (data string, err error)
GetManifestsByDryRun get helm templates by dryRun
func (*CoreHelmWrapper) GetOCIRepoCharts ¶ added in v0.1.6
func (c *CoreHelmWrapper) GetOCIRepoCharts(ctx context.Context, pullURL string, skipTags map[string]bool) (latest *chart.Metadata, all []*hrepo.ChartVersion, err error)
GetOCIRepoCharts retrieves the latest chart metadata and all component versions for a given OCI repository.
func (*CoreHelmWrapper) InstallOrUpgrade ¶ added in v0.1.6
func (c *CoreHelmWrapper) InstallOrUpgrade(ctx context.Context, chartName string) (rel *release.Release, err error)
InstallOrUpgrade installs / ungrade a helm chart to the cluster
func (*CoreHelmWrapper) PullAndParse ¶ added in v0.1.6
func (*CoreHelmWrapper) Rollback ¶ added in v0.1.6
func (c *CoreHelmWrapper) Rollback(ctx context.Context) (err error)
type HelmRelease ¶ added in v0.1.6
type HelmRelease interface { GetDefaultInstallCfg() *action.Install SetValuesOptions(f, set, setString, setFile []string) *values.Options Install(ctx context.Context, logger logr.Logger, client *action.Install, valueOpts *values.Options, name, chart string) (rel *release.Release, out string, err error) InstallWithDefaulConfig(ctx context.Context, logger logr.Logger, name, chart string) (rel *release.Release, out string, err error) GetDefaultUpgradeCfg() (upgradeCfg *action.Upgrade, createNamespace bool) Upgrade(ctx context.Context, logger logr.Logger, client *action.Upgrade, valueOpts *values.Options, releaseName, chart string, createNamespace bool) (rel *release.Release, out string, err error) UpgradeWithDefaulConfig(ctx context.Context, logger logr.Logger, releaseName, chart string) (rel *release.Release, out string, err error) GetDefaultTemplateCfg() (templateCfg *action.Install, validate, skipTests, includeCrds bool, kubeVersion string, extraAPIs, showFiles []string) Template(ctx context.Context, logger logr.Logger, client *action.Install, valueOpts *values.Options, name, chart, kubeVersion string, validate, includeCrds, skipTests bool, extraAPIs, showFiles []string) (rel *release.Release, templateOut string, err error) TemplateWithDefaulConfig(ctx context.Context, logger logr.Logger, name, chart string) (rel *release.Release, out string, err error) GetDefaultRollbackCfg() *action.Rollback Rollback(ctx context.Context, logger logr.Logger, client *action.Rollback, releaseName string, revision int) (out string, err error) RollbackWithDefaultConfig(ctx context.Context, logger logr.Logger, releaseName string, revision int) (out string, err error) GetDefaultUninstallCfg() *action.Uninstall Uninstall(ctx context.Context, logger logr.Logger, client *action.Uninstall, releaseNames ...string) (out string, err error) UninstallWithDefaultConfig(ctx context.Context, logger logr.Logger, releaseNames ...string) (out string, err error) GetDefaultPullCfg() *action.Pull Pull(ctx context.Context, logger logr.Logger, client *action.Pull, args ...string) (out string, err error) PullWithDefaultConfig(ctx context.Context, logger logr.Logger, args ...string) (out string, err error) GetLastRelease(releaseName string) (*release.Release, error) }
type HelmWrapper ¶ added in v0.1.1
type HelmWrapper struct {
// contains filtered or unexported fields
}
HelmWrapper is a wrapper for helm command
func NewHelmWrapper ¶ added in v0.1.3
func NewHelmWrapper(getter genericclioptions.RESTClientGetter, namespace string, logger logr.Logger) (*HelmWrapper, error)
NewHelmWrapper returns a new helmWrapper instance
func (*HelmWrapper) GetDefaultInstallCfg ¶ added in v0.1.6
func (h *HelmWrapper) GetDefaultInstallCfg() *action.Install
func (*HelmWrapper) GetDefaultPullCfg ¶ added in v0.1.6
func (h *HelmWrapper) GetDefaultPullCfg() *action.Pull
func (*HelmWrapper) GetDefaultRollbackCfg ¶ added in v0.1.6
func (h *HelmWrapper) GetDefaultRollbackCfg() *action.Rollback
func (*HelmWrapper) GetDefaultTemplateCfg ¶ added in v0.1.6
func (*HelmWrapper) GetDefaultUninstallCfg ¶ added in v0.1.6
func (h *HelmWrapper) GetDefaultUninstallCfg() *action.Uninstall
func (*HelmWrapper) GetDefaultUpgradeCfg ¶ added in v0.1.6
func (h *HelmWrapper) GetDefaultUpgradeCfg() (upgradeCfg *action.Upgrade, createNamespace bool)
func (*HelmWrapper) GetLastRelease ¶ added in v0.1.6
func (h *HelmWrapper) GetLastRelease(releaseName string) (*release.Release, error)
GetLastRelease observes the last revision
func (*HelmWrapper) Install ¶ added in v0.1.6
func (h *HelmWrapper) Install(ctx context.Context, logger logr.Logger, client *action.Install, valueOpts *values.Options, name, chart string) (rel *release.Release, out string, err error)
Install [NAME] [CHART]
func (*HelmWrapper) InstallWithDefaulConfig ¶ added in v0.1.6
func (h *HelmWrapper) InstallWithDefaulConfig(ctx context.Context, logger logr.Logger, name, chart string) (rel *release.Release, out string, err error)
InstallWithDefaulConfig [NAME] [CHART]
func (*HelmWrapper) Pull ¶ added in v0.1.4
func (h *HelmWrapper) Pull(ctx context.Context, logger logr.Logger, client *action.Pull, args ...string) (out string, err error)
Pull [chart URL | repo/chartname] [...]
func (*HelmWrapper) PullWithDefaultConfig ¶ added in v0.1.6
func (h *HelmWrapper) PullWithDefaultConfig(ctx context.Context, logger logr.Logger, args ...string) (out string, err error)
PullWithDefaultConfig [chart URL | repo/chartname] [...]
func (*HelmWrapper) Rollback ¶ added in v0.1.6
func (h *HelmWrapper) Rollback(ctx context.Context, logger logr.Logger, client *action.Rollback, releaseName string, revision int) (out string, err error)
Rollback <RELEASE> [REVISION]
func (*HelmWrapper) RollbackWithDefaultConfig ¶ added in v0.1.6
func (h *HelmWrapper) RollbackWithDefaultConfig(ctx context.Context, logger logr.Logger, releaseName string, revision int) (out string, err error)
RollbackWithDefaultConfig <RELEASE> [REVISION]
func (*HelmWrapper) SetValuesOptions ¶ added in v0.1.6
func (h *HelmWrapper) SetValuesOptions(f, set, setString, setFile []string) *values.Options
SetValuesOptions -f --values specify values in a YAML file or a URL (can specify multiple) --set set values on the command line (can specify multiple or separate values with commas: key1=val1,key2=val2) --set-string set STRING values on the command line (can specify multiple or separate values with commas: key1=val1,key2=val2) --set-file set values from respective files specified via the command line (can specify multiple or separate values with commas: key1=path1,key2=path2)
func (*HelmWrapper) Template ¶ added in v0.1.6
func (h *HelmWrapper) Template(ctx context.Context, logger logr.Logger, client *action.Install, valueOpts *values.Options, name, chart, kubeVersion string, validate, includeCrds, skipTests bool, extraAPIs, showFiles []string) (rel *release.Release, templateOut string, err error)
Template [NAME] [CHART] kubeVersion: helm template --kube-version validate: helm template --validate extraAPIs: helm template --api-versions
func (*HelmWrapper) TemplateWithDefaulConfig ¶ added in v0.1.6
func (h *HelmWrapper) TemplateWithDefaulConfig(ctx context.Context, logger logr.Logger, name, chart string) (rel *release.Release, out string, err error)
TemplateWithDefaulConfig [NAME] [CHART]
func (*HelmWrapper) Uninstall ¶ added in v0.1.6
func (h *HelmWrapper) Uninstall(ctx context.Context, logger logr.Logger, client *action.Uninstall, releaseNames ...string) (out string, err error)
Uninstall RELEASE_NAME [...]
func (*HelmWrapper) UninstallWithDefaultConfig ¶ added in v0.1.6
func (h *HelmWrapper) UninstallWithDefaultConfig(ctx context.Context, logger logr.Logger, releaseNames ...string) (out string, err error)
UninstallWithDefaultConfig RELEASE_NAME [...]
func (*HelmWrapper) Upgrade ¶ added in v0.1.6
func (h *HelmWrapper) Upgrade(ctx context.Context, logger logr.Logger, client *action.Upgrade, valueOpts *values.Options, releaseName, chart string, createNamespace bool) (rel *release.Release, out string, err error)
Upgrade [RELEASE] [CHART] createNamespace: helm upgrade --create-namespace
type Option ¶ added in v0.1.6
type Option func(*option)
func WithChCount ¶ added in v0.1.6
func WithContext ¶ added in v0.1.6
func WithCustomers ¶ added in v0.1.6
func WithK8sClient ¶ added in v0.1.6
type ReleaseWorkerPool ¶ added in v0.1.4
type ReleaseWorkerPool interface { // GetManifests is a synchronization function GetManifests(ctx context.Context, plan *v1alpha1.ComponentPlan, repo *v1alpha1.Repository, chartName string) (data string, err error) // InstallOrUpgrade is an asynchronous function. InstallOrUpgrade(ctx context.Context, plan *v1alpha1.ComponentPlan, repo *v1alpha1.Repository, chartName string) (rel *release.Release, doing bool, err error) // Uninstall is an asynchronous function. Uninstall(ctx context.Context, plan *v1alpha1.ComponentPlan) (doing bool, err error) // GetLastRelease is a synchronization function GetLastRelease(plan *v1alpha1.ComponentPlan) (rel *release.Release, err error) // RollBack is an asynchronous function RollBack(ctx context.Context, plan *v1alpha1.ComponentPlan) (rel *release.Release, doing bool, err error) }
ReleaseWorkerPool handle all helm action.we can mock it for testing
type WorkerPool ¶ added in v0.1.4
func NewWorkerPool ¶ added in v0.1.4
func NewWorkerPool(logger logr.Logger, cli client.Client) *WorkerPool
func (*WorkerPool) GetLastRelease ¶ added in v0.1.4
func (r *WorkerPool) GetLastRelease(plan *v1alpha1.ComponentPlan) (rel *release.Release, err error)
func (*WorkerPool) GetManifests ¶ added in v0.1.4
func (r *WorkerPool) GetManifests(ctx context.Context, plan *v1alpha1.ComponentPlan, repo *v1alpha1.Repository, chartName string) (data string, err error)
func (*WorkerPool) InstallOrUpgrade ¶ added in v0.1.4
func (r *WorkerPool) InstallOrUpgrade(ctx context.Context, plan *v1alpha1.ComponentPlan, repo *v1alpha1.Repository, chartName string) (rel *release.Release, isRunning bool, err error)
func (*WorkerPool) RollBack ¶ added in v0.1.4
func (r *WorkerPool) RollBack(ctx context.Context, plan *v1alpha1.ComponentPlan) (rel *release.Release, doing bool, err error)
func (*WorkerPool) Uninstall ¶ added in v0.1.4
func (r *WorkerPool) Uninstall(ctx context.Context, plan *v1alpha1.ComponentPlan) (doing bool, err error)