Running the Velero server locally can speed up iterative development. This eliminates the need to rebuild the Velero server image and redeploy it to the cluster with each change.
Velero runs against the Kubernetes API server as the endpoint (as per the
kubeconfig configuration), so both the Velero server and client use the same
client-go to communicate with Kubernetes. This means the Velero server can be run locally just as functionally as if it was running in the remote cluster.
When running Velero, you will need to ensure that you set up all of the following:
See documentation on how to install Velero in some specific providers: Install overview
After you use the
velero install command to install Velero into your cluster, you scale the Velero deployment down to 0 so it is not simultaneously being run on the remote cluster and potentially causing things to get out of sync:
kubectl scale --replicas=0 deployment velero -n velero
To run the server locally, use the full path according to the binary you need. Example, if you are on a Mac, and using
AWS as a provider, this is how to run the binary you built from source using the full path:
AWS_SHARED_CREDENTIALS_FILE=<path-to-credentials-file> ./_output/bin/darwin/amd64/velero. Alternatively, you may add the
velero binary to your
Start the server:
velero server [CLI flags]. The following CLI flags may be useful to customize, but see
velero server --help for full details:
--log-level: set the Velero server’s log level (default
debug for the most logging)
--kubeconfig: set the path to the kubeconfig file the Velero server uses to talk to the Kubernetes apiserver (default
--namespace: the set namespace where the Velero server should look for backups, schedules, restores (default
--plugin-dir: set the directory where the Velero server looks for plugins (default
--plugin-dir flag requires the plugin binary to be present locally, and should be set to the directory containing this built binary.
--metrics-address: set the bind address and port where Prometheus metrics are exposed (default