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 (
    	DefaultImage               = "velero/velero:" + imageVersion()
    	DefaultVeleroPodCPURequest = "500m"
    	DefaultVeleroPodMemRequest = "128Mi"
    	DefaultVeleroPodCPULimit   = "1000m"
    	DefaultVeleroPodMemLimit   = "512Mi"
    	DefaultResticPodCPURequest = "500m"
    	DefaultResticPodMemRequest = "512Mi"
    	DefaultResticPodCPULimit   = "1000m"
    	DefaultResticPodMemLimit   = "1Gi"
    	DefaultVeleroNamespace     = "velero"
    )

      DefaultImage is the default image to use for the Velero deployment and restic daemonset containers.

      Functions

      func AllCRDs

      func AllCRDs() *unstructured.UnstructuredList

      func AllResources

      func AllResources(o *VeleroOptions) (*unstructured.UnstructuredList, error)

        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) *rbacv1beta1.ClusterRoleBinding

        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 restic daemonset is ready, i.e. that pods are scheduled and available on all of the 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(factory client.DynamicFactory, 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 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 WithDefaultResticMaintenanceFrequency

              func WithDefaultResticMaintenanceFrequency(val time.Duration) podTemplateOption

              func WithDefaultVolumesToRestic

              func WithDefaultVolumesToRestic() podTemplateOption

              func WithEnvFromSecretKey

              func WithEnvFromSecretKey(varName, secret, key string) podTemplateOption

              func WithFeatures

              func WithFeatures(features []string) podTemplateOption

              func WithImage

              func WithImage(image string) podTemplateOption

              func WithPlugins

              func WithPlugins(plugins []string) podTemplateOption

              func WithResources

              func WithResources(resources corev1.ResourceRequirements) podTemplateOption

              func WithRestoreOnly

              func WithRestoreOnly() podTemplateOption

              func WithSecret

              func WithSecret(secretPresent bool) podTemplateOption

              Types

              type ResourceGroup

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

                ResourceGroup represents a collection of kubernetes objects with a common ready conditon

                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
                  	ServiceAccountAnnotations         map[string]string
                  	VeleroPodResources                corev1.ResourceRequirements
                  	ResticPodResources                corev1.ResourceRequirements
                  	SecretData                        []byte
                  	RestoreOnly                       bool
                  	UseRestic                         bool
                  	UseVolumeSnapshots                bool
                  	BSLConfig                         map[string]string
                  	VSLConfig                         map[string]string
                  	DefaultResticMaintenanceFrequency time.Duration
                  	Plugins                           []string
                  	NoDefaultBackupLocation           bool
                  	CACertData                        []byte
                  	Features                          []string
                  	DefaultVolumesToRestic            bool
                  }