installer

package
v1.0.6 Latest Latest
Warning

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

Go to latest
Published: Nov 6, 2022 License: Apache-2.0 Imports: 17 Imported by: 0

Documentation

Overview

Package installer provides an interface for installing Helm plugins.

Index

Constants

This section is empty.

Variables

View Source
var Debug bool

Debug enables verbose output.

View Source
var ErrMissingMetadata = errors.New("plugin metadata (plugin.yaml) missing")

ErrMissingMetadata indicates that plugin.yaml is missing.

View Source
var Extractors = map[string]Extractor{
	".tar.gz": &TarGzExtractor{},
	".tgz":    &TarGzExtractor{},
}

Extractors contains a map of suffixes and matching implementations of extractor to return

Functions

func Install

func Install(i Installer) error

Install installs a plugin.

func Update

func Update(i Installer) error

Update updates a plugin.

Types

type Extractor

type Extractor interface {
	Extract(buffer *bytes.Buffer, targetDir string) error
}

Extractor provides an interface for extracting archives

func NewExtractor

func NewExtractor(source string) (Extractor, error)

NewExtractor creates a new extractor matching the source file name

type HTTPInstaller

type HTTPInstaller struct {
	CacheDir   string
	PluginName string
	// contains filtered or unexported fields
}

HTTPInstaller installs plugins from an archive served by a web server.

func NewHTTPInstaller

func NewHTTPInstaller(source string) (*HTTPInstaller, error)

NewHTTPInstaller creates a new HttpInstaller.

func (*HTTPInstaller) Install

func (i *HTTPInstaller) Install() error

Install downloads and extracts the tarball into the cache directory and creates a symlink to the plugin directory.

Implements Installer.

func (HTTPInstaller) Path

func (i HTTPInstaller) Path() string

Path is overridden because we want to join on the plugin name not the file name

func (*HTTPInstaller) Update

func (i *HTTPInstaller) Update() error

Update updates a local repository Not implemented for now since tarball most likely will be packaged by version

type Installer

type Installer interface {
	// Install adds a plugin.
	Install() error
	// Path is the directory of the installed plugin.
	Path() string
	// Update updates a plugin.
	Update() error
}

Installer provides an interface for installing helm client plugins.

func FindSource

func FindSource(location string) (Installer, error)

FindSource determines the correct Installer for the given source.

func NewForSource

func NewForSource(source, version string) (Installer, error)

NewForSource determines the correct Installer for the given source.

type LocalInstaller

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

LocalInstaller installs plugins from the filesystem.

func NewLocalInstaller

func NewLocalInstaller(source string) (*LocalInstaller, error)

NewLocalInstaller creates a new LocalInstaller.

func (*LocalInstaller) Install

func (i *LocalInstaller) Install() error

Install creates a symlink to the plugin directory.

Implements Installer.

func (*LocalInstaller) Path

func (b *LocalInstaller) Path() string

Path is where the plugin will be symlinked to.

func (*LocalInstaller) Update

func (i *LocalInstaller) Update() error

Update updates a local repository

type TarGzExtractor

type TarGzExtractor struct{}

TarGzExtractor extracts gzip compressed tar archives

func (*TarGzExtractor) Extract

func (g *TarGzExtractor) Extract(buffer *bytes.Buffer, targetDir string) error

Extract extracts compressed archives

Implements Extractor.

type VCSInstaller

type VCSInstaller struct {
	Repo    vcs.Repo
	Version string
	// contains filtered or unexported fields
}

VCSInstaller installs plugins from remote a repository.

func NewVCSInstaller

func NewVCSInstaller(source, version string) (*VCSInstaller, error)

NewVCSInstaller creates a new VCSInstaller.

func (*VCSInstaller) Install

func (i *VCSInstaller) Install() error

Install clones a remote repository and creates a symlink to the plugin directory.

Implements Installer.

func (*VCSInstaller) Path

func (b *VCSInstaller) Path() string

Path is where the plugin will be symlinked to.

func (*VCSInstaller) Update

func (i *VCSInstaller) Update() error

Update updates a remote repository

Jump to

Keyboard shortcuts

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