4d6b606912f637029d0de5d0a7d003ba818ad211
[eliot.git] / scripts / src / kubeedge_setup.sh
1 #!/bin/bash -ex
2 ##############################################################################
3 # Copyright (c) 2019 Huawei Tech and others.
4 #
5 # All rights reserved. This program and the accompanying materials
6 # are made available under the terms of the Apache License, Version 2.0
7 # which accompanies this distribution, and is available at
8 # http://www.apache.org/licenses/LICENSE-2.0
9 ##############################################################################
10
11 #Constants
12 KUBEEDGE_SRC="$GOPATH/src/github.com/kubeedge/kubeedge"
13 KUBEEDGE_BIN="$GOPATH/src/github.com/kubeedge/kubeedge/keadm"
14
15 { set +x; } > /dev/null 2>&1
16
17 if [ -n "$1" ]; then
18
19 if [ "$1" != "--help" ]; then
20     echo ""
21     echo "Usage of the command is wrong.. Please type ./kubeedge_setup.sh --help for more details"
22     echo ""
23     exit 0
24 fi
25
26 fi
27
28 if [ "$1" == "--help" ]; then
29     echo ""
30     echo "This script will setup the kubeedge installation on Eliot master and Eliot edge"
31     echo "Before Executing this, add Eliot master and Eliot edge details in config_kubeedge file"
32     echo ""
33     exit 0; set -x;
34 fi
35
36 # take_keedge will download the source code of kubeedge in master and in edge
37
38 take_keedge(){
39
40     source ~/.profile
41     git clone https://github.com/kubeedge/kubeedge.git \
42     $KUBEEDGE_SRC
43     cd $KUBEEDGE_BIN
44     make
45 }
46
47 source config_kubeedge > /dev/null 2>&1
48
49 common_steps="echo $GOPATH && \
50 git clone https://github.com/kubeedge/kubeedge.git $KUBEEDGE_SRC && \
51 source ~/.profile && \
52 cd $GOPATH/src && \
53 sudo chmod -R 777 github.com && \
54 cd $KUBEEDGE_BIN && \
55 make"
56
57 edge_start="cd $KUBEEDGE_BIN && \
58 sudo chmod +x keadm && \
59 sudo ./keadm join --edgecontrollerip=$MASTERNODEIP --edgenodeid=$EDGENODEID \
60 --k8sserverip=$MASTERNODEIP:8080"
61
62 # Initialisation of ELIOT master with kubeedge
63
64 execute_keedge_controller(){
65     cd $KUBEEDGE_BIN
66     sudo chmod +x keadm
67     sudo ./keadm init
68 }
69
70 # Initialisation of Eliot edge with kubeedge
71
72 exec_edge(){
73
74     cd $PATH_OF_ELIOTFOLDER/scripts/src
75
76     sshpass -p ${EDGENODEPASSWORD} \
77     scp $PATH_OF_ELIOTFOLDER/scripts/src/config_kubeedge \
78     ${EDGENODEUSR}@${EDGENODEIP}:$HOME_EDGENODE
79
80     sshpass -p ${EDGENODEPASSWORD} ssh ${EDGENODEUSR}@${EDGENODEIP} \
81     source config_kubeedge
82
83     source config_kubeedge > /dev/null 2>&1
84     sshpass -p ${EDGENODEPASSWORD} \
85     ssh ${EDGENODEUSR}@${EDGENODEIP} ${common_steps}
86
87     echo "After cloning the code in ELIOT edge node"
88     sshpass -p ${EDGENODEPASSWORD} \
89     scp /etc/kubeedge/certs.tgz ${EDGENODEUSR}@${EDGENODEIP}:$HOME_EDGENODE
90
91     sshpass -p ${EDGENODEPASSWORD} \
92     ssh ${EDGENODEUSR}@${EDGENODEIP} \
93     sudo tar -xvzf $HOME/certs.tgz --directory /etc/kubeedge
94
95     sshpass -p ${EDGENODEPASSWORD} \
96     ssh ${EDGENODEUSR}@${EDGENODEIP} ${edge_start}
97 }
98
99 # start
100
101 source config_kubeedge > /dev/null 2>&1
102
103 take_keedge
104
105 execute_keedge_controller
106
107 exec_edge > /dev/null 2>&1
108
109 sleep 10
110 sudo kubectl get nodes
111
112 if [ "$(id -u)" = 0 ]; then
113     echo "export KUBECONFIG=/etc/kubernetes/admin.conf" | \
114 tee -a "${HOME}/.profile"
115     source "${HOME}/.profile"
116 else
117     mkdir -p "${HOME}/.kube"
118     sudo cp -i /etc/kubernetes/admin.conf "${HOME}/.kube/config"
119     sudo chown "$(id -u)":"$(id -g)" "${HOME}/.kube/config"
120 fi
121
122 chmod +x $PATH_OF_ELIOTFOLDER/scripts/verifyk8s.sh
123 source $PATH_OF_ELIOTFOLDER/scripts/verifyk8s.sh
124