action

package
v0.1.0 Latest Latest
Warning

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

Go to latest
Published: Apr 21, 2021 License: Apache-2.0 Imports: 33 Imported by: 0

Documentation

Overview

Package action contains the logic for each action that hypper can perform.

This is a library for calling top-level hypper actions like 'install', 'upgrade', or 'list'. Actions approximately match the command line invocations that the hypper CLI uses.

Index

Constants

This section is empty.

Variables

View Source
var Timestamper = time.Now

Timestamper is a function capable of producing a timestamp.Timestamper.

By default, this is a time.Time function from the Helm time package. This can be overridden for testing though, so that timestamps are predictable.

Functions

func CheckDependencies

func CheckDependencies(ch *chart.Chart, reqs []*chart.Dependency) error

CheckDependencies checks the dependencies for a chart. by wrapping action.CheckDependencies

func CheckIfInstallable added in v0.1.0

func CheckIfInstallable(ch *chart.Chart) error

checkIfInstallable validates if a chart can be installed

Application chart type is only installable

func GetName added in v0.1.0

func GetName(chart *chart.Chart, nameTemplate string, args ...string) (string, error)

GetName returns the name that should be used based of annotations

func GetNamespace added in v0.1.0

func GetNamespace(chart *chart.Chart, defaultNS string) string

GetNamespace returns the namespace that should be used based of annotations, or the passed default namespace

func SetNamespace added in v0.1.0

func SetNamespace(x interface{}, chart *chart.Chart, targetNS string, setDefault bool)

SetNamespace sets the Namespace that should be used based on annotations or fallback to default both on the action and on the storage. if setDefault is true then it will just set the default namespace This will read the chart annotations. If no annotations, it leave the existing ns in the action. targetNS can be either the default namespace (usually "default") or the namespace passed via cli flag

Types

type Configuration

type Configuration struct {
	*action.Configuration
}

Configuration is a composite type of Helm's Configuration type

func (*Configuration) SetNamespace

func (c *Configuration) SetNamespace(namespace string)

SetNamespace sets the namespace on the kubeclient

type History added in v0.0.2

type History struct {
	*action.History
	// contains filtered or unexported fields
}

History is the action for checking the release's ledger.

It provides the implementation of 'helm history'. It returns all the revisions for a specific release. To list up to one revision of every release in one specific, or in all, namespaces, see the List action.

func NewHistory added in v0.0.2

func NewHistory(cfg *Configuration) *History

NewHistory creates a new History object with the given configuration.

type Install

type Install struct {
	*action.Install

	// hypper specific
	NoSharedDeps bool

	// Config stores the actionconfig so it can be retrieved and used again
	Config *Configuration
}

Install is a composite type of Helm's Install type

func NewInstall

func NewInstall(cfg *Configuration) *Install

NewInstall creates a new Install object with the given configuration, by wrapping action.NewInstall

func (*Install) Chart

func (i *Install) Chart(args []string) (string, error)

Chart returns the chart that should be used.

This will read the flags and skip args if necessary.

func (*Install) InstallAllSharedDeps added in v0.1.0

func (i *Install) InstallAllSharedDeps(chrt *chart.Chart, settings *cli.EnvSettings, logger log.Logger, lvl int) error

InstallAllSharedDeps installs all shared dependencies listed in the passed chart.

It will check for malformed chart.Metadata.Annotations, and skip those shared dependencies already deployed. lvl is used for printing nested stagered output on recursion. Starts at 0.

func (*Install) InstallSharedDep added in v0.1.0

func (i *Install) InstallSharedDep(dep *chart.Dependency, settings *cli.EnvSettings, logger log.Logger, lvl int) (*release.Release, error)

InstallSharedDep installs a chart.Dependency using the provided settings.

It does this by creating a new action.Install and setting it correctly, loading the chart, checking for constraints, and delegating the install.Run() lvl is used for printing nested stagered output on recursion. Starts at 0.

func (*Install) LoadChartFromDep added in v0.1.0

func (i *Install) LoadChartFromDep(dep *chart.Dependency, settings *cli.EnvSettings, logger log.Logger) (*chart.Chart, error)

func (*Install) NameAndChart

func (i *Install) NameAndChart(args []string) (string, string, error)

NameAndChart overloads Helm's NameAndChart. It always fails.

On Hypper, we need to read the chart annotations to know the correct release name. Therefore, it cannot happen in this function.

func (*Install) Run

func (i *Install) Run(chrt *chart.Chart, vals map[string]interface{}, settings *cli.EnvSettings, logger log.Logger, lvl int) (*release.Release, error)

Run executes the installation

If DryRun is set to true, this will prepare the release, but not install it lvl is used for printing nested stagered output on recursion. Starts at 0.

type Lint added in v0.1.0

type Lint struct {
	*helmAction.Lint
}

Lint is a composite type of Helm's Lint type

func NewLint added in v0.1.0

func NewLint() *Lint

NewLint creates a new Lint object with the given configuration.

func (*Lint) Run added in v0.1.0

func (l *Lint) Run(paths []string, vals map[string]interface{}) *helmAction.LintResult

Run executes 'helm Lint' against the given chart and then runs the chart against hypper lint rules

type List

type List struct {
	*action.List
	// contains filtered or unexported fields
}

List is a composite type of Helm's List type

func NewList

func NewList(cfg *Configuration) *List

NewList constructs a new *List by embedding helm/pkg/action.List

type Pull added in v0.1.0

type Pull struct {
	*action.Pull
	// contains filtered or unexported fields
}

Pull is the action for checking a given release's information.

It provides the implementation of 'hypper pull'.

func NewPull added in v0.1.0

func NewPull(cfg *Configuration) *Pull

NewPull creates a new Pull object.

type PullOpt added in v0.1.0

type PullOpt func(*Pull)

type SharedDependency added in v0.0.2

type SharedDependency struct {
	*action.Dependency

	// hypper specific:
	Config *Configuration
}

SharedDependency is the action for building a given chart's shared dependency tree.

It provides the implementation of 'hypper shared-dependency' and its respective subcommands.

func NewSharedDependency added in v0.0.2

func NewSharedDependency(cfg *Configuration) *SharedDependency

NewSharedDependency creates a new SharedDependency object with the given configuration.

func (*SharedDependency) List added in v0.0.2

func (d *SharedDependency) List(chartpath string, settings *cli.EnvSettings, logger log.Logger) error

List executes 'hypper shared-dep list'.

func (*SharedDependency) SharedDependencyStatus added in v0.0.2

func (d *SharedDependency) SharedDependencyStatus(depChart *chart.Chart, depNS string) (string, error)

SharedDependencyStatus returns a string describing the status of a dependency viz a viz the releases in depNS context.

type Status

type Status struct {
	*action.Status
	// contains filtered or unexported fields
}

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 {
	*action.Uninstall
	Config *Configuration
}

Uninstall is a composite type of Helm's Uninstall type

func NewUninstall

func NewUninstall(cfg *Configuration) *Uninstall

NewUninstall creates a new Uninstall by embedding action.Uninstall

type Upgrade added in v0.0.2

type Upgrade struct {
	*action.Upgrade
	Config      *Configuration
	ReleaseName string
}

Upgrade is a composite type of Helm's Upgrade type

func NewUpgrade added in v0.0.2

func NewUpgrade(cfg *Configuration) *Upgrade

NewUpgrade creates a new Upgrade object with the given configuration.

Jump to

Keyboard shortcuts

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