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 ¶
- Variables
- func AllCRDs() *unstructured.UnstructuredList
- func AllResources(o *VeleroOptions) *unstructured.UnstructuredList
- func BackupStorageLocation(namespace, provider, bucket, prefix string, config map[string]string, ...) *velerov1api.BackupStorageLocation
- func ClusterRoleBinding(namespace string) *rbacv1.ClusterRoleBinding
- func CreateClient(r *unstructured.Unstructured, factory client.DynamicFactory, w io.Writer) (client.Dynamic, error)
- func DaemonSet(namespace string, opts ...podTemplateOption) *appsv1.DaemonSet
- func DaemonSetIsReady(factory client.DynamicFactory, namespace string) (bool, error)
- func Deployment(namespace string, opts ...podTemplateOption) *appsv1.Deployment
- func DeploymentIsReady(factory client.DynamicFactory, namespace string) (bool, error)
- func Install(dynamicFactory client.DynamicFactory, kbClient kbclient.Client, ...) error
- func Labels() map[string]string
- func Namespace(namespace string) *corev1.Namespace
- func Secret(namespace string, data []byte) *corev1.Secret
- func ServiceAccount(namespace string, annotations map[string]string) *corev1.ServiceAccount
- func VolumeSnapshotLocation(namespace, provider string, config map[string]string) *velerov1api.VolumeSnapshotLocation
- func WithAnnotations(annotations map[string]string) podTemplateOption
- func WithBackupRepoConfigMap(backupRepoConfigMap string) podTemplateOption
- func WithDefaultRepoMaintenanceFrequency(val time.Duration) podTemplateOption
- func WithDefaultSnapshotMoveData(b bool) podTemplateOption
- func WithDefaultVolumesToFsBackup(b bool) podTemplateOption
- func WithDisableInformerCache(b bool) podTemplateOption
- func WithEnvFromSecretKey(varName, secret, key string) podTemplateOption
- func WithFeatures(features []string) podTemplateOption
- func WithGarbageCollectionFrequency(val time.Duration) podTemplateOption
- func WithImage(image string) podTemplateOption
- func WithItemBlockWorkerCount(itemBlockWorkerCount int) podTemplateOption
- func WithKeepLatestMaintenanceJobs(keepLatestMaintenanceJobs int) podTemplateOption
- func WithLabels(labels map[string]string) podTemplateOption
- func WithNodeAgentConfigMap(nodeAgentConfigMap string) podTemplateOption
- func WithPlugins(plugins []string) podTemplateOption
- func WithPodResources(podResources kube.PodResources) podTemplateOption
- func WithPodVolumeOperationTimeout(val time.Duration) podTemplateOption
- func WithPrivilegedNodeAgent(b bool) podTemplateOption
- func WithRepoMaintenanceJobConfigMap(repoMaintenanceJobConfigMap string) podTemplateOption
- func WithResources(resources corev1.ResourceRequirements) podTemplateOption
- func WithRestoreOnly(b bool) podTemplateOption
- func WithScheduleSkipImmediately(b bool) podTemplateOption
- func WithSecret(secretPresent bool) podTemplateOption
- func WithServiceAccountName(sa string) podTemplateOption
- func WithUploaderType(t string) podTemplateOption
- type ResourceGroup
- type VeleroOptions
Constants ¶
This section is empty.
Variables ¶
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 ¶
func AllResources(o *VeleroOptions) *unstructured.UnstructuredList
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 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 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 WithBackupRepoConfigMap ¶
func WithBackupRepoConfigMap(backupRepoConfigMap string) 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 WithItemBlockWorkerCount ¶
func WithItemBlockWorkerCount(itemBlockWorkerCount int) podTemplateOption
func WithKeepLatestMaintenanceJobs ¶
func WithKeepLatestMaintenanceJobs(keepLatestMaintenanceJobs int) podTemplateOption
func WithLabels ¶
func WithNodeAgentConfigMap ¶
func WithNodeAgentConfigMap(nodeAgentConfigMap string) podTemplateOption
func WithPlugins ¶
func WithPlugins(plugins []string) podTemplateOption
func WithPodResources ¶
func WithPodResources(podResources kube.PodResources) 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 }