Heptio Ark is now Velero! v0.11 is our first release with the new name. For instructions on migrating your Ark deployments and data to Velero, please see the Upgrade section in the latest version. For more details on the renaming, please read our blog post.

Migrating from Heptio Ark to Velero

As of v0.11.0, Heptio Ark has become Velero. This means the following changes have been made:

The following instructions will help you migrate your existing Ark installation to Velero.


Migration process

At a high level, the migration process involves the following steps:

These steps are provided in a script here:

kubectl scale --namespace heptio-ark deployment/ark --replicas 0
 OS=$(uname | tr '[:upper:]' '[:lower:]') # Determine if the OS is Linux or macOS

# Download the velero client/example tarball to and unpack
curl -L https://github.com/heptio/velero/releases/download/v0.11.0/velero-v0.11.0-${OS}-${ARCH}.tar.gz --output velero-v0.11.0-${OS}-${ARCH}.tar.gz
tar xvf velero-v0.11.0-${OS}-${ARCH}.tar.gz

# Create the prerequisite CRDs and namespace
kubectl apply -f config/common/00-prereqs.yaml

# Download and unpack the crd-migrator tool
curl -L https://github.com/vmware/crd-migration-tool/releases/download/v1.0.0/crd-migration-tool-v1.0.0-${OS}-${ARCH}.tar.gz --output crd-migration-tool-v1.0.0-${OS}-${ARCH}.tar.gz
tar xvf crd-migration-tool-v1.0.0-${OS}-${ARCH}.tar.gz

# Run the tool against your cluster.
./crd-migrator \
    --from ark.heptio.com/v1 \
    --to velero.io/v1 \
    --label-mappings ark.heptio.com:velero.io,ark-schedule:velero.io/schedule-name \
    --annotation-mappings ark.heptio.com:velero.io \
    --namespace-mappings heptio-ark:velero

# Copy the necessary secret from the ark namespace
kubectl get secret --namespace heptio-ark cloud-credentials --export -o yaml | kubectl apply --namespace velero -f -

# Apply the Velero deployment and restic DaemonSet for your platform
## GCP
#kubectl apply -f config/gcp/10-deployment.yaml
#kubectl apply -f config/gcp/20-restic-daemonset.yaml
## AWS
#kubectl apply -f config/aws/10-deployment.yaml
#kubectl apply -f config/aws/20-restic-daemonset.yaml
## Azure
#kubectl apply -f config/azure/00-deployment.yaml
#kubectl apply -f config/azure/20-restic-daemonset.yaml

# Verify your data is still present
./velero get backup
./velero get restore

# Remove old Ark data
kubectl delete namespace heptio-ark
kubectl delete crds -l component=ark 
kubectl delete clusterrolebindings -l component=ark