OpenShift VM
OpenShift VM resources represent the OpenShift Virtualization virtual machines
of an OpenShift cluster. The OpenShift integration backs them up and restores
them, with their disks, through the openshift+vm protocol.
The snapshot of the virtual machine is taken by OpenShift Virtualization, so no
VolumeSnapshotClass needs to be configured. The disk contents are then read,
and written back on restore, through a data mover pod started in the namespace
of the virtual machine and deleted when the operation ends. The pod pulls its
image from ghcr.io/plakarkorp/kubelet by default. A cluster that cannot reach
ghcr.io needs the image from another registry, set with Kubelet Image. See
disconnected clusters
for how to mirror it.
The kubeconfig used by the app must grant the permissions required by the operation. The roles in the Kubernetes RBAC guide apply to OpenShift as well. Source apps use the VM backup role and destination apps use the VM restore role. When Plakar runs outside the cluster, both also need the port forwarding role.
Inventory Management
Managed inventories discover virtual machines automatically once the OpenShift inventory is connected to a cluster with OpenShift Virtualization installed.
Backup flow
flowchart TD
subgraph OpenShift["OpenShift Cluster"]
VM["Virtual machine"]
Snap["OpenShift Virtualization
snapshot"]
Mover["Data mover pod"]
end
subgraph Plakar["Plakar Control Plane"]
Source["OpenShift VM
Source app"]
Backup["Backup process
Encrypt & deduplicate"]
end
Store["Kloset Store"]
VM --> Snap
Snap --> Mover
Mover -->|"reads disk data"| Source
Source --> Backup
Backup --> Store
Restore flow
flowchart TD
Store["Kloset Store"]
subgraph Plakar["Plakar Control Plane"]
Destination["OpenShift VM
Destination app"]
Restore["Restore process"]
end
subgraph OpenShift["OpenShift Cluster"]
Mover["Data mover pod"]
VM["Restored
virtual machine"]
end
Store --> Restore
Destination --> Restore
Restore -->|"writes via"| Mover
Mover --> VM
Shared Configuration
The following settings are available when configuring both source and destination apps.
- Kubeconfig: Paste the contents of a kubeconfig. Leave it empty when Plakar Control Plane runs inside the cluster to use the in-cluster credentials. The kubeconfig can also be loaded from a secret provider.
- Kubelet Image: Optional. The image of the data mover pod. Set it to pull the image from a registry the cluster can reach.
- Node Affinity: Optional. Node affinity of the data mover pod, as the YAML
or JSON body of a pod’s
spec.affinity.nodeAffinity.