ci-automation: add brightbox testing

Signed-off-by: Mathieu Tortuyaux <mtortuyaux@microsoft.com>
This commit is contained in:
Mathieu Tortuyaux 2023-11-22 15:09:30 +01:00
parent cb1f64503f
commit 6cd5871b4a
No known key found for this signature in database
GPG Key ID: AC5CCFB52545D9B8
2 changed files with 71 additions and 0 deletions

View File

@ -153,3 +153,8 @@ AZURE_LOCATION="${AZURE_LOCATION:-westeurope}"
# -- Openstack --
: ${OPENSTACK_IMAGE_NAME:='flatcar_production_openstack_image.img.gz'}
OPENSTACK_PARALLEL="${PARALLEL_TESTS:-3}"
# -- Brightbox --
: ${BRIGHTBOX_IMAGE_NAME:='flatcar_production_openstack_image.img'}
BRIGHTBOX_PARALLEL="${PARALLEL_TESTS:-1}"
: ${BRIGHTBOX_SERVER_TYPE:="2gb.ssd"}

View File

@ -0,0 +1,66 @@
#!/bin/bash
# Copyright (c) 2023 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 Brightbox vendor.
# This script is supposed to run in the mantle container.
source ci-automation/vendor_test.sh
# ARM64 is not supported on Brightbox, so for now fail it as an
# unsupported option.
if [[ "${CIA_ARCH}" == "arm64" ]]; then
echo "1..1" > "${CIA_TAPFILE}"
echo "not ok - all qemu tests" >> "${CIA_TAPFILE}"
echo " ---" >> "${CIA_TAPFILE}"
echo " ERROR: ARM64 tests not supported on Brightbox." | tee -a "${CIA_TAPFILE}"
echo " ..." >> "${CIA_TAPFILE}"
break_retest_cycle
exit 1
fi
# BRIGHTBOX_CLIENT_ID, BRIGHTBOX_CLIENT_SECRET should be provided by sdk_container/.env
# Upload the image on Brightbox.
IMAGE_ID=$(ore brightbox create-image \
--name=flatcar-"${CIA_VERNUM}" \
--url="https://${BUILDCACHE_SERVER}/images/${CIA_ARCH}/${CIA_VERNUM}/${BRIGHTBOX_IMAGE_NAME}" \
--brightbox-client-id="${BRIGHTBOX_CLIENT_ID}" \
--brightbox-client-secret="${BRIGHTBOX_CLIENT_SECRET}"
)
# Remove any left-over servers.
ore brightbox remove-servers \
--brightbox-client-id="${BRIGHTBOX_CLIENT_ID}" \
--brightbox-client-secret="${BRIGHTBOX_CLIENT_SECRET}" || :
# Remove any left-over IPs.
ore brightbox remove-ips \
--brightbox-client-id="${BRIGHTBOX_CLIENT_ID}" \
--brightbox-client-secret="${BRIGHTBOX_CLIENT_SECRET}" || :
# Delete the image once we exit.
trap 'ore brightbox delete-image --brightbox-client-id="${BRIGHTBOX_CLIENT_ID}" --brightbox-client-secret="${BRIGHTBOX_CLIENT_SECRET}" --id "${IMAGE_ID}" || true' EXIT
kola_test_basename="ci-${CIA_VERNUM//+/-}"
kola_test_basename="${kola_test_basename//[+.]/-}"
set -x
timeout --signal=SIGQUIT 2h kola run \
--board="${CIA_ARCH}-usr" \
--parallel="${BRIGHTBOX_PARALLEL}" \
--tapfile="${CIA_TAPFILE}" \
--channel="${CIA_CHANNEL}" \
--basename="${kola_test_basename}" \
--platform=brightbox \
--brightbox-image="${IMAGE_ID}" \
--brightbox-client-id="${BRIGHTBOX_CLIENT_ID}" \
--brightbox-client-secret="${BRIGHTBOX_CLIENT_SECRET}" \
--brightbox-server-type="${BRIGHTBOX_SERVER_TYPE}" \
"${@}"
set +x