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 38828976cc
commit 477f03b23f
No known key found for this signature in database
GPG Key ID: AC5CCFB52545D9B8
4 changed files with 74 additions and 0 deletions

View File

@ -155,3 +155,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

@ -160,6 +160,7 @@ function _garbage_collect_impl() {
--env GCP_JSON_KEY \
--env VMWARE_ESX_CREDS \
--env OPENSTACK_CREDS \
--env BRIGHTBOX_CLIENT_ID --env BRIGHTBOX_CLIENT_SECRET \
-w /work -v "$PWD":/work "${mantle_ref}" /work/ci-automation/garbage_collect_cloud.sh
echo

View File

@ -8,3 +8,5 @@ timeout --signal=SIGQUIT 60m ore equinixmetal gc --duration 6h \
--project="${EQUINIXMETAL_PROJECT}" --gs-json-key=<(echo "${GCP_JSON_KEY}" | base64 --decode) --api-key="${EQUINIXMETAL_KEY}"
timeout --signal=SIGQUIT 60m ore openstack gc --duration 6h \
--config-file=<(echo "${OPENSTACK_CREDS}" | base64 --decode)
timeout --signal=SIGQUIT 60m ore brightbox gc --duration 6h \
--brightbox-client-id="${BRIGHTBOX_CLIENT_ID}" --brightbox-client-secret="${BRIGHTBOX_CLIENT_SECRET}"

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