helm

package
v3.0.0-...-d6c4d9c Latest Latest
Warning

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

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

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Chart

type Chart struct {
	Name       string             `yaml:"name"`
	Version    *semverlib.Version `yaml:"-"`
	VersionRaw string             `yaml:"version"`
	// AppVersion is not a semver, for example Minio has date-based versions.
	AppVersion   string `yaml:"appVersion"`
	Directory    string
	Dependencies []Dependency `yaml:"dependencies,omitempty"`
}

func LoadChart

func LoadChart(directory string) (*Chart, error)

func (*Chart) Clone

func (c *Chart) Clone() Chart

type Client

type Client interface {
	Version() (*semverlib.Version, error)
	BuildChartDependencies(chartDirectory string, flags []string) error
	InstallChart(namespace string, releaseName string, chartDirectory string, valuesFile string, values map[string]string, flags []string) error
	GetRelease(namespace string, name string) (*Release, error)
	ListReleases(namespace string) ([]Release, error)
	UninstallRelease(namespace string, name string) error
	RenderChart(namespace string, releaseName string, chartDirectory string, valuesFile string, values map[string]string) ([]byte, error)
	GetValues(namespace string, releaseName string) (*yamled.Document, error)
}

Client describes the operations that the Helm client is providing to the installer. This is the minimum set of operations required to perform a Kubermatic installation.

func NewCLI

func NewCLI(binary string, kubeconfig string, kubeContext string, timeout time.Duration, logger logrus.FieldLogger) (Client, error)

NewCLI returns a new Client implementation that uses a local helm binary to perform chart installations.

type Dependency

type Dependency struct {
	Name         string        `yaml:"name"`
	Version      string        `yaml:"version,omitempty"`
	Repository   string        `yaml:"repository"`
	Condition    string        `yaml:"condition,omitempty"`
	Tags         []string      `yaml:"tags,omitempty"`
	Enabled      bool          `yaml:"enabled,omitempty"`
	ImportValues []interface{} `json:"import-values,omitempty"`
	Alias        string        `yaml:"alias,omitempty"`
}

type Release

type Release struct {
	Name      string             `json:"name"`
	Namespace string             `json:"namespace"`
	Chart     string             `json:"chart"`
	Revision  string             `json:"revision"`
	Version   *semverlib.Version `json:"-"`
	// AppVersion is not a semver, for example Minio has date-based versions.
	AppVersion string        `json:"app_version"`
	Status     ReleaseStatus `json:"status"`
}

func (*Release) Clone

func (r *Release) Clone() Release

type ReleaseStatus

type ReleaseStatus string
const (
	ReleaseCheckFailed ReleaseStatus = ""

	ReleaseStatusUnknown         ReleaseStatus = "unknown"
	ReleaseStatusDeployed        ReleaseStatus = "deployed"
	ReleaseStatusDeleted         ReleaseStatus = "uninstalled"
	ReleaseStatusSuperseded      ReleaseStatus = "superseded"
	ReleaseStatusFailed          ReleaseStatus = "failed"
	ReleaseStatusDeleting        ReleaseStatus = "uninstalling"
	ReleaseStatusPendingInstall  ReleaseStatus = "pending-install"
	ReleaseStatusPendingUpgrade  ReleaseStatus = "pending-upgrade"
	ReleaseStatusPendingRollback ReleaseStatus = "pending-rollback"
)

Jump to

Keyboard shortcuts

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