assets

package
v1.14.1 Latest Latest
Warning

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

Go to latest
Published: Oct 23, 2020 License: Apache-2.0 Imports: 14 Imported by: 158

Documentation

Index

Constants

View Source
const MemorySource = "memory"

MemorySource is the source name used for in-memory copies

Variables

View Source
var Addons = map[string]*Addon{
	"dashboard": NewAddon([]*BinAsset{

		MustBinAsset("deploy/addons/dashboard/dashboard-ns.yaml", vmpath.GuestAddonsDir, "dashboard-ns.yaml", "0640", false),
		MustBinAsset("deploy/addons/dashboard/dashboard-clusterrole.yaml", vmpath.GuestAddonsDir, "dashboard-clusterrole.yaml", "0640", false),
		MustBinAsset("deploy/addons/dashboard/dashboard-clusterrolebinding.yaml", vmpath.GuestAddonsDir, "dashboard-clusterrolebinding.yaml", "0640", false),
		MustBinAsset("deploy/addons/dashboard/dashboard-configmap.yaml", vmpath.GuestAddonsDir, "dashboard-configmap.yaml", "0640", false),
		MustBinAsset("deploy/addons/dashboard/dashboard-dp.yaml", vmpath.GuestAddonsDir, "dashboard-dp.yaml", "0640", false),
		MustBinAsset("deploy/addons/dashboard/dashboard-role.yaml", vmpath.GuestAddonsDir, "dashboard-role.yaml", "0640", false),
		MustBinAsset("deploy/addons/dashboard/dashboard-rolebinding.yaml", vmpath.GuestAddonsDir, "dashboard-rolebinding.yaml", "0640", false),
		MustBinAsset("deploy/addons/dashboard/dashboard-sa.yaml", vmpath.GuestAddonsDir, "dashboard-sa.yaml", "0640", false),
		MustBinAsset("deploy/addons/dashboard/dashboard-secret.yaml", vmpath.GuestAddonsDir, "dashboard-secret.yaml", "0640", false),
		MustBinAsset("deploy/addons/dashboard/dashboard-svc.yaml", vmpath.GuestAddonsDir, "dashboard-svc.yaml", "0640", false),
	}, false, "dashboard"),
	"default-storageclass": NewAddon([]*BinAsset{
		MustBinAsset(
			"deploy/addons/storageclass/storageclass.yaml.tmpl",
			vmpath.GuestAddonsDir,
			"storageclass.yaml",
			"0640",
			false),
	}, true, "default-storageclass"),
	"pod-security-policy": NewAddon([]*BinAsset{
		MustBinAsset(
			"deploy/addons/pod-security-policy/pod-security-policy.yaml.tmpl",
			vmpath.GuestAddonsDir,
			"pod-security-policy.yaml",
			"0640",
			false),
	}, false, "pod-security-policy"),
	"storage-provisioner": NewAddon([]*BinAsset{
		MustBinAsset(
			"deploy/addons/storage-provisioner/storage-provisioner.yaml.tmpl",
			vmpath.GuestAddonsDir,
			"storage-provisioner.yaml",
			"0640",
			true),
	}, true, "storage-provisioner"),
	"storage-provisioner-gluster": NewAddon([]*BinAsset{
		MustBinAsset(
			"deploy/addons/storage-provisioner-gluster/storage-gluster-ns.yaml.tmpl",
			vmpath.GuestAddonsDir,
			"storage-gluster-ns.yaml",
			"0640",
			false),
		MustBinAsset(
			"deploy/addons/storage-provisioner-gluster/glusterfs-daemonset.yaml.tmpl",
			vmpath.GuestAddonsDir,
			"glusterfs-daemonset.yaml",
			"0640",
			false),
		MustBinAsset(
			"deploy/addons/storage-provisioner-gluster/heketi-deployment.yaml.tmpl",
			vmpath.GuestAddonsDir,
			"heketi-deployment.yaml",
			"0640",
			false),
		MustBinAsset(
			"deploy/addons/storage-provisioner-gluster/storage-provisioner-glusterfile.yaml.tmpl",
			vmpath.GuestAddonsDir,
			"storage-privisioner-glusterfile.yaml",
			"0640",
			false),
	}, false, "storage-provisioner-gluster"),
	"efk": NewAddon([]*BinAsset{
		MustBinAsset(
			"deploy/addons/efk/elasticsearch-rc.yaml.tmpl",
			vmpath.GuestAddonsDir,
			"elasticsearch-rc.yaml",
			"0640",
			true),
		MustBinAsset(
			"deploy/addons/efk/elasticsearch-svc.yaml.tmpl",
			vmpath.GuestAddonsDir,
			"elasticsearch-svc.yaml",
			"0640",
			false),
		MustBinAsset(
			"deploy/addons/efk/fluentd-es-rc.yaml.tmpl",
			vmpath.GuestAddonsDir,
			"fluentd-es-rc.yaml",
			"0640",
			true),
		MustBinAsset(
			"deploy/addons/efk/fluentd-es-configmap.yaml.tmpl",
			vmpath.GuestAddonsDir,
			"fluentd-es-configmap.yaml",
			"0640",
			false),
		MustBinAsset(
			"deploy/addons/efk/kibana-rc.yaml.tmpl",
			vmpath.GuestAddonsDir,
			"kibana-rc.yaml",
			"0640",
			false),
		MustBinAsset(
			"deploy/addons/efk/kibana-svc.yaml.tmpl",
			vmpath.GuestAddonsDir,
			"kibana-svc.yaml",
			"0640",
			false),
	}, false, "efk"),
	"ingress": NewAddon([]*BinAsset{
		MustBinAsset(
			"deploy/addons/ingress/ingress-configmap.yaml.tmpl",
			vmpath.GuestAddonsDir,
			"ingress-configmap.yaml",
			"0640",
			false),
		MustBinAsset(
			"deploy/addons/ingress/ingress-rbac.yaml.tmpl",
			vmpath.GuestAddonsDir,
			"ingress-rbac.yaml",
			"0640",
			false),
		MustBinAsset(
			"deploy/addons/ingress/ingress-dp.yaml.tmpl",
			vmpath.GuestAddonsDir,
			"ingress-dp.yaml",
			"0640",
			true),
	}, false, "ingress"),
	"istio-provisioner": NewAddon([]*BinAsset{
		MustBinAsset(
			"deploy/addons/istio-provisioner/istio-operator.yaml.tmpl",
			vmpath.GuestAddonsDir,
			"istio-operator.yaml",
			"0640",
			true),
	}, false, "istio-provisioner"),
	"istio": NewAddon([]*BinAsset{
		MustBinAsset(
			"deploy/addons/istio/istio-default-profile.yaml.tmpl",
			vmpath.GuestAddonsDir,
			"istio-default-profile.yaml",
			"0640",
			false),
	}, false, "istio"),
	"kubevirt": NewAddon([]*BinAsset{
		MustBinAsset(
			"deploy/addons/kubevirt/pod.yaml.tmpl",
			vmpath.GuestAddonsDir,
			"pod.yaml",
			"0640",
			false),
	}, false, "kubevirt"),
	"metrics-server": NewAddon([]*BinAsset{
		MustBinAsset(
			"deploy/addons/metrics-server/metrics-apiservice.yaml.tmpl",
			vmpath.GuestAddonsDir,
			"metrics-apiservice.yaml",
			"0640",
			false),
		MustBinAsset(
			"deploy/addons/metrics-server/metrics-server-deployment.yaml.tmpl",
			vmpath.GuestAddonsDir,
			"metrics-server-deployment.yaml",
			"0640",
			true),
		MustBinAsset(
			"deploy/addons/metrics-server/metrics-server-service.yaml.tmpl",
			vmpath.GuestAddonsDir,
			"metrics-server-service.yaml",
			"0640",
			false),
	}, false, "metrics-server"),
	"olm": NewAddon([]*BinAsset{
		MustBinAsset(
			"deploy/addons/olm/crds.yaml",
			vmpath.GuestAddonsDir,
			"crds.yaml",
			"0640",
			false),
		MustBinAsset(
			"deploy/addons/olm/olm.yaml",
			vmpath.GuestAddonsDir,
			"olm.yaml",
			"0640",
			false),
	}, false, "olm"),
	"registry": NewAddon([]*BinAsset{
		MustBinAsset(
			"deploy/addons/registry/registry-rc.yaml.tmpl",
			vmpath.GuestAddonsDir,
			"registry-rc.yaml",
			"0640",
			false),
		MustBinAsset(
			"deploy/addons/registry/registry-svc.yaml.tmpl",
			vmpath.GuestAddonsDir,
			"registry-svc.yaml",
			"0640",
			false),
		MustBinAsset(
			"deploy/addons/registry/registry-proxy.yaml.tmpl",
			vmpath.GuestAddonsDir,
			"registry-proxy.yaml",
			"0640",
			false),
	}, false, "registry"),
	"registry-creds": NewAddon([]*BinAsset{
		MustBinAsset(
			"deploy/addons/registry-creds/registry-creds-rc.yaml.tmpl",
			vmpath.GuestAddonsDir,
			"registry-creds-rc.yaml",
			"0640",
			false),
	}, false, "registry-creds"),
	"registry-aliases": NewAddon([]*BinAsset{
		MustBinAsset(
			"deploy/addons/registry-aliases/registry-aliases-sa.tmpl",
			vmpath.GuestAddonsDir,
			"registry-aliases-sa.yaml",
			"0640",
			false),
		MustBinAsset(
			"deploy/addons/registry-aliases/registry-aliases-sa-crb.tmpl",
			vmpath.GuestAddonsDir,
			"registry-aliases-sa-crb.yaml",
			"0640",
			false),
		MustBinAsset(
			"deploy/addons/registry-aliases/registry-aliases-config.tmpl",
			vmpath.GuestAddonsDir,
			"registry-aliases-config.yaml",
			"0640",
			false),
		MustBinAsset(
			"deploy/addons/registry-aliases/node-etc-hosts-update.tmpl",
			vmpath.GuestAddonsDir,
			"node-etc-hosts-update.yaml",
			"0640",
			false),
		MustBinAsset(
			"deploy/addons/registry-aliases/patch-coredns-job.tmpl",
			vmpath.GuestAddonsDir,
			"patch-coredns-job.yaml",
			"0640",
			false),
	}, false, "registry-aliases"),
	"freshpod": NewAddon([]*BinAsset{
		MustBinAsset(
			"deploy/addons/freshpod/freshpod-rc.yaml.tmpl",
			vmpath.GuestAddonsDir,
			"freshpod-rc.yaml",
			"0640",
			true),
	}, false, "freshpod"),
	"nvidia-driver-installer": NewAddon([]*BinAsset{
		MustBinAsset(
			"deploy/addons/gpu/nvidia-driver-installer.yaml.tmpl",
			vmpath.GuestAddonsDir,
			"nvidia-driver-installer.yaml",
			"0640",
			true),
	}, false, "nvidia-driver-installer"),
	"nvidia-gpu-device-plugin": NewAddon([]*BinAsset{
		MustBinAsset(
			"deploy/addons/gpu/nvidia-gpu-device-plugin.yaml",
			vmpath.GuestAddonsDir,
			"nvidia-gpu-device-plugin.yaml",
			"0640",
			false),
	}, false, "nvidia-gpu-device-plugin"),
	"logviewer": NewAddon([]*BinAsset{
		MustBinAsset(
			"deploy/addons/logviewer/logviewer-dp-and-svc.yaml.tmpl",
			vmpath.GuestAddonsDir,
			"logviewer-dp-and-svc.yaml",
			"0640",
			false),
		MustBinAsset(
			"deploy/addons/logviewer/logviewer-rbac.yaml.tmpl",
			vmpath.GuestAddonsDir,
			"logviewer-rbac.yaml",
			"0640",
			false),
	}, false, "logviewer"),
	"gvisor": NewAddon([]*BinAsset{
		MustBinAsset(
			"deploy/addons/gvisor/gvisor-pod.yaml.tmpl",
			vmpath.GuestAddonsDir,
			"gvisor-pod.yaml",
			"0640",
			true),
		MustBinAsset(
			"deploy/addons/gvisor/gvisor-runtimeclass.yaml",
			vmpath.GuestAddonsDir,
			"gvisor-runtimeclass.yaml",
			"0640",
			false),
		MustBinAsset(
			"deploy/addons/gvisor/gvisor-config.toml",
			vmpath.GuestGvisorDir,
			constants.GvisorConfigTomlTargetName,
			"0640",
			true),
	}, false, "gvisor"),
	"helm-tiller": NewAddon([]*BinAsset{
		MustBinAsset(
			"deploy/addons/helm-tiller/helm-tiller-dp.tmpl",
			vmpath.GuestAddonsDir,
			"helm-tiller-dp.yaml",
			"0640",
			true),
		MustBinAsset(
			"deploy/addons/helm-tiller/helm-tiller-rbac.tmpl",
			vmpath.GuestAddonsDir,
			"helm-tiller-rbac.yaml",
			"0640",
			true),
		MustBinAsset(
			"deploy/addons/helm-tiller/helm-tiller-svc.tmpl",
			vmpath.GuestAddonsDir,
			"helm-tiller-svc.yaml",
			"0640",
			true),
	}, false, "helm-tiller"),
	"ingress-dns": NewAddon([]*BinAsset{
		MustBinAsset(
			"deploy/addons/ingress-dns/ingress-dns-pod.yaml",
			vmpath.GuestAddonsDir,
			"ingress-dns-pod.yaml",
			"0640",
			false),
	}, false, "ingress-dns"),
	"metallb": NewAddon([]*BinAsset{
		MustBinAsset(
			"deploy/addons/metallb/metallb.yaml",
			vmpath.GuestAddonsDir,
			"metallb.yaml",
			"0640",
			false),
		MustBinAsset(
			"deploy/addons/metallb/metallb-config.yaml.tmpl",
			vmpath.GuestAddonsDir,
			"metallb-config.yaml",
			"0640",
			true),
	}, false, "metallb"),
	"ambassador": NewAddon([]*BinAsset{
		MustBinAsset(
			"deploy/addons/ambassador/ambassador-operator-crds.yaml",
			vmpath.GuestAddonsDir,
			"ambassador-operator-crds.yaml",
			"0640",
			false),
		MustBinAsset(
			"deploy/addons/ambassador/ambassador-operator.yaml",
			vmpath.GuestAddonsDir,
			"ambassador-operator.yaml",
			"0640",
			false),
		MustBinAsset(
			"deploy/addons/ambassador/ambassadorinstallation.yaml",
			vmpath.GuestAddonsDir,
			"ambassadorinstallation.yaml",
			"0640",
			false),
	}, false, "ambassador"),
	"gcp-auth": NewAddon([]*BinAsset{
		MustBinAsset(
			"deploy/addons/gcp-auth/gcp-auth-ns.yaml",
			vmpath.GuestAddonsDir,
			"gcp-auth-ns.yaml",
			"0640",
			false),
		MustBinAsset(
			"deploy/addons/gcp-auth/gcp-auth-service.yaml",
			vmpath.GuestAddonsDir,
			"gcp-auth-service.yaml",
			"0640",
			false),
		MustBinAsset(
			"deploy/addons/gcp-auth/gcp-auth-webhook.yaml",
			vmpath.GuestAddonsDir,
			"gcp-auth-webhook.yaml",
			"0640",
			false),
	}, false, "gcp-auth"),
	"volumesnapshots": NewAddon([]*BinAsset{
		MustBinAsset(
			"deploy/addons/volumesnapshots/snapshot.storage.k8s.io_volumesnapshotclasses.yaml",
			vmpath.GuestAddonsDir,
			"snapshot.storage.k8s.io_volumesnapshotclasses.yaml",
			"0640",
			false),
		MustBinAsset(
			"deploy/addons/volumesnapshots/snapshot.storage.k8s.io_volumesnapshotcontents.yaml",
			vmpath.GuestAddonsDir,
			"snapshot.storage.k8s.io_volumesnapshotcontents.yaml",
			"0640",
			false),
		MustBinAsset(
			"deploy/addons/volumesnapshots/snapshot.storage.k8s.io_volumesnapshots.yaml",
			vmpath.GuestAddonsDir,
			"snapshot.storage.k8s.io_volumesnapshots.yaml",
			"0640",
			false),
		MustBinAsset(
			"deploy/addons/volumesnapshots/rbac-volume-snapshot-controller.yaml",
			vmpath.GuestAddonsDir,
			"rbac-volume-snapshot-controller.yaml",
			"0640",
			false),
		MustBinAsset(
			"deploy/addons/volumesnapshots/volume-snapshot-controller-deployment.yaml",
			vmpath.GuestAddonsDir,
			"volume-snapshot-controller-deployment.yaml",
			"0640",
			false),
	}, false, "volumesnapshots"),
	"csi-hostpath-driver": NewAddon([]*BinAsset{
		MustBinAsset(
			"deploy/addons/csi-hostpath-driver/rbac/rbac-external-attacher.yaml",
			vmpath.GuestAddonsDir,
			"rbac-external-attacher.yaml",
			"0640",
			false),
		MustBinAsset(
			"deploy/addons/csi-hostpath-driver/rbac/rbac-external-provisioner.yaml",
			vmpath.GuestAddonsDir,
			"rbac-external-provisioner.yaml",
			"0640",
			false),
		MustBinAsset(
			"deploy/addons/csi-hostpath-driver/rbac/rbac-external-resizer.yaml",
			vmpath.GuestAddonsDir,
			"rbac-external-resizer.yaml",
			"0640",
			false),
		MustBinAsset(
			"deploy/addons/csi-hostpath-driver/rbac/rbac-external-snapshotter.yaml",
			vmpath.GuestAddonsDir,
			"rbac-external-snapshotter.yaml",
			"0640",
			false),
		MustBinAsset(
			"deploy/addons/csi-hostpath-driver/deploy/csi-hostpath-attacher.yaml",
			vmpath.GuestAddonsDir,
			"csi-hostpath-attacher.yaml",
			"0640",
			false),
		MustBinAsset(
			"deploy/addons/csi-hostpath-driver/deploy/csi-hostpath-driverinfo.yaml",
			vmpath.GuestAddonsDir,
			"csi-hostpath-driverinfo.yaml",
			"0640",
			false),
		MustBinAsset(
			"deploy/addons/csi-hostpath-driver/deploy/csi-hostpath-plugin.yaml",
			vmpath.GuestAddonsDir,
			"csi-hostpath-plugin.yaml",
			"0640",
			false),
		MustBinAsset(
			"deploy/addons/csi-hostpath-driver/deploy/csi-hostpath-provisioner.yaml",
			vmpath.GuestAddonsDir,
			"csi-hostpath-provisioner.yaml",
			"0640",
			false),
		MustBinAsset(
			"deploy/addons/csi-hostpath-driver/deploy/csi-hostpath-resizer.yaml",
			vmpath.GuestAddonsDir,
			"csi-hostpath-resizer.yaml",
			"0640",
			false),
		MustBinAsset(
			"deploy/addons/csi-hostpath-driver/deploy/csi-hostpath-snapshotter.yaml",
			vmpath.GuestAddonsDir,
			"csi-hostpath-snapshotter.yaml",
			"0640",
			false),
		MustBinAsset(
			"deploy/addons/csi-hostpath-driver/deploy/csi-hostpath-storageclass.yaml",
			vmpath.GuestAddonsDir,
			"csi-hostpath-storageclass.yaml",
			"0640",
			false),
	}, false, "csi-hostpath-driver"),
}

Addons is the list of addons TODO: Make dynamically loadable: move this data to a .yaml file within each addon directory

Functions

func GenerateTemplateData added in v1.0.0

func GenerateTemplateData(cfg config.KubernetesConfig) interface{}

GenerateTemplateData generates template data for template assets

Types

type Addon

type Addon struct {
	Assets []*BinAsset
	// contains filtered or unexported fields
}

Addon is a named list of assets, that can be enabled

func NewAddon

func NewAddon(assets []*BinAsset, enabled bool, addonName string) *Addon

NewAddon creates a new Addon

func (*Addon) IsEnabled

func (a *Addon) IsEnabled(cc *config.ClusterConfig) bool

IsEnabled checks if an Addon is enabled for the given profile

func (*Addon) Name added in v1.2.0

func (a *Addon) Name() string

Name get the addon name

type BaseAsset

type BaseAsset struct {
	SourcePath  string
	TargetDir   string
	TargetName  string
	Permissions string
	Source      string
}

BaseAsset is the base asset class

func (*BaseAsset) GetModTime added in v1.6.0

func (b *BaseAsset) GetModTime() (time.Time, error)

GetModTime returns mod time

func (*BaseAsset) GetPermissions

func (b *BaseAsset) GetPermissions() string

GetPermissions returns permissions

func (*BaseAsset) GetSourcePath added in v1.10.0

func (b *BaseAsset) GetSourcePath() string

GetSourcePath returns asset name

func (*BaseAsset) GetTargetDir

func (b *BaseAsset) GetTargetDir() string

GetTargetDir returns target dir

func (*BaseAsset) GetTargetName

func (b *BaseAsset) GetTargetName() string

GetTargetName returns target name

type BinAsset added in v1.1.0

type BinAsset struct {
	BaseAsset
	// contains filtered or unexported fields
}

BinAsset is a bindata (binary data) asset

func MustBinAsset added in v1.1.0

func MustBinAsset(name, targetDir, targetName, permissions string, isTemplate bool) *BinAsset

MustBinAsset creates a new BinAsset, or panics if invalid

func NewBinAsset added in v1.1.0

func NewBinAsset(name, targetDir, targetName, permissions string, isTemplate bool) (*BinAsset, error)

NewBinAsset creates a new BinAsset

func (*BinAsset) Evaluate added in v1.1.0

func (m *BinAsset) Evaluate(data interface{}) (*MemoryAsset, error)

Evaluate evaluates the template to a new asset

func (*BinAsset) GetLength added in v1.1.0

func (m *BinAsset) GetLength() int

GetLength returns length

func (*BinAsset) IsTemplate added in v1.1.0

func (m *BinAsset) IsTemplate() bool

IsTemplate returns if the asset is a template

func (*BinAsset) Read added in v1.1.0

func (m *BinAsset) Read(p []byte) (int, error)

Read reads the asset

func (*BinAsset) Seek added in v1.7.0

func (m *BinAsset) Seek(offset int64, whence int) (int64, error)

Seek resets the reader to offset

type CopyableFile

type CopyableFile interface {
	io.Reader
	GetLength() int
	GetSourcePath() string

	GetTargetDir() string
	GetTargetName() string
	GetPermissions() string
	GetModTime() (time.Time, error)
	Seek(int64, int) (int64, error)
}

CopyableFile is something that can be copied

type FileAsset

type FileAsset struct {
	BaseAsset
	// contains filtered or unexported fields
}

FileAsset is an asset using a file

func NewFileAsset

func NewFileAsset(src, targetDir, targetName, permissions string) (*FileAsset, error)

NewFileAsset creates a new FileAsset

func (*FileAsset) GetLength

func (f *FileAsset) GetLength() (flen int)

GetLength returns the file length, or 0 (on error)

func (*FileAsset) GetModTime added in v1.6.0

func (f *FileAsset) GetModTime() (time.Time, error)

GetModTime returns modification time of the file

func (*FileAsset) Read

func (f *FileAsset) Read(p []byte) (int, error)

Read reads the asset

func (*FileAsset) Seek added in v1.7.0

func (f *FileAsset) Seek(offset int64, whence int) (int64, error)

Seek resets the reader to offset

type MemoryAsset

type MemoryAsset struct {
	BaseAsset
	// contains filtered or unexported fields
}

MemoryAsset is a memory-based asset

func NewMemoryAsset

func NewMemoryAsset(d []byte, targetDir, targetName, permissions string) *MemoryAsset

NewMemoryAsset creates a new MemoryAsset

func NewMemoryAssetTarget added in v0.22.2

func NewMemoryAssetTarget(d []byte, targetPath, permissions string) *MemoryAsset

NewMemoryAssetTarget creates a new MemoryAsset, with target

func (*MemoryAsset) GetLength

func (m *MemoryAsset) GetLength() int

GetLength returns length

func (*MemoryAsset) Read

func (m *MemoryAsset) Read(p []byte) (int, error)

Read reads the asset

func (*MemoryAsset) Seek added in v1.7.0

func (m *MemoryAsset) Seek(offset int64, whence int) (int64, error)

Seek resets the reader to offset

Jump to

Keyboard shortcuts

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