-
Notifications
You must be signed in to change notification settings - Fork 8
/
Copy pathsetup.sh
executable file
·69 lines (56 loc) · 1.24 KB
/
setup.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
67
68
69
#!/bin/bash
CONTEXT="minikube"
# update the dev path to match yours
DEV_PATH="/home/baron_l/projects/pro/portainer/portainer/dist"
#KUBERNETES_VERSION="v1.18.3"
KUBERNETES_VERSION="latest"
DRIVER="virtualbox"
ip() {
echo "Cluster running on" `minikube ip`
}
create() {
minikube start --driver=$DRIVER --mount --mount-string $DEV_PATH:/portainer/app --kubernetes-version=$KUBERNETES_VERSION
ip
}
deploy() {
kubectl --context $CONTEXT replace --force -f $1
}
remove() {
kubectl --context $CONTEXT delete -f $1
}
delete() {
minikube delete
}
redeploy() {
deploy $1
}
recreate() {
delete
create
}
usage() {
echo """
Usage: ./setup.sh ACTION [CONFIG (--force)]
with: ACTION in [create|recreate|deploy|redeploy|delete|remove|ip]
- create, recreate, delete, ip require no parameters
- deploy, redeploy, remove require CONFIG parameter
CONFIG the name of a file next to ./setup.sh (without extension)
Examples:
- create cluster and deploy portainer.yaml inside it: ./setup.sh create && ./setup.sh deploy portainer.yaml
"""
}
case $1 in
deploy | redeploy | remove)
if [[ $# == 2 ]]; then
$1 $2
else
usage
fi
;;
create | recreate | delete | ip)
$1
;;
help | usage | *)
usage
;;
esac