Documentation for version v1.0.0 is no longer actively maintained. The version you are currently viewing is a static snapshot. For up-to-date documentation, see the latest version.
You need to replace legacy metadata in object storage with updated versions for any backups that were originally taken with a version prior to v0.11 (i.e. when the project was named Ark). While Velero v0.11 is backwards-compatible with these legacy files, Velero v1.0 is not.
If you’re sure that you do not have any backups that were originally created prior to v0.11 (with Ark), you can proceed directly to Part 2.
We’ve added a CLI command to
Velero v0.11.1, velero migrate-backups
, to help you with this. This command will:
ark-backup.json
files in object storage with equivalent velero-backup.json
files.<backup-name>-volumesnapshots.json.gz
files in object storage if they don’t already exist, containing snapshot metadata populated from the backups' status.volumeBackups
field*.*backups created prior to v0.10 stored snapshot metadata in the status.volumeBackups
field, but it has subsequently been replaced with the <backup-name>-volumesnapshots.json.gz
file.
Download the v0.11.1 release tarball tarball for your client platform.
Extract the tarball:
tar -xvf <RELEASE-TARBALL-NAME>.tar.gz -C /dir/to/extract/to
Move the velero
binary from the Velero directory to somewhere in your PATH.
Scale down your existing Velero deployment:
kubectl -n velero scale deployment/velero --replicas 0
Fetch velero’s credentials for accessing your object storage bucket and store them locally for use by velero migrate-backups
:
For AWS:
export AWS_SHARED_CREDENTIALS_FILE=./velero-migrate-backups-credentials
kubectl -n velero get secret cloud-credentials -o jsonpath="{.data.cloud}" | base64 --decode > $AWS_SHARED_CREDENTIALS_FILE
For Azure:
export AZURE_SUBSCRIPTION_ID=$(kubectl -n velero get secret cloud-credentials -o jsonpath="{.data.AZURE_SUBSCRIPTION_ID}" | base64 --decode)
export AZURE_TENANT_ID=$(kubectl -n velero get secret cloud-credentials -o jsonpath="{.data.AZURE_TENANT_ID}" | base64 --decode)
export AZURE_CLIENT_ID=$(kubectl -n velero get secret cloud-credentials -o jsonpath="{.data.AZURE_CLIENT_ID}" | base64 --decode)
export AZURE_CLIENT_SECRET=$(kubectl -n velero get secret cloud-credentials -o jsonpath="{.data.AZURE_CLIENT_SECRET}" | base64 --decode)
export AZURE_RESOURCE_GROUP=$(kubectl -n velero get secret cloud-credentials -o jsonpath="{.data.AZURE_RESOURCE_GROUP}" | base64 --decode)
For GCP:
export GOOGLE_APPLICATION_CREDENTIALS=./velero-migrate-backups-credentials
kubectl -n velero get secret cloud-credentials -o jsonpath="{.data.cloud}" | base64 --decode > $GOOGLE_APPLICATION_CREDENTIALS
List all of your backup storage locations:
velero backup-location get
For each backup storage location that you want to use with Velero 1.0, replace any legacy pre-v0.11 backup metadata with the equivalent current formats:
# - BACKUP_LOCATION_NAME is the name of a backup location from the previous step, whose
# backup metadata will be updated in object storage
# - SNAPSHOT_LOCATION_NAME is the name of the volume snapshot location that Velero should
# record volume snapshots as existing in (this is only relevant if you have backups that
# were originally taken with a pre-v0.10 Velero/Ark.)
velero migrate-backups \
--backup-location <BACKUP_LOCATION_NAME> \
--snapshot-location <SNAPSHOT_LOCATION_NAME>
Scale up your deployment:
kubectl -n velero scale deployment/velero --replicas 1
Remove the local velero
credentials:
For AWS:
rm $AWS_SHARED_CREDENTIALS_FILE
unset AWS_SHARED_CREDENTIALS_FILE
For Azure:
unset AZURE_SUBSCRIPTION_ID
unset AZURE_TENANT_ID
unset AZURE_CLIENT_ID
unset AZURE_CLIENT_SECRET
unset AZURE_RESOURCE_GROUP
For GCP:
rm $GOOGLE_APPLICATION_CREDENTIALS
unset GOOGLE_APPLICATION_CREDENTIALS
Download the v1.0 release tarball tarball for your client platform.
Extract the tarball:
tar -xvf <RELEASE-TARBALL-NAME>.tar.gz -C /dir/to/extract/to
Move the velero
binary from the Velero directory to somewhere in your PATH, replacing any existing pre-1.0 velero
binaries.
Update the image for the Velero deployment and daemon set (if applicable):
kubectl -n velero set image deployment/velero velero=gcr.io/heptio-images/velero:v1.0.0
kubectl -n velero set image daemonset/restic restic=gcr.io/heptio-images/velero:v1.0.0
To help you get started, see the documentation.