From b9b83e766994a4802b9011ffcba092aa5681c527 Mon Sep 17 00:00:00 2001 From: "srinivasan.s.n@huawei.com" Date: Fri, 31 May 2019 06:17:35 +0000 Subject: [PATCH] Kubeedge cleanup and code optimisation Signed-off-by: srinivasan.s.n@huawei.com Change-Id: I0f833f9e09b41fb9bb5415c69a228432fa042e70 --- scripts/ci_management/cleanup_control.sh | 36 +++++++++++ scripts/ci_management/cleanup_edge.sh | 53 ++++++++++++++++ .../{cleanup.sh => cleanup_edge_final.sh} | 29 +++++---- scripts/ci_management/cleanup_master.sh | 70 ++++++++++++++++++++++ scripts/src/config_kubeedge | 32 ++++++++-- scripts/src/kubeedge_setup.sh | 64 +++++++------------- 6 files changed, 219 insertions(+), 65 deletions(-) create mode 100755 scripts/ci_management/cleanup_control.sh create mode 100644 scripts/ci_management/cleanup_edge.sh rename scripts/ci_management/{cleanup.sh => cleanup_edge_final.sh} (52%) create mode 100755 scripts/ci_management/cleanup_master.sh diff --git a/scripts/ci_management/cleanup_control.sh b/scripts/ci_management/cleanup_control.sh new file mode 100755 index 0000000..574552b --- /dev/null +++ b/scripts/ci_management/cleanup_control.sh @@ -0,0 +1,36 @@ +#!/bin/bash -ex +############################################################################## +# Copyright (c) 2019 Huawei Tech and others. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +# constants + +TESTYAML="testk8s-nginx.yaml" + +# start + +source ../src/config_kubeedge +cd +kubectl delete -f $TESTYAML + +sshpass -p ${EDGENODEPASSWORD} \ +scp ${PATH_OF_ELIOTFOLDER}/scripts/ci_management/cleanup_edge.sh \ +${EDGENODEUSR}@${EDGENODEIP}:$HOME_EDGENODE + +sshpass -p ${EDGENODEPASSWORD} ssh ${EDGENODEUSR}@${EDGENODEIP} \ +source cleanup_edge.sh + +cd $PATH_OF_ELIOTFOLDER/scripts/ci_management +source cleanup_master.sh + +sshpass -p ${EDGENODEPASSWORD} \ +scp ${PATH_OF_ELIOTFOLDER}/scripts/ci_management/cleanup_edge_final.sh \ +${EDGENODEUSR}@${EDGENODEIP}:$HOME_EDGENODE + +sshpass -p ${EDGENODEPASSWORD} ssh ${EDGENODEUSR}@${EDGENODEIP} \ +source cleanup_edge_final.sh diff --git a/scripts/ci_management/cleanup_edge.sh b/scripts/ci_management/cleanup_edge.sh new file mode 100644 index 0000000..646f5be --- /dev/null +++ b/scripts/ci_management/cleanup_edge.sh @@ -0,0 +1,53 @@ +#!/bin/bash -ex +############################################################################## +# Copyright (c) 2019 Huawei Tech and others. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +# constants + +NGINX=$(sudo docker ps | grep nginx | wc -l) +KUBEPROXY=$(sudo docker ps | grep k8s.gcr.io | wc -l) +CONSTZERO="0" + +# start + +source config_kubeedge +source ~/.profile + +cd + +if [ -d "/root/go/src/github.com/kubeedge/kubeedge/keadm" ]; then + cd $GOPATH/src/github.com/kubeedge/kubeedge/keadm + ./kubeedge reset --k8sserverip $MASTERNODEIP:8080 +fi + +cd /etc/kubeedge + +if [ -f "certs.tgz" ]; then + sudo rm -rf certs.tgz +fi + +if [ -d "/etc/kubeedge/ca" ]; then + sudo rm -rf /etc/kubeedge/ca +fi + +if [ -d "/etc/kubeedge/certs" ]; then + sudo rm -rf /etc/kubeedge/certs +fi + +if [ -d "/root/go/src" ]; then + sudo rm -rf /root/go/src +fi + +# stop binaries edge_core +cd /usr/local/bin + +if [ -f "edge_core" ]; then + sudo rm edge_core +fi + diff --git a/scripts/ci_management/cleanup.sh b/scripts/ci_management/cleanup_edge_final.sh similarity index 52% rename from scripts/ci_management/cleanup.sh rename to scripts/ci_management/cleanup_edge_final.sh index 3aa86e3..a42e875 100644 --- a/scripts/ci_management/cleanup.sh +++ b/scripts/ci_management/cleanup_edge_final.sh @@ -8,22 +8,21 @@ # http://www.apache.org/licenses/LICENSE-2.0 ############################################################################## -# start - -kubeedge reset +# constants -reset="kubeedge reset --k8sserverip ${masternodeip}:8080" +NGINX=$(sudo docker ps | grep nginx | wc -l) +KUBEPROXY=$(sudo docker ps | grep k8s.gcr.io | wc -l) +CONSTZERO="0" -while read line -do - nodeinfo="${line}" - nodeusr=$(echo ${nodeinfo} | cut -d"|" -f1) - nodeip=$(echo ${nodeinfo} | cut -d"|" -f2) - nodepaswd=$(echo ${nodeinfo} | cut -d"|" -f3) - masternodeip=$(echo ${nodeinfo} | cut -d"|" -f3) - - sshpass -p ${nodepaswd} \ - kubeedge reset --k8sserverip ${masternodeip}:8080 +# start -done < nodelist +echo "nginx container stop" +if [ $NGINX != $CONSTZERO ]; then + sudo docker kill $(docker ps -q --filter ancestor=nginx:1.15.12 ) +fi +echo "kubeproxy container stop" +if [ $KUBEPROXY != $CONSTZERO ]; then + sudo docker kill $(docker ps -q --filter ancestor=k8s.gcr.io/kube-proxy:v1.14.2 ) +fi +echo "Finished" diff --git a/scripts/ci_management/cleanup_master.sh b/scripts/ci_management/cleanup_master.sh new file mode 100755 index 0000000..636535d --- /dev/null +++ b/scripts/ci_management/cleanup_master.sh @@ -0,0 +1,70 @@ +#!/bin/bash -ex +############################################################################## +# Copyright (c) 2019 Huawei Tech and others. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +# constants + +TESTYAML="testk8s-nginx.yaml" +SUPERUSER="root" +value=$(whoami) + +# start + +# kubeedge reset internally undo the things done by ./kubeedge init + +if [ -d "/root/go/src/github.com/kubeedge/kubeedge/keadm" ]; then + cd /root/go/src/github.com/kubeedge/kubeedge/keadm + ./kubeedge reset +fi + +# delete the previously existing certificates + +if [ -d "/etc/kubeedge/ca" ]; then + sudo rm -rf /etc/kubeedge/ca +fi + +if [ -d "/etc/kubeedge/certs" ]; then + cd /etc/kubeedge + sudo rm -rf certs +fi + +cd /etc/kubeedge +if [ -f "certs.tgz" ]; then + sudo rm certs.tgz +fi + +# delete the kubeedge code + +if [ -d "/root/go/src" ]; then + cd /root/go + sudo rm -rf src +fi + +# stop binaries edge_core edgecontroller + +cd /usr/local/bin + +if [ -f "edge_core" ]; then + sudo rm edge_core +fi + +if [ -f "edgecontroller" ]; then + sudo rm edgecontroller +fi + +if [ $value != $SUPERUSER ]; then + sudo su +fi + +cd + +if [ -f $TESTYAML ]; then + sudo rm $TESTYAML +fi + diff --git a/scripts/src/config_kubeedge b/scripts/src/config_kubeedge index 2d11960..3fa3fdc 100755 --- a/scripts/src/config_kubeedge +++ b/scripts/src/config_kubeedge @@ -1,6 +1,26 @@ -edgenodeusr="root" -edgenodeip="10.10.0.54" -edgenodepassword="Huawei@akraino" -masternodeusr="root" -masternodeip="10.10.0.45" -masternodepassword="Huawei@akraino" +# edge node user name +EDGENODEUSR="" + +# edge node ip +EDGENODEIP="" + +# edge node password +EDGENODEPASSWORD="" + +# master node user name +MASTERNODEUSR="" + +# master node ip +MASTERNODEIP="" + +# master node password +MASTERNODEPASSWORD="" + +# eliot source code path including eliot folder +PATH_OF_ELIOTFOLDER="" + +# home path of edge node +HOME_EDGENODE="" + +# edgenode id for kubeedge configuration +EDGENODEID="" diff --git a/scripts/src/kubeedge_setup.sh b/scripts/src/kubeedge_setup.sh index 8e7ca82..e75c1be 100755 --- a/scripts/src/kubeedge_setup.sh +++ b/scripts/src/kubeedge_setup.sh @@ -17,6 +17,7 @@ take_keedge(){ } source config_kubeedge + common_steps="echo $GOPATH && \ echo $HOME && \ echo $(whoami) && \ @@ -27,12 +28,9 @@ sudo chmod -R 777 github.com && \ cd $GOPATH/src/github.com/kubeedge/kubeedge/keadm && \ make" -certif_copy="cd /etc/kubeedge &&\ -scp certs.tar.gz" - edge_start="cd $GOPATH/src/github.com/kubeedge/kubeedge/keadm && \ sudo chmod +x kubeedge && \ -sudo ./kubeedge join --edgecontrollerip=$masternodeip --edgenodeid=edgenode001 --k8sserverip=$masternodeip:8080" +sudo ./kubeedge join --edgecontrollerip=$MASTERNODEIP --edgenodeid=$EDGENODEID --k8sserverip=$MASTERNODEIP:8080" execute_keedge_controller(){ cd $GOPATH/src/github.com/kubeedge/kubeedge/keadm @@ -41,42 +39,30 @@ execute_keedge_controller(){ } exec_edge(){ -echo $(whoami) -echo ========= -echo $(pwd) -echo ======== -echo $GOPATH -echo ======== -echo $HOME - -user_check="jenkins" -home_path="/home/jenkins" - #if [ $HOME == $home_path ];then - cd /home/jenkins/work/workspace/eliot-deploy-kubeedge-virtual-daily-master/scripts/src - #else - # cd $HOME/eliot/scripts/src - #fi - - #if [ $HOME == $home_path ];then - sshpass -p ${edgenodepassword} scp /home/jenkins/work/workspace/eliot-deploy-kubeedge-virtual-daily-master/scripts/src/config_kubeedge ${edgenodeusr}@${edgenodeip}:/root - #else - # sshpass -p ${edgenodepassword} scp $HOME/eliot/scripts/src/config_kubeedge ${edgenodeusr}@${edgenodeip}:/root - #fi - - sshpass -p ${edgenodepassword} ssh ${edgenodeusr}@${edgenodeip} \ + + cd $PATH_OF_ELIOTFOLDER/scripts/src + + sshpass -p ${EDGENODEPASSWORD} \ + scp $PATH_OF_ELIOTFOLDER/scripts/src/config_kubeedge \ + ${EDGENODEUSR}@${EDGENODEIP}:$HOME_EDGENODE + + sshpass -p ${EDGENODEPASSWORD} ssh ${EDGENODEUSR}@${EDGENODEIP} \ source config_kubeedge source config_kubeedge - sshpass -p ${edgenodepassword} ssh ${edgenodeusr}@${edgenodeip} ${common_steps} < /dev/null + sshpass -p ${EDGENODEPASSWORD} \ + ssh ${EDGENODEUSR}@${EDGENODEIP} ${common_steps} < /dev/null echo "After cloning the code in ELIOT edge node" - sshpass -p ${edgenodepassword} scp /etc/kubeedge/certs.tgz ${edgenodeusr}@${edgenodeip}:/etc/kubeedge + sshpass -p ${EDGENODEPASSWORD} \ + scp /etc/kubeedge/certs.tgz ${EDGENODEUSR}@${EDGENODEIP}:/etc/kubeedge - sshpass -p ${edgenodepassword} \ - ssh ${edgenodeusr}@${edgenodeip} \ + sshpass -p ${EDGENODEPASSWORD} \ + ssh ${EDGENODEUSR}@${EDGENODEIP} \ tar -xvzf /etc/kubeedge/certs.tgz --directory /etc/kubeedge - sshpass -p ${edgenodepassword} ssh ${edgenodeusr}@${edgenodeip} ${edge_start} < /dev/null + sshpass -p ${EDGENODEPASSWORD} \ + ssh ${EDGENODEUSR}@${EDGENODEIP} ${edge_start} < /dev/null } # start @@ -92,16 +78,6 @@ exec_edge sleep 10 sudo kubectl get nodes -#user_chec="jenkins" - -#if [ $(whoami) == $user_chec ];then - -chmod +x /home/jenkins/work/workspace/eliot-deploy-kubeedge-virtual-daily-master/scripts/verifyk8s.sh -source /home/jenkins/work/workspace/eliot-deploy-kubeedge-virtual-daily-master/scripts/verifyk8s.sh - -#else - -# chmod +x $HOME/eliot/scripts/verifyk8s.sh -# source $HOME/eliot/scripts/verifyk8s.sh +chmod +x $PATH_OF_ELIOTFOLDER/scripts/verifyk8s.sh +source $PATH_OF_ELIOTFOLDER/scripts/verifyk8s.sh -#fi -- 2.16.6