-
Notifications
You must be signed in to change notification settings - Fork 11
/
Copy pathmain.sh
53 lines (43 loc) · 1.43 KB
/
main.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
#!/bin/sh
set -e
CFG_BASE64=${CFG_BASE64:="NULL"}
CFG_FILE=${CFG_FILE:="NULL"}
CHAOS_MESH_VERSION=${CHAOS_MESH_VERSION:="LATEST"}
CFG_FILE_PATH=""
git clone https://github.com/chaos-mesh/chaos-mesh.git
cd chaos-mesh
if [ "$CHAOS_MESH_VERSION" != "LATEST" ]; then
echo "use version $CHAOS_MESH_VERSION"
git checkout $CHAOS_MESH_VERSION
fi
if [ "$CFG_BASE64" != "NULL" ]; then
echo "$CFG_BASE64" | base64 --decode > chaos.yaml
CFG_FILE_PATH="./chaos.yaml"
echo "**** chaos configuration ****"
cat chaos.yaml
echo "*****************************"
elif [ "$CFG_FILE" != "NULL" ]; then
CFG_FILE_PATH="${CFG_FILE}"
else
echo "CFG_BASE64 and CFG_FILE is empty, can not get chaos configuration"
exit 1
fi
echo "CFG_FILE_PATH is $CFG_FILE_PATH"
echo "install chaos mesh"
helm version
kubectl version
kubectl create -f ./manifests/crd.yaml
kubectl create ns chaos-testing
helm install chaos-mesh helm/chaos-mesh --namespace=chaos-testing --set chaosDaemon.runtime=containerd --set chaosDaemon.socketPath=/run/containerd/containerd.sock
echo "wait pod status to running"
for ((k=0; k<120; k++)); do
kubectl get pods --namespace chaos-testing -l app.kubernetes.io/instance=chaos-mesh > pods.status
cat pods.status
run_num=`grep Running pods.status | wc -l`
pod_num=$((`cat pods.status | wc -l` - 1))
if [ $run_num == $pod_num ]; then
break
fi
sleep 1
done
kubectl apply -f $CFG_FILE_PATH