install

package
v0.0.0-...-5a6645a Latest Latest
Warning

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

Go to latest
Published: Oct 25, 2019 License: Apache-2.0 Imports: 20 Imported by: 0

Documentation

Index

Constants

View Source
const (
	YamlDocumentSeparator = "\n---\n"
	CrdKindName           = "CustomResourceDefinition"
	NotesFileName         = "NOTES.txt"
)

Variables

View Source
var ExcludeMatchingResources = func(matcherFunc ResourceMatcherFunc) ManifestFilterFunc {
	if matcherFunc == nil {
		return IdentityFilterFunc
	}
	return func(input []manifest.Manifest) (output []manifest.Manifest, err error) {
		manifest, _, err := excludeByMatcher(input, matcherFunc)
		return manifest, err
	}
}
View Source
var ExcludeNonCrds = func(input []manifest.Manifest) (output []manifest.Manifest, names []string, err error) {
	return excludeByMatcher(input, nonCrdInstallMatcher)
}

Functions

func GetHelmArchive

func GetHelmArchive(chartArchiveUri string) (*chart.Chart, error)

Returns the Helm chart archive located at the given URI (can be either an http(s) address or a file path)

func GetValuesFromFile

func GetValuesFromFile(helmChart *chart.Chart, fileName string) (*chart.Config, error)

func GetValuesFromFileIncludingExtra

func GetValuesFromFileIncludingExtra(helmChart *chart.Chart, fileName string, userValuesFileName string, extraValues chartutil.Values, valueOptions ...ValuesCallback) (*chart.Config, error)

Searches for the value file with the given name in the chart and returns its raw content. NOTE: this also sets the namespace.create attribute to 'true'.

func IsEmptyManifest

func IsEmptyManifest(manifest string) bool

func Kubectl

func Kubectl(stdin io.Reader, args ...string) error

func KubectlApply

func KubectlApply(manifest []byte, extraArgs ...string) error

func KubectlApplyOut

func KubectlApplyOut(manifest []byte, extraArgs ...string) ([]byte, error)

func KubectlDelete

func KubectlDelete(manifest []byte, extraArgs ...string) error

func KubectlOut

func KubectlOut(stdin io.Reader, args ...string) ([]byte, error)

func RenderChart

func RenderChart(helmChart *chart.Chart, overrideValues *chart.Config, renderOptions renderutil.Options, filterFunctions ...ManifestFilterFunc) ([]byte, error)

Renders the content of the given Helm chart archive:

  • helmChart: the Gloo helm chart archive
  • overrideValues: value to override the chart defaults. NOTE: passing `nil` means "ignore the chart's default values"!
  • renderOptions: options to be used in the render
  • filterFunctions: a collection of functions that can be used to filter and transform the contents of the manifest. Will be applied in the given order.

func SetVerbose

func SetVerbose(b bool)

Types

type CmdKubectl

type CmdKubectl struct{}

func (*CmdKubectl) Kubectl

func (k *CmdKubectl) Kubectl(stdin io.Reader, args ...string) error

type KubeCli

type KubeCli interface {
	Kubectl(stdin io.Reader, args ...string) error
}

type ManifestFilterFunc

type ManifestFilterFunc func(input []manifest.Manifest) (output []manifest.Manifest, err error)

This type represents a function that can be used to filter and transform a list of manifests. It returns three values:

  • skip: if true, the input manifest will be excluded from the output
  • content: if skip is false, this value will be included in the output manifest
  • err: if != nil, the whole manifest retrieval operation will fail
var ExcludeCrds ManifestFilterFunc = func(input []manifest.Manifest) (output []manifest.Manifest, err error) {
	manifest, _, err := excludeByMatcher(input, crdInstallMatcher)
	return manifest, err
}

Filters out any CRD from each manifest

var ExcludeEmptyManifests ManifestFilterFunc = func(input []manifest.Manifest) ([]manifest.Manifest, error) {
	var output []manifest.Manifest
	for _, manifest := range input {
		if !IsEmptyManifest(manifest.Content) {
			output = append(output, manifest)
		}

	}
	return output, nil
}

Returns only non-empty manifests

var ExcludeNotes ManifestFilterFunc = func(input []manifest.Manifest) (output []manifest.Manifest, err error) {
	for _, man := range input {
		if strings.HasSuffix(man.Name, NotesFileName) {
			continue
		}
		output = append(output, man)
	}
	return
}

Filters out NOTES.txt files

var ExcludePreInstall ManifestFilterFunc = func(input []manifest.Manifest) (output []manifest.Manifest, err error) {
	manifest, _, err := excludeByMatcher(input, preInstallMatcher)
	return manifest, err
}

Filters out any pre-install from each manifest

var IdentityFilterFunc ManifestFilterFunc = func(input []manifest.Manifest) (output []manifest.Manifest, err error) {
	output = input
	return
}
var IncludeOnlyPreInstall ManifestFilterFunc = func(input []manifest.Manifest) (output []manifest.Manifest, err error) {
	manifest, _, err := excludeByMatcher(input, nonPreInstallMatcher)
	return manifest, err
}

Filters out anything but pre-install

func KnativeResourceFilterFunction

func KnativeResourceFilterFunction(skipKnative bool) ManifestFilterFunc

type ResourceMatcherFunc

type ResourceMatcherFunc func(resource ResourceType) (bool, error)

type ResourceType

type ResourceType struct {
	Metadata v1.ObjectMeta
	v1.TypeMeta
}

We need to define this ourselves, because if we unmarshal into `apiextensions.CustomResourceDefinition` we don't get the ObjectMeta (in the yaml they are nested under `metadata`, but the k8s struct has them as top level fields...)

func GetResources

func GetResources(manifest string) ([]ResourceType, error)

type ValuesCallback

type ValuesCallback func(config *generate.HelmConfig)

use to overwrite / modify values file before passing to helm

Jump to

Keyboard shortcuts

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