install

package
v0.0.0-...-c1b1270 Latest Latest
Warning

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

Go to latest
Published: Dec 13, 2024 License: Apache-2.0 Imports: 25 Imported by: 0

Documentation

Overview

Package install provides public functions for easily creating and installing resources necessary for Velero to operate. Some default settings are assumed with these functions.

Index

Constants

This section is empty.

Variables

View Source
var (
	// default values for Velero server pod resource request/limit
	DefaultVeleroPodCPURequest = "500m"
	DefaultVeleroPodMemRequest = "128Mi"
	DefaultVeleroPodCPULimit   = "1000m"
	DefaultVeleroPodMemLimit   = "512Mi"

	// default values for node-agent pod resource request/limit,
	// "0" means no request/limit is set, so as to make the QoS as BestEffort
	DefaultNodeAgentPodCPURequest = "0"
	DefaultNodeAgentPodMemRequest = "0"
	DefaultNodeAgentPodCPULimit   = "0"
	DefaultNodeAgentPodMemLimit   = "0"

	DefaultVeleroNamespace = "velero"
)

Functions

func AllCRDs

func AllCRDs() *unstructured.UnstructuredList

func AllResources

AllResources returns a list of all resources necessary to install Velero, in the appropriate order, into a Kubernetes cluster. Items are unstructured, since there are different data types returned.

func BackupStorageLocation

func BackupStorageLocation(namespace, provider, bucket, prefix string, config map[string]string, caCert []byte) *velerov1api.BackupStorageLocation

func ClusterRoleBinding

func ClusterRoleBinding(namespace string) *rbacv1.ClusterRoleBinding

func CreateClient

func CreateClient(r *unstructured.Unstructured, factory client.DynamicFactory, w io.Writer) (client.Dynamic, error)

CreateClient creates a client for an unstructured resource

func DaemonSet

func DaemonSet(namespace string, opts ...podTemplateOption) *appsv1.DaemonSet

func DaemonSetIsReady

func DaemonSetIsReady(factory client.DynamicFactory, namespace string) (bool, error)

DaemonSetIsReady will poll the Kubernetes API server to ensure the node-agent daemonset is ready, i.e. that pods are scheduled and available on all of the desired nodes.

func Deployment

func Deployment(namespace string, opts ...podTemplateOption) *appsv1.Deployment

func DeploymentIsReady

func DeploymentIsReady(factory client.DynamicFactory, namespace string) (bool, error)

DeploymentIsReady will poll the Kubernetes API server to see if the velero deployment is ready to service user requests.

func Install

func Install(dynamicFactory client.DynamicFactory, kbClient kbclient.Client, resources *unstructured.UnstructuredList, w io.Writer) error

Install creates resources on the Kubernetes cluster. An unstructured list of resources is sent, one at a time, to the server. These are assumed to be in the preferred order already. Resources will be sorted into CustomResourceDefinitions and any other resource type, and the function will wait up to 1 minute for CRDs to be ready before proceeding. An io.Writer can be used to output to a log or the console.

func Labels

func Labels() map[string]string

func Namespace

func Namespace(namespace string) *corev1.Namespace

func Secret

func Secret(namespace string, data []byte) *corev1.Secret

func ServiceAccount

func ServiceAccount(namespace string, annotations map[string]string) *corev1.ServiceAccount

func VolumeSnapshotLocation

func VolumeSnapshotLocation(namespace, provider string, config map[string]string) *velerov1api.VolumeSnapshotLocation

func WithAnnotations

func WithAnnotations(annotations map[string]string) podTemplateOption

func WithBackupRepoConfigMap

func WithBackupRepoConfigMap(backupRepoConfigMap string) podTemplateOption

func WithDefaultRepoMaintenanceFrequency

func WithDefaultRepoMaintenanceFrequency(val time.Duration) podTemplateOption

func WithDefaultSnapshotMoveData

func WithDefaultSnapshotMoveData(b bool) podTemplateOption

func WithDefaultVolumesToFsBackup

func WithDefaultVolumesToFsBackup(b bool) podTemplateOption

func WithDisableInformerCache

func WithDisableInformerCache(b bool) podTemplateOption

func WithEnvFromSecretKey

func WithEnvFromSecretKey(varName, secret, key string) podTemplateOption

func WithFeatures

func WithFeatures(features []string) podTemplateOption

func WithGarbageCollectionFrequency

func WithGarbageCollectionFrequency(val time.Duration) podTemplateOption

func WithImage

func WithImage(image string) podTemplateOption

func WithItemBlockWorkerCount

func WithItemBlockWorkerCount(itemBlockWorkerCount int) podTemplateOption

func WithKeepLatestMaintenanceJobs

func WithKeepLatestMaintenanceJobs(keepLatestMaintenanceJobs int) podTemplateOption

func WithLabels

func WithLabels(labels map[string]string) podTemplateOption

func WithNodeAgentConfigMap

func WithNodeAgentConfigMap(nodeAgentConfigMap string) podTemplateOption

func WithPlugins

func WithPlugins(plugins []string) podTemplateOption

func WithPodResources

func WithPodResources(podResources kube.PodResources) podTemplateOption

func WithPodVolumeOperationTimeout

func WithPodVolumeOperationTimeout(val time.Duration) podTemplateOption

func WithPrivilegedNodeAgent

func WithPrivilegedNodeAgent(b bool) podTemplateOption

func WithRepoMaintenanceJobConfigMap

func WithRepoMaintenanceJobConfigMap(repoMaintenanceJobConfigMap string) podTemplateOption

func WithResources

func WithResources(resources corev1.ResourceRequirements) podTemplateOption

func WithRestoreOnly

func WithRestoreOnly(b bool) podTemplateOption

func WithScheduleSkipImmediately

func WithScheduleSkipImmediately(b bool) podTemplateOption

func WithSecret

func WithSecret(secretPresent bool) podTemplateOption

func WithServiceAccountName

func WithServiceAccountName(sa string) podTemplateOption

func WithUploaderType

func WithUploaderType(t string) podTemplateOption

Types

type ResourceGroup

type ResourceGroup struct {
	CRDResources   []*unstructured.Unstructured
	OtherResources []*unstructured.Unstructured
}

ResourceGroup represents a collection of Kubernetes objects with a common ready condition

func GroupResources

func GroupResources(resources *unstructured.UnstructuredList) *ResourceGroup

GroupResources groups resources based on whether the resources are CustomResourceDefinitions or other types of Kubernetes objects This is useful to wait for readiness before creating CRD objects

type VeleroOptions

type VeleroOptions struct {
	Namespace                       string
	Image                           string
	ProviderName                    string
	Bucket                          string
	Prefix                          string
	PodAnnotations                  map[string]string
	PodLabels                       map[string]string
	ServiceAccountAnnotations       map[string]string
	ServiceAccountName              string
	VeleroPodResources              corev1.ResourceRequirements
	NodeAgentPodResources           corev1.ResourceRequirements
	SecretData                      []byte
	RestoreOnly                     bool
	UseNodeAgent                    bool
	PrivilegedNodeAgent             bool
	UseVolumeSnapshots              bool
	BSLConfig                       map[string]string
	VSLConfig                       map[string]string
	DefaultRepoMaintenanceFrequency time.Duration
	GarbageCollectionFrequency      time.Duration
	PodVolumeOperationTimeout       time.Duration
	Plugins                         []string
	NoDefaultBackupLocation         bool
	CACertData                      []byte
	Features                        []string
	DefaultVolumesToFsBackup        bool
	UploaderType                    string
	DefaultSnapshotMoveData         bool
	DisableInformerCache            bool
	ScheduleSkipImmediately         bool
	PodResources                    kube.PodResources
	KeepLatestMaintenanceJobs       int
	BackupRepoConfigMap             string
	RepoMaintenanceJobConfigMap     string
	NodeAgentConfigMap              string
	ItemBlockWorkerCount            int
}

Jump to

Keyboard shortcuts

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