-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathupdate-deploy-image.sh
More file actions
executable file
·69 lines (62 loc) · 1.64 KB
/
update-deploy-image.sh
File metadata and controls
executable file
·69 lines (62 loc) · 1.64 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
#!/bin/bash
set_deployment_image() {
DEPLOYMENT=$1
CONTAINER_NAME=$DEPLOYMENT
NEW_IMAGE=csighub.tencentyun.com/danielxxli/${DEPLOYMENT}:${TAG}
kubectl set image deployment/${DEPLOYMENT}-${ENV_ID} ${CONTAINER_NAME}=${NEW_IMAGE}
}
set_statefulset_image(){
STATEFULSET=$1
CONTAINER_NAME=$2
NEW_IMAGE=csighub.tencentyun.com/danielxxli/${STATEFULSET}:${TAG}
kubectl set image statefulset/${STATEFULSET}-${ENV_ID} ${CONTAINER_NAME}=${NEW_IMAGE}
}
PROJECT=${PROJECT:-"tke"}
DEPLOYMENT_NAME=${DEPLOYMENT_NAME:-""}
IMAGE=${IMAGE:-""}
TARGET_REPO=danielxxli
VERSION=$(git describe --tags --always --match='v*')
# opts parse
while getopts "p:e:i:t:" opt; do
case $opt in
p)
PROJECT=$OPTARG
;;
e)
ENV_ID=$OPTARG
;;
i)
IMAGE=$OPTARG
DEPLOYMENT_NAME=$OPTARG
;;
t)
TAG=$OPTARG
;;
\?)
echo "Invalid option: -$OPTARG" >&2
;;
esac
done
# Update new image to test env
# kubecm s caas-test
if [ "$PROJECT" == "tke" ]; then
if [ -z "$DEPLOYMENT_NAME" ]; then
set_deployment_image tke-machineset-controller
set_deployment_image tke-native-cvm-controller
set_deployment_image tke-cxm-controller
set_deployment_image tke-node-apiserver
set_deployment_image tke-node-controller-manager
else
set_deployment_image $DEPLOYMENT_NAME
fi
elif [ "$PROJECT" == "gw" ]; then
set_deployment_image tke-node-cloud-gw
elif [ "$PROJECT" == "eks" ]; then
set_statefulset_image eks-server eks-server
set_statefulset_image eks-server async-server
elif [ "$PROJECT" == "dashboard" ]; then
set_deployment_image dashboard
else
echo "invalid project: $PROJECT"
exit 1
fi