mirror of https://github.com/k3s-io/k3s
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
83 lines
1.9 KiB
83 lines
1.9 KiB
#!/bin/bash
|
|
set -xe
|
|
|
|
cd $(dirname $0)/..
|
|
|
|
. ./scripts/test-helpers
|
|
|
|
if [ -z "${K3S_IMAGE}" ]; then
|
|
echo 'K3S_IMAGE environment variable should be defined'
|
|
exit 1
|
|
fi
|
|
|
|
# ---
|
|
|
|
cleanup() {
|
|
exit_status=$?
|
|
set +e
|
|
echo 'Cleaning up'
|
|
trap - EXIT
|
|
[ -n "$SONOBUOY_PID" ] && kill $SONOBUOY_PID 2>/dev/null
|
|
if [ "${exit_status}" -ne "0" ]; then
|
|
dump-logs
|
|
fi
|
|
docker rm -f ${CONTAINERS} 2>/dev/null
|
|
rm ${KUBECONFIG}
|
|
exit ${exit_status}
|
|
}
|
|
trap cleanup EXIT
|
|
|
|
# ---
|
|
|
|
K3S_PORT=$(timeout --foreground 5s bash -c get-port)
|
|
OUTPUT=$(pwd)/sonobuoy-output/${K3S_PORT}
|
|
LOGS=$(pwd)/logs/$$
|
|
E2E="${OUTPUT}/e2e"
|
|
E2E_LOG='plugins/e2e/results/global/e2e.log'
|
|
RESULTS="${E2E}/${E2E_LOG}"
|
|
|
|
SECRET=random-$((100000 + RANDOM % 999999))
|
|
export K3S_AGENT=k3s-agent-${K3S_PORT}
|
|
export K3S_SERVER=k3s-server-${K3S_PORT}
|
|
export CONTAINERS="${K3S_SERVER} ${K3S_AGENT}"
|
|
export KUBECONFIG=${OUTPUT}/kubeconfig.yaml
|
|
|
|
mkdir -p ${OUTPUT}
|
|
|
|
# ---
|
|
|
|
docker run -d --name ${K3S_SERVER} --privileged \
|
|
-p 127.0.0.1:${K3S_PORT}:${K3S_PORT} \
|
|
-e K3S_CLUSTER_SECRET=${SECRET} \
|
|
-e K3S_DEBUG=true \
|
|
${K3S_IMAGE} server --no-deploy=traefik --https-listen-port=${K3S_PORT}
|
|
|
|
K3S_IP=$(docker inspect --format '{{ .NetworkSettings.IPAddress }}' ${K3S_SERVER})
|
|
echo "Started ${K3S_SERVER} @ ${K3S_IP}:${K3S_PORT}"
|
|
|
|
docker exec ${K3S_SERVER} check-config || true
|
|
timeout --foreground 1m bash -c wait-for-kubeconfig
|
|
verify-valid-versions ${K3S_SERVER}
|
|
|
|
# ---
|
|
|
|
docker run -d --name ${K3S_AGENT} --privileged \
|
|
-e K3S_CLUSTER_SECRET=${SECRET} \
|
|
-e K3S_URL=https://${K3S_IP}:${K3S_PORT} \
|
|
${K3S_IMAGE} agent
|
|
|
|
echo "Started ${K3S_AGENT}"
|
|
|
|
# ---
|
|
|
|
timeout --foreground 1m bash -c 'wait-for-nodes 2'
|
|
timeout --foreground 3m bash -c 'wait-for-services coredns local-path-provisioner metrics-server'
|
|
|
|
if [ "$ARCH" = 'arm' ]; then
|
|
echo "Aborting sonobuoy tests, images not available for $ARCH"
|
|
exit 0
|
|
fi
|
|
|
|
echo 'Starting sonobuoy tests'
|
|
sonobuoy-test "${@}"
|