From 63847c29b19c721cd73d4d39e009b109f371ba3e Mon Sep 17 00:00:00 2001 From: Nir Soffer Date: Thu, 12 Oct 2023 17:25:31 +0300 Subject: [PATCH] Add kubevirt addon The addon installs kubvirt v1.0.0 (corresponds to OpenShift 4.14) in the managed clusters. We may switch later to latest release, starting with something more stable. Signed-off-by: Nir Soffer --- test/addons/kubevirt/start | 67 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100755 test/addons/kubevirt/start diff --git a/test/addons/kubevirt/start b/test/addons/kubevirt/start new file mode 100755 index 0000000000..a1c9f28b20 --- /dev/null +++ b/test/addons/kubevirt/start @@ -0,0 +1,67 @@ +#!/usr/bin/env python3 + +# SPDX-FileCopyrightText: The RamenDR authors +# SPDX-License-Identifier: Apache-2.0 + +import os +import sys + +import drenv +from drenv import kubectl + +VERSION = "v1.0.0" +BASE_URL = "https://github.com/kubevirt/kubevirt/releases/download" +NAMESPACE = "kubevirt" + + +def deploy(cluster): + print("Deploying kubevirt operator") + kubectl.apply( + f"--filename={BASE_URL}/{VERSION}/kubevirt-operator.yaml", + context=cluster, + ) + + print("Waiting until virt-operator is rolled out") + kubectl.rollout( + "status", + "deploy/virt-operator", + f"--namespace={NAMESPACE}", + context=cluster, + ) + + print("Deploying kubevirt cr") + kubectl.apply( + f"--filename={BASE_URL}/{VERSION}/kubevirt-cr.yaml", + context=cluster, + ) + + +def wait(cluster): + print("Waiting until kubevirt cr reports phase") + drenv.wait_for( + "kubevirt.kubevirt.io/kubevirt", + namespace=NAMESPACE, + output="jsonpath={.status.phase}", + timeout=60, + profile=cluster, + ) + + print("Waiting until kubevirt cr phase is deployed") + kubectl.wait( + "kubevirt.kubevirt.io/kubevirt", + "--for=jsonpath={.status.phase}=Deployed", + f"--namespace={NAMESPACE}", + "--timeout=300s", + context=cluster, + ) + + +if len(sys.argv) != 2: + print(f"Usage: {sys.argv[0]} cluster") + sys.exit(1) + +os.chdir(os.path.dirname(__file__)) +cluster = sys.argv[1] + +deploy(cluster) +wait(cluster)