tests/CI: Re-enable the vmware tests on RHEL 10

Re-enable the vmware tests on RHEL 10 and use vcenter 8 instead of 6. This fixes the issues caused by outdated CPUs in old cluster by migrating to a new one with new hosts as well.
This commit is contained in:
Tom Koscielniak 2025-01-27 11:06:28 +01:00 committed by Tomáš Hozza
parent 0dcbece2ca
commit 9b850de9f1
3 changed files with 62 additions and 67 deletions

View file

@ -25,7 +25,7 @@ function installClientVSphere() {
}
function checkEnvVSphere() {
printenv GOVMOMI_USERNAME GOVMOMI_PASSWORD GOVMOMI_URL GOVMOMI_CLUSTER GOVMOMI_DATACENTER GOVMOMI_DATASTORE GOVMOMI_FOLDER GOVMOMI_NETWORK > /dev/null
printenv VC8_GOVMOMI_USERNAME VC8_GOVMOMI_PASSWORD VC8_GOVMOMI_URL VC8_GOVMOMI_CLUSTER VC8_GOVMOMI_DATACENTER VC8_GOVMOMI_DATASTORE VC8_GOVMOMI_FOLDER VC8_GOVMOMI_NETWORK > /dev/null
}
# Create a cloud-int user-data file
@ -134,24 +134,24 @@ function verifyInVSphere() {
# if one with this name exists, it appends "_<number>" to the name
greenprint "💿 ⬆️ Importing the converted VMDK image to VSphere"
$GOVC_CMD import.vmdk \
-u "${GOVMOMI_USERNAME}:${GOVMOMI_PASSWORD}@${GOVMOMI_URL}" \
-u "${VC8_GOVMOMI_USERNAME}:${VC8_GOVMOMI_PASSWORD}@${VC8_GOVMOMI_URL}" \
-k=true \
-dc="${GOVMOMI_DATACENTER}" \
-pool="${GOVMOMI_CLUSTER}"/Resources \
-ds="${GOVMOMI_DATASTORE}" \
-dc="${VC8_GOVMOMI_DATACENTER}" \
-pool="${VC8_GOVMOMI_CLUSTER}"/Resources \
-ds="${VC8_GOVMOMI_DATASTORE}" \
"${WORKDIR}/${VSPHERE_IMAGE_NAME}" \
"${VSPHERE_VM_NAME}"
# create the VM, but don't start it
greenprint "🖥️ Creating VM in VSphere"
$GOVC_CMD vm.create \
-u "${GOVMOMI_USERNAME}:${GOVMOMI_PASSWORD}@${GOVMOMI_URL}" \
-u "${VC8_GOVMOMI_USERNAME}:${VC8_GOVMOMI_PASSWORD}@${VC8_GOVMOMI_URL}" \
-k=true \
-dc="${GOVMOMI_DATACENTER}" \
-pool="${GOVMOMI_CLUSTER}"/Resources \
-ds="${GOVMOMI_DATASTORE}" \
-folder="${GOVMOMI_FOLDER}" \
-net="${GOVMOMI_NETWORK}" \
-dc="${VC8_GOVMOMI_DATACENTER}" \
-pool="${VC8_GOVMOMI_CLUSTER}"/Resources \
-ds="${VC8_GOVMOMI_DATASTORE}" \
-folder="${VC8_GOVMOMI_FOLDER}" \
-net="${VC8_GOVMOMI_NETWORK}" \
-net.adapter=vmxnet3 \
-m=4096 -c=2 -g=rhel8_64Guest -on=true -firmware=efi \
-disk="${VSPHERE_VM_NAME}/${VSPHERE_IMAGE_NAME}" \
@ -161,36 +161,36 @@ function verifyInVSphere() {
# tagging vm as testing object
$GOVC_CMD tags.attach \
-u "${GOVMOMI_USERNAME}":"${GOVMOMI_PASSWORD}"@"${GOVMOMI_URL}" \
-u "${VC8_GOVMOMI_USERNAME}":"${VC8_GOVMOMI_PASSWORD}"@"${VC8_GOVMOMI_URL}" \
-k=true \
-c "osbuild-composer testing" gitlab-ci-test \
"/${GOVMOMI_DATACENTER}/vm/${GOVMOMI_FOLDER}/${VSPHERE_VM_NAME}"
"/${VC8_GOVMOMI_DATACENTER}/vm/${VC8_GOVMOMI_FOLDER}/${VSPHERE_VM_NAME}"
# upload ISO, create CDROM device and insert the ISO in it
greenprint "💿 ⬆️ Uploading the cloud-init user-data ISO to VSphere"
VSPHERE_CIDATA_ISO_PATH="${VSPHERE_VM_NAME}/cidata.iso"
$GOVC_CMD datastore.upload \
-u "${GOVMOMI_USERNAME}:${GOVMOMI_PASSWORD}@${GOVMOMI_URL}" \
-u "${VC8_GOVMOMI_USERNAME}:${VC8_GOVMOMI_PASSWORD}@${VC8_GOVMOMI_URL}" \
-k=true \
-dc="${GOVMOMI_DATACENTER}" \
-ds="${GOVMOMI_DATASTORE}" \
-dc="${VC8_GOVMOMI_DATACENTER}" \
-ds="${VC8_GOVMOMI_DATASTORE}" \
"${_ci_iso_path}" \
"${VSPHERE_CIDATA_ISO_PATH}"
local _cdrom_device
greenprint "🖥️ + 💿 Adding a CD-ROM device to the VM"
_cdrom_device="$($GOVC_CMD device.cdrom.add \
-u "${GOVMOMI_USERNAME}:${GOVMOMI_PASSWORD}@${GOVMOMI_URL}" \
-u "${VC8_GOVMOMI_USERNAME}:${VC8_GOVMOMI_PASSWORD}@${VC8_GOVMOMI_URL}" \
-k=true \
-dc="${GOVMOMI_DATACENTER}" \
-dc="${VC8_GOVMOMI_DATACENTER}" \
-vm "${VSPHERE_VM_NAME}")"
greenprint "💿 Inserting the cloud-init ISO into the CD-ROM device"
$GOVC_CMD device.cdrom.insert \
-u "${GOVMOMI_USERNAME}:${GOVMOMI_PASSWORD}@${GOVMOMI_URL}" \
-u "${VC8_GOVMOMI_USERNAME}:${VC8_GOVMOMI_PASSWORD}@${VC8_GOVMOMI_URL}" \
-k=true \
-dc="${GOVMOMI_DATACENTER}" \
-ds="${GOVMOMI_DATASTORE}" \
-dc="${VC8_GOVMOMI_DATACENTER}" \
-ds="${VC8_GOVMOMI_DATASTORE}" \
-vm "${VSPHERE_VM_NAME}" \
-device "${_cdrom_device}" \
"${VSPHERE_CIDATA_ISO_PATH}"
@ -198,16 +198,16 @@ function verifyInVSphere() {
# start the VM
greenprint "🔌 Powering up the VSphere VM"
$GOVC_CMD vm.power \
-u "${GOVMOMI_USERNAME}:${GOVMOMI_PASSWORD}@${GOVMOMI_URL}" \
-u "${VC8_GOVMOMI_USERNAME}:${VC8_GOVMOMI_PASSWORD}@${VC8_GOVMOMI_URL}" \
-k=true \
-dc="${GOVMOMI_DATACENTER}" \
-dc="${VC8_GOVMOMI_DATACENTER}" \
-on "${VSPHERE_VM_NAME}"
HOST=$($GOVC_CMD vm.ip \
-u "${GOVMOMI_USERNAME}:${GOVMOMI_PASSWORD}@${GOVMOMI_URL}" \
-u "${VC8_GOVMOMI_USERNAME}:${VC8_GOVMOMI_PASSWORD}@${VC8_GOVMOMI_URL}" \
-k=true \
-v4=true \
-dc="${GOVMOMI_DATACENTER}" \
-dc="${VC8_GOVMOMI_DATACENTER}" \
"${VSPHERE_VM_NAME}")
greenprint "⏱ Waiting for the VSphere VM to respond to ssh"
_instanceWaitSSH "${HOST}"
@ -226,25 +226,25 @@ function cleanupVSphere() {
greenprint "🧹 Cleaning up the VSphere VM"
$GOVC_CMD vm.destroy \
-u "${GOVMOMI_USERNAME}:${GOVMOMI_PASSWORD}@${GOVMOMI_URL}" \
-u "${VC8_GOVMOMI_USERNAME}:${VC8_GOVMOMI_PASSWORD}@${VC8_GOVMOMI_URL}" \
-k=true \
-dc="${GOVMOMI_DATACENTER}" \
-dc="${VC8_GOVMOMI_DATACENTER}" \
"${VSPHERE_VM_NAME}"
greenprint "🧹 Cleaning up the VSphere Datastore"
$GOVC_CMD datastore.rm \
-u "${GOVMOMI_USERNAME}:${GOVMOMI_PASSWORD}@${GOVMOMI_URL}" \
-u "${VC8_GOVMOMI_USERNAME}:${VC8_GOVMOMI_PASSWORD}@${VC8_GOVMOMI_URL}" \
-k=true \
-dc="${GOVMOMI_DATACENTER}" \
-ds="${GOVMOMI_DATASTORE}" \
-dc="${VC8_GOVMOMI_DATACENTER}" \
-ds="${VC8_GOVMOMI_DATASTORE}" \
-f \
"${VSPHERE_CIDATA_ISO_PATH}"
$GOVC_CMD datastore.rm \
-u "${GOVMOMI_USERNAME}:${GOVMOMI_PASSWORD}@${GOVMOMI_URL}" \
-u "${VC8_GOVMOMI_USERNAME}:${VC8_GOVMOMI_PASSWORD}@${VC8_GOVMOMI_URL}" \
-k=true \
-dc="${GOVMOMI_DATACENTER}" \
-ds="${GOVMOMI_DATASTORE}" \
-dc="${VC8_GOVMOMI_DATACENTER}" \
-ds="${VC8_GOVMOMI_DATASTORE}" \
-f \
"${VSPHERE_VM_NAME}"
}

View file

@ -75,7 +75,7 @@ function cleanup() {
greenprint "🧼 Cleaning up"
# kill dangling journalctl processes to prevent GitLab CI from hanging
sudo pkill journalctl || echo "Nothing killed"
$GOVC_CMD vm.destroy -u "${GOVMOMI_USERNAME}":"${GOVMOMI_PASSWORD}"@"${GOVMOMI_URL}" -k=true "${IMAGE_KEY}"
$GOVC_CMD vm.destroy -u "${VC8_GOVMOMI_USERNAME}":"${VC8_GOVMOMI_PASSWORD}"@"${VC8_GOVMOMI_URL}" -k=true "${IMAGE_KEY}"
set -eu
}
trap cleanup EXIT
@ -122,13 +122,13 @@ tee "$VMWARE_CONFIG" > /dev/null << EOF
provider = "vmware"
[settings]
host = "${GOVMOMI_URL}"
username = "${GOVMOMI_USERNAME}"
password = "${GOVMOMI_PASSWORD}"
cluster = "${GOVMOMI_CLUSTER}"
dataStore = "${GOVMOMI_DATASTORE}"
dataCenter = "${GOVMOMI_DATACENTER}"
folder = "${GOVMOMI_FOLDER}"
host = "${VC8_GOVMOMI_URL}"
username = "${VC8_GOVMOMI_USERNAME}"
password = "${VC8_GOVMOMI_PASSWORD}"
cluster = "${VC8_GOVMOMI_CLUSTER}"
dataStore = "${VC8_GOVMOMI_DATASTORE}"
dataCenter = "${VC8_GOVMOMI_DATACENTER}"
folder = "${VC8_GOVMOMI_FOLDER}"
EOF
# Write a basic blueprint for our image.
@ -200,13 +200,13 @@ fi
if [ "$IMAGE_TYPE" = "vmdk" ]; then
greenprint "👷🏻 Building VM in vSphere"
$GOVC_CMD vm.create -u "${GOVMOMI_USERNAME}":"${GOVMOMI_PASSWORD}"@"${GOVMOMI_URL}" \
$GOVC_CMD vm.create -u "${VC8_GOVMOMI_USERNAME}":"${VC8_GOVMOMI_PASSWORD}"@"${VC8_GOVMOMI_URL}" \
-k=true \
-pool="${GOVMOMI_CLUSTER}"/Resources \
-dc="${GOVMOMI_DATACENTER}" \
-ds="${GOVMOMI_DATASTORE}" \
-folder="${GOVMOMI_FOLDER}" \
-net="${GOVMOMI_NETWORK}" \
-pool="${VC8_GOVMOMI_CLUSTER}"/Resources \
-dc="${VC8_GOVMOMI_DATACENTER}" \
-ds="${VC8_GOVMOMI_DATASTORE}" \
-folder="${VC8_GOVMOMI_FOLDER}" \
-net="${VC8_GOVMOMI_NETWORK}" \
-net.adapter=vmxnet3 \
-m=4096 -c=2 -g=rhel8_64Guest -on=true -firmware=efi \
-disk="${IMAGE_KEY}"/"${IMAGE_KEY}".vmdk \
@ -214,16 +214,16 @@ $GOVC_CMD vm.create -u "${GOVMOMI_USERNAME}":"${GOVMOMI_PASSWORD}"@"${GOVMOMI_UR
"${IMAGE_KEY}"
elif [ "$IMAGE_TYPE" = "ova" ]; then
greenprint "👷🏻 Modifying network of the VM in vSphere"
$GOVC_CMD vm.network.add -u "${GOVMOMI_USERNAME}":"${GOVMOMI_PASSWORD}"@"${GOVMOMI_URL}" \
$GOVC_CMD vm.network.add -u "${VC8_GOVMOMI_USERNAME}":"${VC8_GOVMOMI_PASSWORD}"@"${VC8_GOVMOMI_URL}" \
-k=true \
-net="${GOVMOMI_NETWORK}" \
-net="${VC8_GOVMOMI_NETWORK}" \
-net.adapter=vmxnet3 \
-vm="${IMAGE_KEY}" \
-net="${GOVMOMI_NETWORK}"
-net="${VC8_GOVMOMI_NETWORK}"
# start the vm
greenprint "👷🏻 Powering on the VM"
$GOVC_CMD vm.power -u "${GOVMOMI_USERNAME}":"${GOVMOMI_PASSWORD}"@"${GOVMOMI_URL}" \
$GOVC_CMD vm.power -u "${VC8_GOVMOMI_USERNAME}":"${VC8_GOVMOMI_PASSWORD}"@"${VC8_GOVMOMI_URL}" \
-k=true \
-wait=true \
-on \
@ -232,13 +232,13 @@ $GOVC_CMD vm.power -u "${GOVMOMI_USERNAME}":"${GOVMOMI_PASSWORD}"@"${GOVMOMI_URL
fi
# tagging vm as testing object
$GOVC_CMD tags.attach -u "${GOVMOMI_USERNAME}":"${GOVMOMI_PASSWORD}"@"${GOVMOMI_URL}" \
$GOVC_CMD tags.attach -u "${VC8_GOVMOMI_USERNAME}":"${VC8_GOVMOMI_PASSWORD}"@"${VC8_GOVMOMI_URL}" \
-k=true \
-c "osbuild-composer testing" gitlab-ci-test \
"/${GOVMOMI_DATACENTER}/vm/${GOVMOMI_FOLDER}/${IMAGE_KEY}"
"/${VC8_GOVMOMI_DATACENTER}/vm/${VC8_GOVMOMI_FOLDER}/${IMAGE_KEY}"
greenprint "Getting IP of created VM"
VM_IP=$($GOVC_CMD vm.ip -u "${GOVMOMI_USERNAME}":"${GOVMOMI_PASSWORD}"@"${GOVMOMI_URL}" -k=true -v4=true "${IMAGE_KEY}")
VM_IP=$($GOVC_CMD vm.ip -u "${VC8_GOVMOMI_USERNAME}":"${VC8_GOVMOMI_PASSWORD}"@"${VC8_GOVMOMI_URL}" -k=true -v4=true "${IMAGE_KEY}")
# Wait for the node to come online.
greenprint "⏱ Waiting for VM to respond to ssh"