Deploy and Configure Virtual Appliance in ROSA

Red Hat OpenShift Service in AWS (ROSA) is an application platform, you can deploy Splunk AppDynamics Self Hosted Virtual Appliance on this platform. Use the QCOW2 image to deploy Virtual Appliance in ROSA.

This deployment uses OpenShift Virtualization (Kubevirt) to deploy or create virtual machines.

Ensure that you have the following:

Prepare Virtual Machine Boot Disks and Connectivity

You require the virtual machine boot disks to upload the QCOW2 image to create Persistent Volume Claims (PVCs) within the cluster. Each virtual machine requires a dedicated boot disk.

Upload the QCOW2 image to PVCs using the virtctl image-upload

Example Command
virtctl image-upload pvc appd-va-vm1-boot-disk \
  --size=200Gi \
  --image-path=appd-va-25.4.0-2016.qcow2 \
  --access-mode=ReadWriteOnce \
  --uploadproxy-url=$(oc get route -n openshift-cnv cdi-uploadproxy -o jsonpath='{.spec.host}') \
  --insecure

Ensure that the virtual machines having the network connectivity. Example, NetworkAttachmentDefinition for the private L2 network.

Create a Virtual Machine using the RHEL Template

In OpenShift Console, complete the following steps to create virtual machines using the RHEL 9 format:
  1. Log into OpenShift Console.
  2. In the Virtualization page, create a virtual machine using the RHEL 9 template.
    rhel9-server-small
    Note: You can review and update the template in the next steps depending on your profile requirements.
  3. In the Review and Create VirtualMachine page, specify the required details in the below tabs and customize the virtual machine.
    Details
    Specify the CPUs and Memory that is required for your Virtual Appliance profile. See Sizing Requirements.
    Disks
    Specify the following disk details for your virtual machine:
    Network Interfaces
    Add the network interface using the L2 network that is created earlier. See Prepare Virtual Machine Boot Disks and Connectivity.
    Scheduling
    (Optional) Expand Node Selector , click Add More.
    Example:
    • Key: kubernetes.io/hostname

    • Operator: In

    • Value: Select the specific worker node hostnames you want to use for the cluster from the dropdown list.

      Note: Use the same set of nodes for all three VMs.
    YAML

    Review the changes make the necessary changes if required. You can add a shared label in spec.template.metadata.labels.

    # ... inside spec: template: metadata:
    labels:
      # ... other labels
      appd-cluster: "va-25-4" # Example shared label
    Ensure the boot mode configuration is only for UEFI:
    Note: Do not use UEFI (Secure).
    # ... inside spec: template: spec: domain:
    firmware:
      bootloader:
        efi: {} # This is correct for UEFI without Secure Boot
  4. Click Create VirtualMachine.
  1. Repeat this procedure for the remaining virtual machines. Ensure that each virtual machine uses the unique name, boot disk, and PVC.

  2. Configure Firewall and NLB.

Configure Firewall and NLB

After creating virtual machines and deploying Virtual Appliance, configure the firewall for virtual machines and create the Network Load Balancer (NLB) service. This configuration ensures the necessary application ports are available to receive traffic in the virtual machines.
  1. Check the firewall status using the ufw status command.
    If the ports are not open, run the following commands:
    sudo ufw allow 443/tcp
    sudo ufw allow 80/tcp
    sudo ufw allow 16443/tcp
  2. Create a Network Load Balancer (NLB).
    This NLB allows the services to access Internet.