---
title: Charmhub | Deploy Velero Operator Charm using Charmhub - The Open Operator
  Collection
description: Deploy the latest version of Velero Operator Charm on any cloud.
url: https://charmhub.io/velero-operator/docs/tutorial
---

# Velero Operator Charm

[Kubeflow Charmers](https://charmhub.io/publisher/ckfbot "View all packages from Kubeflow Charmers")

* [Kubeflow Charmers](https://charmhub.io/publisher/ckfbot "View all packages from Kubeflow Charmers")

Platform:

24.04

edge 503

```
juju deploy velero-operator --channel edge
```

[Learn to deploy on juju >](https://juju.is/docs/juju/manage-applications)

---

#### Relevant links

* [Homepage](https://github.com/canonical/velero-operator)

---

#### Contacts

* [Submit a bug](https://github.com/canonical/velero-operator/issues)

---

Share your thoughts on this charm with the community on discourse.

[Join the discussion](https://discourse.charmhub.io/)

# Tutorial

This guide provides a step-by-step tutorial to get you started with Charmed Velero, on top of a generic Kubernetes (K8s) cluster. In this tutorial, you will use [Canonical K8s](https://documentation.ubuntu.com/canonical-kubernetes/release-1.32/).

## [Requirements](https://charmhub.io/velero-operator/docs/tutorial#p-37264-requirements)

* A Kubernetes Juju controller, such as Canonical K8s.

## [Deploy Charmed Velero](https://charmhub.io/velero-operator/docs/tutorial#p-37264-deploy-charmed-velero)

To deploy the Velero operator, add a new model to perform deployments:

```
juju add-model velero-tutorial
```

Deploy the `velero-operator` charm and wait for its installation to complete:

```
juju deploy velero-operator --trust --config use-node-agent=true --config default-volumes-to-fs-backup=true
```

For this example, `use-node-agent` and `default-volumes-to-fs-backup` config options are set to allow Velero to make file system backups of the Persistent Volume Claims using [kopia](https://github.com/kopia/kopia). This configuration should only be set on non-AWS/AKS clusters, as those clouds usually provide native snapshotting capabilities via [Velero Plugins](https://velero.io/docs/v1.17/supported-providers/).

## [Integrate with a storage provider](https://charmhub.io/velero-operator/docs/tutorial#p-37264-integrate-with-a-storage-provider)

This tutorial uses the `s3-integrator` charm as the storage provider.
Follow its [documentation](https://charmhub.io/s3-integrator) to set up the integrator with the AWS S3 object storage credentials. Once done, integrate it with Charmed Velero:

```
juju deploy s3-integrator
juju integrate velero-operator s3-integrator
```

After completing these steps, you should have a model that resembles this:

```
Model            Controller  Cloud/Region         Version  SLA          Timestamp
velero-tutorial  microk8s       microk8s/localhost  3.6.4    unsupported  21:25:24-04:00

App              Version  Status   Scale  Charm            Channel        Rev  Address        Exposed  Message
s3-integrator             active       1  s3-integrator    latest/stable  145  10.152.183.77  no
velero-operator           active       1  velero-operator                   0  10.152.183.97  no       Unit is Ready

Unit                Workload  Agent  Address      Ports  Message
s3-integrator/0*    active    idle   10.1.27.231
velero-operator/0*  active    idle   10.1.27.203         Unit is Ready
```

## [Back up your data](https://charmhub.io/velero-operator/docs/tutorial#p-37264-back-up-your-data)

Execute a backup via the Velero Command Line Interface (CLI) using the following action:

```
juju run-action velero-operator/0 run-cli command="backup create mybackup --include-namespaces=test-namespace"
```

Get backup details and status as follows:

```
juju run-action velero-operator/0 run-cli command="backup describe mybackup"
```

## [Restore your data](https://charmhub.io/velero-operator/docs/tutorial#p-37264-restore-your-data)

You can restore your data from a previous backup as follows:

```
juju run-action velero-operator/0 run-cli command="restore create --from-backup mybackup"
```

After the restore is completed, the charm recreates the namespace including all its resources. You can confirm it by running:

```
kubectl get all -n test-namespace
```

## [Clean up your tutorial environment](https://charmhub.io/velero-operator/docs/tutorial#p-37264-clean-up-your-tutorial-environment)

Release the allocated resources and delete the model for this tutorial as follows:

```
juju destroy-model velero-tutorial
```

Congratulations! You now have a basic understanding of how the Charmed Velero works.

---
