-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathstart.sh
More file actions
executable file
·160 lines (149 loc) · 4.03 KB
/
start.sh
File metadata and controls
executable file
·160 lines (149 loc) · 4.03 KB
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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
#!/bin/bash
script=`basename $0`
log_name=`basename $script .sh`.log
kubernetes_run_mode=False
kubernetes_clr_mode=False
function imageClear
{
project_name=`echo $CI_PROJECT_NAME | awk '{print tolower($0)}'`
if [ `docker images | grep -ciE "\/${project_name}"` -ne 0 ]; then
image_ids="`docker images | grep -E "\/${project_name}" | awk '{print $3}'`"
docker rmi -f $image_ids
fi
docker images | grep -E "\/${project_name}"
}
function dockerStop
{
for opt in kill stop rm
do
docker $opt $CONTAINER_NAME 2> /dev/null
done
}
function dockerRun
{
docker run -tid \
--add-host ipt-gitlab.ies.inventec:10.99.104.242 \
--add-host mailrelay-b.ies.inventec:10.99.2.61 \
-p ${CONTAINER_PORT}:8000 \
-p $(( CONTAINER_PORT + 1)):22 \
--volume /mnt:/mnt:ro \
--volume ${MOUNT_PATH_1}:/usr/src/storage \
--volume ${MOUNT_PATH_2}:/usr/src/tmp \
--volume /etc/localtime:/etc/localtime:ro \
--privileged=true \
--restart=always \
--name $CONTAINER_NAME $CI_REGISTRY_IMAGE:$VERSION \
bash service.sh --stag
sleep 10
docker ps
if [ `docker ps | grep -c "${CONTAINER_NAME}$"` -eq 0 ]; then
echo "docker run container $CONTAINER_NAME FAIL."
exit 1
fi
echo "docker run container $CONTAINER_NAME PASS."
}
function kuberneteStop
{
kubectl delete -f deployments/
sleep 30
}
function kuberneteRun
{
# configure deployment settings
sed -i "s,<MOUNT_PORT>,${MOUNT_PORT},g" deployments/*-deploy.yml
sed -i "s,<MOUNT_PATH_1>,${MOUNT_PATH_1},g" deployments/*-deploy.yml
sed -i "s,<MOUNT_PATH_2>,${MOUNT_PATH_2},g" deployments/*-deploy.yml
sed -i "s,<CONTAINER_NAME>,${CONTAINER_NAME},g" deployments/*-deploy.yml
sed -i "s,<CI_REGISTRY_IMAGE>,${CI_REGISTRY_IMAGE}:${VERSION},g" deployments/*-deploy.yml
more << EOF
Show YAML Configuration:
===========================================================================
$(cat deployments/*-deploy.yml)
===========================================================================
EOF
kubectl apply -f deployments/ --record
sleep 60
more << EOF
===========================================================================
Show Deployment Pods Status:
===========================================================================
$(kubectl get pods -n kube-ops | grep -v "\-cron" | grep $CONTAINER_NAME)
===========================================================================
EOF
}
function main
{
if [ "$kubernetes_clr_mode" == "True" ]; then
kuberneteStop
imageClear
elif [ "$kubernetes_run_mode" == "True" ]; then
kuberneteStop
imageClear
kuberneteRun
else
dockerStop
imageClear
dockerRun
fi
}
# parse arguments
if [ "$#" -eq 0 ]; then
echo "Invalid arguments, try '-h/--help' for more information."
exit 1
fi
while [ "$1" != "" ]
do
case $1 in
-v)
shift
VERSION=$1
;;
-p)
shift
CI_PROJECT_NAME=$1
;;
-n)
shift
CONTAINER_NAME=$1
;;
-i)
shift
CI_REGISTRY_IMAGE=$1
;;
-r)
shift
CI_COMMIT_REF_NAME=$1
;;
-H)
shift
CONTAINER_HOST=$1
;;
-P)
shift
CONTAINER_PORT=$1
;;
-MP)
shift
MOUNT_PORT=$1
;;
-M1)
shift
MOUNT_PATH_1=$1
;;
-M2)
shift
MOUNT_PATH_2=$1
;;
--k8s-run)
kubernetes_run_mode=True
;;
--k8s-clr)
kubernetes_clr_mode=True
;;
* ) echo "Invalid arguments, try '-h/--help' for more information."
exit 1
;;
esac
shift
done
main | tee $log_name