Velero is an open source tool to safely backup and restore, perform disaster recovery, and migrate Kubernetes cluster resources and persistent volumes.
Velero has two main components: a CLI, and a server-side Kubernetes deployment.
See the different options for installing the Velero CLI.
This helm chart installs Velero version v1.4.2 https://github.com/vmware-tanzu/velero/tree/v1.4.2. See the #Upgrading section for information on how to upgrade from other versions.
When installing using the Helm chart, the provider's credential information will need to be appended into your values. The easiest way to do this is with the --set-file
argument, available in Helm 2.10 and higher. See your cloud provider's documentation for the contents and creation of the credentials-velero
file.
The default configuration values for this chart are listed in values.yaml.
See Velero's full official documentation. More specifically, find your provider in the Velero list of supported providers for specific configuration information and examples.
First, create the namespace: kubectl create namespace <YOUR NAMESPACE>
Note: you may add the flag --skip-crds
if you don't want to install the CRDs.
Specify the necessary values using the --set key=value[,key=value] argument to helm install. For example,
helm install vmware-tanzu/velero --namespace <YOUR NAMESPACE> \
--set-file credentials.secretContents.cloud=<FULL PATH TO FILE> \
--set configuration.provider=<PROVIDER NAME> \
--set configuration.backupStorageLocation.name=<BACKUP STORAGE LOCATION NAME> \
--set configuration.backupStorageLocation.bucket=<BUCKET NAME> \
--set configuration.backupStorageLocation.config.region=<REGION> \
--set configuration.volumeSnapshotLocation.name=<VOLUME SNAPSHOT LOCATION NAME> \
--set configuration.volumeSnapshotLocation.config.region=<REGION> \
--set image.repository=velero/velero \
--set image.tag=v1.4.2 \
--set image.pullPolicy=IfNotPresent \
--set initContainers[0].name=velero-plugin-for-aws \
--set initContainers[0].image=velero/velero-plugin-for-aws:v1.1.0 \
--set initContainers[0].volumeMounts[0].mountPath=/target \
--set initContainers[0].volumeMounts[0].name=plugins \
--generate-name
Add/update the necessary values by changing the values.yaml from this repository, then run:
helm install vmware-tanzu/velero --namespace <YOUR NAMESPACE> -f values.yaml --generate-name
If a value needs to be added or changed, you may do so with the upgrade
command. An example:
helm upgrade vmware-tanzu/velero <RELEASE NAME> --namespace <YOUR NAMESPACE> --reuse-values --set configuration.provider=<NEW PROVIDER>
A service account and the role binding prerequisite must be added to Tiller when configuring Helm to install Velero:
kubectl create sa -n kube-system tiller
kubectl create clusterrolebinding tiller-cluster-admin --clusterrole cluster-admin --serviceaccount kube-system:tiller
helm init --service-account=tiller --wait --upgrade
Note: you may add the flag --set installCRDs=false
if you don't want to install the CRDs.
Specify the necessary values using the --set key=value[,key=value] argument to helm install. For example,
helm install vmware-tanzu/velero --namespace <YOUR NAMESPACE> \
--set-file credentials.secretContents.cloud=<FULL PATH TO FILE> \
--set configuration.provider=aws \
--set configuration.backupStorageLocation.name=<BACKUP STORAGE LOCATION NAME> \
--set configuration.backupStorageLocation.bucket=<BUCKET NAME> \
--set configuration.backupStorageLocation.config.region=<REGION> \
--set configuration.volumeSnapshotLocation.name=<VOLUME SNAPSHOT LOCATION NAME> \
--set configuration.volumeSnapshotLocation.config.region=<REGION> \
--set image.repository=velero/velero \
--set image.tag=v1.4.2 \
--set image.pullPolicy=IfNotPresent \
--set initContainers[0].name=velero-plugin-for-aws \
--set initContainers[0].image=velero/velero-plugin-for-aws:v1.1.0 \
--set initContainers[0].volumeMounts[0].mountPath=/target \
--set initContainers[0].volumeMounts[0].name=plugins
Add/update the necessary values by changing the values.yaml from this repository, then run:
helm install vmware-tanzu/velero --namespace <YOUR NAMESPACE> -f values.yaml
If a value needs to be added or changed, you may do so with the upgrade
command. An example:
helm upgrade vmware-tanzu/velero <RELEASE NAME> --reuse-values --set configuration.provider=<NEW PROVIDER>
The instructions found here will assist you in upgrading from version v1.3.x to v1.4.
The instructions found here will assist you in upgrading from version v1.2.0 or v1.3.0 to v1.3.1.
The instructions found here will assist you in upgrading from version v1.0.0 or v1.1.0 to v1.2.0.
The instructions found here will assist you in upgrading from version v1.0.0 to v1.1.0.
Note: when you uninstall the Velero server, all backups remain untouched.
helm delete <RELEASE NAME> --purge
helm delete <RELEASE NAME> -n <YOUR NAMESPACE>