-
Notifications
You must be signed in to change notification settings - Fork 63
/
Copy pathtest-smoke.sh
executable file
·66 lines (60 loc) · 1.41 KB
/
test-smoke.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#!/bin/bash
set -eu -o pipefail
INFO() {
echo -e "\e[104m\e[97m[INFO]\e[49m\e[39m $@"
}
INFO "Waiting for nodes to be ready"
for node in $(kubectl get node -o name); do
kubectl wait --timeout=5m --for=condition=ready "${node}"
done
function smoketest_dns() {
INFO "Creating StatefulSet \"dnstest\" and headless Service \"dnstest\""
kubectl apply -f - <<EOF
apiVersion: v1
kind: Service
metadata:
name: dnstest
labels:
run: dnstest
spec:
type: ClusterIP
clusterIP: None
ports:
- name: "http"
protocol: "TCP"
port: 80
targetPort: 80
selector:
run: dnstest
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: dnstest
spec:
serviceName: dnstest
selector:
matchLabels:
run: dnstest
replicas: 3
template:
metadata:
labels:
run: dnstest
spec:
containers:
- name: dnstest
image: nginx:alpine
ports:
- containerPort: 80
EOF
INFO "Waiting for 3 replicas to be ready"
kubectl rollout status --timeout=5m statefulset
INFO "Connecting to dnstest-{0,1,2}.dnstest.default.svc.cluster.local"
kubectl run -i --rm --image=alpine --restart=Never dnstest-shell -- sh -exc 'for f in $(seq 0 2); do wget -O- http://dnstest-${f}.dnstest.default.svc.cluster.local; done'
INFO "Deleting Service \"dnstest\""
kubectl delete service dnstest
INFO "Deleting StatefulSet \"dnstest\""
kubectl delete statefulset dnstest
}
smoketest_dns