flatcar-scripts/ci-automation/vendor-testing/azure.sh
James Le Cuirot 54027d7488
ci-automation: Set the right parameters for Hyper-V Gen 1/2 on Azure
We still perform some tests using Gen 1 on amd64. Standard_D2s_v6 does
not support this, but v5 will presumably be the last version that does,
so hardcode that case.

For Gen 2, you need to set the SKU for amd64 to work, and it has to use
the gallery like arm64 already does.

Using the gallery is possibly slightly slower, so ideally we would only
upload the image once like we do for AWS, but let's just get it working
for now.

Signed-off-by: James Le Cuirot <jlecuirot@microsoft.com>
2025-04-15 10:57:17 +01:00

88 lines
2.7 KiB
Bash
Executable File

#!/bin/bash
# Copyright (c) 2021 The Flatcar Maintainers.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
set -euo pipefail
# Test execution script for the azure vendor image.
# This script is supposed to run in the mantle container.
source ci-automation/vendor_test.sh
# $@ now contains tests / test patterns to run
board="${CIA_ARCH}-usr"
basename="ci-${CIA_VERNUM//+/-}-${CIA_ARCH}"
azure_instance_type_var="AZURE_${CIA_ARCH}_MACHINE_SIZE"
azure_instance_type="${!azure_instance_type_var}"
azure_vnet_subnet_name="jenkins-vnet-${AZURE_LOCATION}"
# Fetch the Azure image if not present
if [ -f "${AZURE_IMAGE_NAME}" ] ; then
echo "++++ ${CIA_TESTSCRIPT}: Using existing ${AZURE_IMAGE_NAME} for testing ${CIA_VERNUM} (${CIA_ARCH}) ++++"
else
echo "++++ ${CIA_TESTSCRIPT}: downloading ${AZURE_IMAGE_NAME} for ${CIA_VERNUM} (${CIA_ARCH}) ++++"
copy_from_buildcache "images/${CIA_ARCH}/${CIA_VERNUM}/${AZURE_IMAGE_NAME}.bz2" .
cp --sparse=always <(lbzcat "${AZURE_IMAGE_NAME}.bz2") "${AZURE_IMAGE_NAME}"
rm "${AZURE_IMAGE_NAME}.bz2"
fi
run_kola_tests() {
local instance_type="${1}"; shift
local instance_tapfile="${1}"; shift
local hyperv_gen sku
if [ "${instance_type}" = "V1" ]; then
hyperv_gen="V1"
sku="alpha"
# v5 is the last to support Gen 1. Only amd64 uses Gen 1.
instance_type="Standard_D2s_v5"
else
hyperv_gen="V2"
sku="alpha-gen2"
set -- --azure-use-gallery "${@}"
fi
# Align timeout with ore azure gc --duration parameter
timeout --signal=SIGQUIT 6h \
kola run \
--board="${board}" \
--basename="${basename}" \
--parallel="${AZURE_PARALLEL}" \
--offering=basic \
--platform=azure \
--azure-image-file="${AZURE_IMAGE_NAME}" \
--azure-location="${AZURE_LOCATION}" \
--tapfile="${instance_tapfile}" \
--azure-size="${instance_type}" \
--azure-sku="${sku}" \
--azure-hyper-v-generation="${hyperv_gen}" \
${AZURE_USE_GALLERY} \
${AZURE_KOLA_VNET:+--azure-kola-vnet=${AZURE_KOLA_VNET}} \
${azure_vnet_subnet_name:+--azure-vnet-subnet-name=${azure_vnet_subnet_name}} \
${AZURE_USE_PRIVATE_IPS:+--azure-use-private-ips=${AZURE_USE_PRIVATE_IPS}} \
--image-version "${CIA_VERNUM}" \
"${@}"
}
query_kola_tests() {
shift; # ignore the instance type
kola list --platform=azure --filter "${@}"
}
other_instance_types=()
if [[ "${CIA_ARCH}" = 'amd64' ]]; then
other_instance_types+=('V1' 'Standard_NC6s_v3')
fi
run_kola_tests_on_instances \
"${azure_instance_type}" \
"${CIA_TAPFILE}" \
"${CIA_FIRST_RUN}" \
"${other_instance_types[@]}" \
'--' \
'cl.internet' 'cl.misc.nvidia'\
'--' \
"${@}"