Little helper to run CNCF's k3s in Docker
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.
 
 
 
 
k3d/tests/local_test_registration_usi...

95 lines
2.5 KiB

#!/bin/bash
CURR_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
[ -d "$CURR_DIR" ] || { echo "FATAL: no current dir (maybe running in zsh?)"; exit 1; }
# shellcheck source=./common.sh
source "$CURR_DIR/common.sh"
export CURRENT_STAGE="local | registration_using_server_lb"
clean_up() {
info "Cleaning up"
$BIN cluster delete $CLUSTER_NAME > /dev/null || true
}
check_k3s_url() {
local node=$1
local expected_url=$2
local curr_url=$(docker inspect "$node" | grep K3S_URL | awk -F"=" '{print $2}' | sed 's/",//')
if [ "$curr_url" != "$expected_url" ]; then
failed "Default K3S URL mismatch expected: '${expected_url}' got: ${curr_url}"
else
passed "$curr_url matches the expected: '${expected_url}'"
fi
}
run() {
local cmd=$1
if [ -z "$DEBUG" ]; then
eval "${cmd} > /dev/null"
else
eval "${cmd}"
fi
}
run_with_timeout() {
local cmd=$1
run "timeout -k 120 120 $cmd"
local ret=$?
if [ "$ret" != "0" ]; then
failed "Command timedout: \"$cmd\""
fi
}
# Constants for tests
BIN=k3d
export EXE=$BIN
CLUSTER_NAME=test-lb-registration
K3S_URL_DEFAULT="https://k3d-${CLUSTER_NAME}-server-0:6443"
K3S_URL_LB="https://k3d-${CLUSTER_NAME}-serverlb:6443"
clean_up
info "Starting a multi server cluster"
run "$BIN cluster create $CLUSTER_NAME -s 3"
check_multi_node $CLUSTER_NAME 3
info "Adding an agent and checking its K3S_URL"
run_with_timeout "$BIN node create -c $CLUSTER_NAME testagent"
check_k3s_url k3d-testagent-0 $K3S_URL_DEFAULT
check_multi_node $CLUSTER_NAME 4
info "Deleting server-0"
run_with_timeout "$BIN node delete k3d-${CLUSTER_NAME}-server-0"
run "kubectl delete node k3d-${CLUSTER_NAME}-server-0"
check_multi_node $CLUSTER_NAME 3
info "Adding a new agent to check the new K3S_URL"
run_with_timeout "$BIN node create -c $CLUSTER_NAME testagent1"
check_k3s_url k3d-testagent1-0 $K3S_URL_LB
run_with_timeout "$BIN node delete k3d-testagent1-0"
check_multi_node $CLUSTER_NAME 4
info "Adding a new server to check K3S_URL"
run_with_timeout "$BIN node create -c $CLUSTER_NAME testserver --role server"
check_k3s_url k3d-testserver-0 $K3S_URL_LB
run_with_timeout "$BIN node delete k3d-testserver-0"
check_multi_node $CLUSTER_NAME 5
clean_up
info "Adding a cluster with no lb to check K3S_URL"
run "$BIN cluster create $CLUSTER_NAME -s 3 --no-lb"
run_with_timeout "$BIN node create -c $CLUSTER_NAME testagent1"
check_k3s_url k3d-testagent1-0 $K3S_URL_DEFAULT
run_with_timeout "$BIN node delete k3d-testagent1-0"
clean_up