Commit 7734015d authored by Brad Davidson's avatar Brad Davidson Committed by Brad Davidson

Add script to test server/agent version compatibility

We have had a couple issues with newer agents not working with old servers or vice versa. Add a CI test to test variations on uplevel/downlevel server/agent against latest, stable, and the previous branch. Signed-off-by: 's avatarBrad Davidson <brad.davidson@rancher.com>
parent 669d0c0e
...@@ -18,6 +18,9 @@ docker ps ...@@ -18,6 +18,9 @@ docker ps
. ./scripts/test-run-basics . ./scripts/test-run-basics
echo "Did test-run-basics $?" echo "Did test-run-basics $?"
. ./scripts/test-run-compat
echo "Did test-run-compat $?"
# --- # ---
[ "$ARCH" != 'amd64' ] && \ [ "$ARCH" != 'amd64' ] && \
......
...@@ -419,7 +419,7 @@ provision-server() { ...@@ -419,7 +419,7 @@ provision-server() {
-e K3S_TOKEN=$(cat $TEST_DIR/metadata/secret) \ -e K3S_TOKEN=$(cat $TEST_DIR/metadata/secret) \
-e K3S_DEBUG=true \ -e K3S_DEBUG=true \
${REGISTRY_CLUSTER_ARGS:-} \ ${REGISTRY_CLUSTER_ARGS:-} \
$K3S_IMAGE server $ARGS $SERVER_ARGS ${!SERVER_INSTANCE_ARGS} ${K3S_IMAGE_SERVER:-$K3S_IMAGE} server $ARGS $SERVER_ARGS ${!SERVER_INSTANCE_ARGS}
local ip=$(docker inspect --format '{{ .NetworkSettings.IPAddress }}' $name | tee $TEST_DIR/servers/$count/metadata/ip) local ip=$(docker inspect --format '{{ .NetworkSettings.IPAddress }}' $name | tee $TEST_DIR/servers/$count/metadata/ip)
local url=$(echo "https://$ip:6443" | tee $TEST_DIR/servers/$count/metadata/url) local url=$(echo "https://$ip:6443" | tee $TEST_DIR/servers/$count/metadata/url)
...@@ -446,7 +446,7 @@ provision-agent() { ...@@ -446,7 +446,7 @@ provision-agent() {
-e K3S_TOKEN=$(cat $TEST_DIR/metadata/secret) \ -e K3S_TOKEN=$(cat $TEST_DIR/metadata/secret) \
-e K3S_URL=$K3S_URL \ -e K3S_URL=$K3S_URL \
${REGISTRY_CLUSTER_ARGS:-} \ ${REGISTRY_CLUSTER_ARGS:-} \
$K3S_IMAGE agent $ARGS $AGENT_ARGS ${!AGENT_INSTANCE_ARGS} ${K3S_IMAGE_AGENT:-$K3S_IMAGE} agent $ARGS $AGENT_ARGS ${!AGENT_INSTANCE_ARGS}
echo "Started $name" echo "Started $name"
run-function agent-post-hook $count run-function agent-post-hook $count
......
#!/bin/bash
all_services=(
coredns
local-path-provisioner
metrics-server
traefik
)
export NUM_SERVERS=1
export NUM_AGENTS=1
export WAIT_SERVICES="${all_services[@]}"
export SERVER_ARGS="--node-taint=CriticalAddonsOnly=true:NoExecute"
start-test() {
echo "Cluster is up"
}
export -f start-test
REPO=${REPO:-rancher}
IMAGE_NAME=${IMAGE_NAME:-k3s}
PREVIOUS_CHANNEL=$(curl -s https://update.k3s.io/v1-release/channels/stable -o /dev/null -w '%{redirect_url}' | awk -F. '{print "v1." ($(NF - 1) - 1)}')
PREVIOUS_VERSION=$(curl -s https://update.k3s.io/v1-release/channels/${PREVIOUS_CHANNEL} -o /dev/null -w '%{redirect_url}' | awk -F/ '{print gensub(/\+/, "-", "g", $NF)}')
STABLE_VERSION=$(curl -s https://update.k3s.io/v1-release/channels/stable -o /dev/null -w '%{redirect_url}' | awk -F/ '{print gensub(/\+/, "-", "g", $NF)}')
LATEST_VERSION=$(curl -s https://update.k3s.io/v1-release/channels/latest -o /dev/null -w '%{redirect_url}' | awk -F/ '{print gensub(/\+/, "-", "g", $NF)}')
# --- create a basic cluster to test for compat with the previous minor version of the server and agent
K3S_IMAGE_SERVER=${REPO}/${IMAGE_NAME}:${PREVIOUS_VERSION} LABEL=PREVIOUS-SERVER run-test
K3S_IMAGE_AGENT=${REPO}/${IMAGE_NAME}:${PREVIOUS_VERSION} LABEL=PREVIOUS-AGENT run-test
# --- create a basic cluster to test for compat with the stable version of the server and agent
K3S_IMAGE_SERVER=${REPO}/${IMAGE_NAME}:${STABLE_VERSION} LABEL=STABLE-SERVER run-test
K3S_IMAGE_AGENT=${REPO}/${IMAGE_NAME}:${STABLE_VERSION} LABEL=STABLE-AGENT run-test
# --- create a basic cluster to test for compat with the latest version of the server and agent
K3S_IMAGE_SERVER=${REPO}/${IMAGE_NAME}:${LATEST_VERSION} LABEL=LATEST-SERVER run-test
K3S_IMAGE_AGENT=${REPO}/${IMAGE_NAME}:${LATEST_VERSION} LABEL=LATEST-AGENT run-test
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment