Documentation for version v1.5 is no longer actively maintained. The version you are currently viewing is a static snapshot. For up-to-date documentation, see the latest version.
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 PATH
.
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 info
, use debug
for the most logging)--kubeconfig
: set the path to the kubeconfig file the Velero server uses to talk to the Kubernetes apiserver (default $KUBECONFIG
)--namespace
: the set namespace where the Velero server should look for backups, schedules, restores (default velero
)--plugin-dir
: set the directory where the Velero server looks for plugins (default /plugins
)
--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 :8085
)To help you get started, see the documentation.