|
| 1 | +// Module included in the following assemblies: |
| 2 | +// |
| 3 | +// * virt/backup_restore/virt-disaster-recovery.adoc |
| 4 | + |
| 5 | +:_mod-docs-content-type: CONCEPT |
| 6 | +[id="virt-defining-apps-for-dr_{context}"] |
| 7 | += Defining applications for disaster recovery |
| 8 | + |
| 9 | +Define applications for disaster recovery by using VMs that {rh-rhacm-first} manages or discovers. |
| 10 | + |
| 11 | +[id="best-practices-{rh-rhacm}-managed-vm_{context}"] |
| 12 | +== Best practices when defining an {rh-rhacm}-managed VM |
| 13 | + |
| 14 | +An {rh-rhacm}-managed application that includes a VM must be created by using a GitOps workflow and by creating an {rh-rhacm} application or `ApplicationSet`. |
| 15 | + |
| 16 | +There are several actions you can take to improve your experience and chance of success when defining an {rh-rhacm}-managed VM. |
| 17 | + |
| 18 | +[discrete] |
| 19 | +[id="use-a-pvc-and-populator_{context}"] |
| 20 | +=== Use a PVC and populator to define storage for the VM |
| 21 | +Because data volumes create persistent volume claims (PVCs) implicitly, data volumes and VMs with data volume templates do not fit as neatly into the GitOps model. |
| 22 | + |
| 23 | +[discrete] |
| 24 | +[id="use-import-method_{context}"] |
| 25 | +=== Use the import method when choosing a population source for your VM disk |
| 26 | +Use the import method to work around limitations in Regional-DR that prevent you from protecting VMs that use cloned PVCs. |
| 27 | + |
| 28 | +Select a {op-system-base} image from the software catalog to use the import method. Red{nbsp}Hat recommends using a specific version of the image rather than a floating tag for consistent results. The KubeVirt community maintains container disks for other operating systems in a Quay repository. |
| 29 | + |
| 30 | +[discrete] |
| 31 | +[id="use-pull-node_{context}"] |
| 32 | +=== Use `pullMethod: node` |
| 33 | +Use the pod `pullMethod: node` when creating a data volume from a registry source to take advantage of the {product-title} pull secret, which is required to pull container images from the Red{nbsp}Hat registry. |
| 34 | + |
| 35 | +[id="best-practices-{rh-rhacm}-discovered-vm_{context}"] |
| 36 | +== Best practices when defining an {rh-rhacm}-discovered virtual machine |
| 37 | + |
| 38 | +You can configure any VM in the cluster that is not an {rh-rhacm}-managed application as an {rh-rhacm}-discovered application. This includes VMs imported by using the Migration Toolkit for Virtualization (MTV), VMs created by using the {VirtProductName} web console, or VMs created by any other means, such as the CLI. |
| 39 | + |
| 40 | +There are several actions you can take to improve your experience and chance of success when defining an {rh-rhacm}-discovered VM. |
| 41 | + |
| 42 | +[discrete] |
| 43 | +[id="protect-the-vm_{context}"] |
| 44 | +=== Protect the VM when using MTV, the {VirtProductName} web console, or a custom VM |
| 45 | +Because automatic labeling is not currently available, the application owner must manually label the components of the VM application when using MTV, the {VirtProductName} web console, or a custom VM. |
| 46 | + |
| 47 | +After creating the VM, apply a common label to the following resources associated with the VM: `VirtualMachine`, `DataVolume`, `PersistentVolumeClaim`, `Service`, `Route`, `Secret`, and `ConfigMap`. Do not label virtual machine instances (VMIs) or pods |
| 48 | +since {VirtProductName} creates and manages these automatically. |
| 49 | + |
| 50 | +[discrete] |
| 51 | +[id="working-vm-contains_{context}"] |
| 52 | +=== Include more than the `VirtualMachine` object in the VM |
| 53 | +Working VMs typically also contain data volumes, persistent volume claims (PVCs), services, routes, secrets, `ConfigMap` objects, and `VirtualMachineSnapshot` objects. |
| 54 | + |
| 55 | +[discrete] |
| 56 | +[id="part-of-larger-app_{context}"] |
| 57 | +=== Include the VM as part of a larger logical application |
| 58 | +This includes other pod-based workloads and VMs. |
0 commit comments