File tree Expand file tree Collapse file tree 3 files changed +84
-1
lines changed
Expand file tree Collapse file tree 3 files changed +84
-1
lines changed Original file line number Diff line number Diff line change @@ -21,8 +21,12 @@ build: test
2121
2222.PHONY : test
2323test :
24- go test ./...
24+ ginkgo -r -skipPackage integration
2525
2626.PHONY : fmt
2727fmt :
2828 go fmt ./...
29+
30+ .PHONY : integration-test
31+ integration-test : build
32+ integration/test.sh
Original file line number Diff line number Diff line change @@ -3,5 +3,23 @@ apiVersion: kind.x-k8s.io/v1alpha4
33nodes :
44 - role : control-plane
55 - role : worker
6+ kubeadmConfigPatches :
7+ - |
8+ kind: JoinConfiguration
9+ nodeRegistration:
10+ kubeletExtraArgs:
11+ provider-id: "file://node1"
612 - role : worker
13+ kubeadmConfigPatches :
14+ - |
15+ kind: JoinConfiguration
16+ nodeRegistration:
17+ kubeletExtraArgs:
18+ provider-id: "file://node2"
719 - role : worker
20+ kubeadmConfigPatches :
21+ - |
22+ kind: JoinConfiguration
23+ nodeRegistration:
24+ kubeletExtraArgs:
25+ provider-id: "file://node3"
Original file line number Diff line number Diff line change 1+ #! /usr/bin/env bash
2+
3+ set -o errexit -o nounset -o pipefail
4+
5+ tmpd=" $( mktemp -d -p /tmp skuttle.XXXXX) "
6+ echo " config dir: $tmpd "
7+
8+ export KUBECONFIG=" $tmpd /config"
9+ export NODE_LIST=" $tmpd /nodes"
10+
11+ # set up provider nodes
12+ cat << EOF >"$NODE_LIST "
13+ node1
14+ node3
15+ EOF
16+
17+ # create kind cluster
18+ kind delete cluster --name skuttle
19+ kind create cluster \
20+ --config integration/kind.yaml \
21+ --name skuttle \
22+ --wait 2m
23+
24+ # start skuttle
25+ ./skuttle \
26+ --log-level debug \
27+ --node-selector " !node-role.kubernetes.io/control-plane" \
28+ --not-ready-duration 20s \
29+ --providers file \
30+ > " $tmpd /log" 2>&1 &
31+
32+ skuttle_pid=" $! "
33+
34+ # follow logs
35+ tail -f " $tmpd /log" &
36+
37+ # make a worker not ready
38+ docker exec skuttle-worker2 systemctl stop kubelet
39+
40+ # wait for worker to be removed by skuttle
41+ exitcode=0
42+ waits=0
43+ while kubectl get node skuttle-worker2 > /dev/null 2> /dev/null; do
44+ sleep 1
45+ waits=" $(( waits+ 1 )) "
46+
47+ if test " $waits " -eq 30; then
48+ echo " FAIL: timed out waiting for node deletion"
49+ exitcode=1
50+ fi
51+ done
52+
53+ echo " PASS: node deleted by skuttle"
54+
55+ # cleanup
56+ kill " $skuttle_pid "
57+ kind delete cluster --name skuttle
58+ rm -r " $tmpd "
59+
60+ # exit
61+ exit $exitcode
You can’t perform that action at this time.
0 commit comments