helm

package
v0.0.0-...-9940484 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 14, 2023 License: Apache-2.0 Imports: 48 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// consts for helm parameter
	InstallArguments = "installArguments"
	UpdateArguments  = "updateArguments"
	RemoveArguments  = "removeArguments"

	InstallArgAtomic = "atomic"

	UpdateArgAtomic = "atomic"
)

Variables

This section is empty.

Functions

func GetChartForCatalogChart

func GetChartForCatalogChart(ctx context.Context, netClient HTTPClient, repoURL, chartName, chartVersion string, load ReadChart) (*chart.Chart, error)

GetChart retrieves and loads a Chart from a registry

func IsClusterUnreachableErr

func IsClusterUnreachableErr(err error) bool

func IsReleaseNotFoundErr

func IsReleaseNotFoundErr(err error) bool

func NewHelmDeployerDI

func NewHelmDeployerDI(crAndSecretClient client.Client, uncachedClient synchronize.UncachedClient, appRepoClient client.Client,
	blockObject *synchronize.BlockObject) deployutil.DeployItemDeployer

func NewHelmDeployerDIWithFacade

func NewHelmDeployerDIWithFacade(crAndSecretClient client.Client, uncachedClient synchronize.UncachedClient, helmFacade Facade,
	appRepoClient client.Client, blockObject *synchronize.BlockObject) deployutil.DeployItemDeployer

Types

type AppOverview

type AppOverview struct {
	ReleaseName   string         `json:"releaseName"`
	Version       string         `json:"version"`
	Namespace     string         `json:"namespace"`
	Icon          string         `json:"icon,omitempty"`
	Status        string         `json:"status"`
	Chart         string         `json:"chart"`
	ChartMetadata chart.Metadata `json:"chartMetadata"`
}

AppOverview represents the basics of a release

type ChartData

type ChartData struct {
	InstallName      string
	Values           map[string]interface{}
	Load             ChartLoaderFunc
	InstallTimeout   time.Duration
	UpgradeTimeout   time.Duration
	RollbackTimeout  time.Duration
	UninstallTimeout time.Duration
	InstallArguments []string
	UpdateArguments  []string
	RemoveArguments  []string
}

func ParseTypeSpecificData

func ParseTypeSpecificData(ctx context.Context, namedSecretResolver *apitypes.NamedSecretResolver, hdc *hubv1.DeploymentConfig,
	helmSpecificData *apitypes.HelmSpecificData, loadRepoInfo bool, appRepoClient client.Client) (*ChartData, string, error)

type ChartLoaderFunc

type ChartLoaderFunc func() (*chart.Chart, error)

func LoadCatalogChart

func LoadCatalogChart(ctx context.Context, apprepo *appRepov1.AppRepository, chartName, chartVersion string, chartReader ReadChart,
	appRepoClient client.Client) ChartLoaderFunc

func LoadRawURL

func LoadRawURL(ctx context.Context, customCAData, authHeader, chartURL string, chartReader ReadChart) ChartLoaderFunc

type Client

type Client interface {
	GetReleaseStatus(ctx context.Context, namespace, relName, kubeconfig string) (release.Status, error)
	ResolveManifest(ctx context.Context, namespace string, values map[string]interface{}, ch *chart.Chart, kubeconfig string) (string, error)
	ResolveManifestFromRelease(ctx context.Context, namespace, releaseName string, revision int32, kubeconfig string) (string, error)
	ListReleases(ctx context.Context, namespace string, releaseListLimit int, status, kubeconfig string) ([]AppOverview, error)
	CreateRelease(ctx context.Context, chartData *ChartData, name, namespace string, values map[string]interface{}, metadata *ReleaseMetadata, timeout time.Duration, ch *chart.Chart, kubeconfig string) (*release.Release, error)
	UpdateRelease(ctx context.Context, chartData *ChartData, name, namespace string, values map[string]interface{}, metadata *ReleaseMetadata, timeout time.Duration, ch *chart.Chart, kubeconfig string) (*release.Release, error)
	RollbackRelease(ctx context.Context, name, namespace string, timeout time.Duration, revision int32, kubeconfig string) (*release.Release, error)
	GetRelease(ctx context.Context, name, namespace, kubeconfig string) (*release.Release, error)
	DeleteRelease(ctx context.Context, chartData *ChartData, name, namespace string, timeout time.Duration, keepHistory bool, kubeconfig string) error
}

Client for exposed funcs

func NewDefaultClient

func NewDefaultClient() Client

type ClientConfigGetter

type ClientConfigGetter struct {
	// contains filtered or unexported fields
}

func (*ClientConfigGetter) ClientConfig

func (c *ClientConfigGetter) ClientConfig() (*rest.Config, error)

func (*ClientConfigGetter) ConfigAccess

func (c *ClientConfigGetter) ConfigAccess() clientcmd.ConfigAccess

func (*ClientConfigGetter) Namespace

func (c *ClientConfigGetter) Namespace() (string, bool, error)

func (*ClientConfigGetter) RawConfig

func (c *ClientConfigGetter) RawConfig() (clientcmdapi.Config, error)

type Facade

type Facade interface {
	GetRelease(ctx context.Context, chartData *ChartData, namespace, targetKubeconfig string) (*release.Release, error)
	InstallOrUpdate(context.Context, *ChartData, string, string, *ReleaseMetadata) (*release.Release, error)
	Remove(context.Context, *ChartData, string, string) error
}

type FacadeImpl

type FacadeImpl struct {
	Client Client
}

func (*FacadeImpl) GetRelease

func (fi *FacadeImpl) GetRelease(ctx context.Context, chartData *ChartData, namespace, targetKubeconfig string) (*release.Release, error)

func (*FacadeImpl) InstallOrUpdate

func (fi *FacadeImpl) InstallOrUpdate(ctx context.Context, chartData *ChartData, namespace, targetKubeconfig string, metadata *ReleaseMetadata) (*release.Release, error)

func (*FacadeImpl) Remove

func (fi *FacadeImpl) Remove(ctx context.Context, chartData *ChartData, namespace, targetKubeconfig string) error

type FakeHelmClient

type FakeHelmClient struct {
	Releases []release.Release
}

func (*FakeHelmClient) CreateRelease

func (f *FakeHelmClient) CreateRelease(ctx context.Context, chartData *ChartData, name, namespace string, values map[string]interface{}, metadata *ReleaseMetadata, timeout time.Duration, ch *chart.Chart, kubeconfig string) (*release.Release, error)

func (*FakeHelmClient) DeleteRelease

func (f *FakeHelmClient) DeleteRelease(ctx context.Context, chartData *ChartData, name, namespace string, timeout time.Duration, keepHistory bool, kubeconfig string) error

func (*FakeHelmClient) GetRelease

func (f *FakeHelmClient) GetRelease(ctx context.Context, name, namespace, kubeconfig string) (*release.Release, error)

func (*FakeHelmClient) GetReleaseStatus

func (f *FakeHelmClient) GetReleaseStatus(ctx context.Context, namespace, relName, kubeconfig string) (release.Status, error)

func (*FakeHelmClient) ListReleases

func (f *FakeHelmClient) ListReleases(ctx context.Context, namespace string, releaseListLimit int, status, kubeconfig string) ([]AppOverview, error)

func (*FakeHelmClient) ResolveManifest

func (f *FakeHelmClient) ResolveManifest(ctx context.Context, namespace string, values map[string]interface{}, ch *chart.Chart, kubeconfig string) (string, error)

func (*FakeHelmClient) ResolveManifestFromRelease

func (f *FakeHelmClient) ResolveManifestFromRelease(ctx context.Context, namespace, releaseName string, revision int32, kubeconfig string) (string, error)

func (*FakeHelmClient) RollbackRelease

func (f *FakeHelmClient) RollbackRelease(ctx context.Context, name, namespace string, timeout time.Duration, revision int32, kubeconfig string) (*release.Release, error)

func (*FakeHelmClient) UpdateRelease

func (f *FakeHelmClient) UpdateRelease(ctx context.Context, chartData *ChartData, name, namespace string, values map[string]interface{}, metadata *ReleaseMetadata, timeout time.Duration, ch *chart.Chart, kubeconfig string) (*release.Release, error)

type HTTPClient

type HTTPClient interface {
	Do(req *http.Request) (*http.Response, error)
}

HTTPClient Interface to perform HTTP requests

func InitNetClientForCatalogChart

func InitNetClientForCatalogChart(ctx context.Context, appRepo *appRepov1.AppRepository, appRepoClient client.Client) (HTTPClient, error)

InitNetClient returns an HTTP FacaceImpl based on the chart details loading a custom CA if provided (as a secret)

func InitNetClientForRawURL

func InitNetClientForRawURL(customCAData, authHeader string) (HTTPClient, error)

InitNetClient returns an HTTP FacaceImpl based on the chart details loading a custom CA if provided (as a secret)

type ReadChart

type ReadChart func(in io.Reader) (*chart.Chart, error)

ReadChart should return a Chart struct from an IOReader

type ReleaseMetadata

type ReleaseMetadata struct {
	BomName string `json:"bomName"`
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL