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