#!/bin/bash
####################################### made by yqqyjy ##########################
####################################### myinstall selfhostname master/node (masterhostname token) ###################
IFS_OLD=${IFS}
IFS=$'\n'
init()
{
  systemctl disable firewalld
  systemctl stop firewalld
  sed -i 's/SELINUX=enforcing/SELINUX=disabled' /etc/selinux/config
  setenforce 0
  ls_path=$(cd $(dirname $0);pwd)
  yum remove podman -y
  
}

installk3smaster()
{
  #read -p "Please input the k3smaster hostname:" ls_k3smasterhostname
  hostnamectl set-hostname $1
  sed -i '/net.ipv4.ip_forward/d' /etc/sysctl.conf
  echo "net.ipv4.ip_forward=1">>/etc/sysctl.conf
  sysctl -p
  swapoff -a
  docker load < ${ls_path}/install/k3s-airgap-images-amd64.tar.gz
  chmod +x ${ls_path}/install/k3s  && cp ${ls_path}/install/k3s /usr/local/bin/k3s
  mkdir -p /var/lib/rancher/k3s/agent/images/ && cp ${ls_path}/install/k3s-airgap-images-amd64.tar.gz /var/lib/rancher/k3s/agent/images/
  cd ${ls_path}/install
  #INSTALL_K3S_SKIP_DOWNLOAD=true INSTALL_K3S_MIRROR=cn INSTALL_K3S_SKIP_SELINUX_RPM=true INSTALL_K3S_EXEC='--docker' ./k3s-install.sh
  INSTALL_K3S_SKIP_DOWNLOAD=true INSTALL_K3S_MIRROR=cn INSTALL_K3S_SKIP_SELINUX_RPM=true INSTALL_K3S_EXEC='--docker' ./k3s-install1.sh
  systemctl enable k3s
  systemctl start k3s
  echo "install k3s finished.token:$(cat /var/lib/rancher/k3s/server/node-token)"
}

uninstallk3smaster()
{
  if [[ -f /usr/local/bin/k3s-uninstall.sh ]];then
     sysetmctl stop k3s
     /bin/bash /usr/local/bin/k3s-uninstall.sh
     rm -rf /etc/rancher/k3s
     rm -rf /var/lib/rancher/k3s
     rm -rf /usr/local/bin/k3s
     rm -rf /root/.kube
  fi
}

installk3snode()
{
  echo "nodeinstall:set the hostname"
  hostnamectl set-hostname $1
  echo "nodeinstall:set the transform"
  echo "net.ipv4.ip_forward=1">>/etc/sysctl.conf
  sysctl -p
  swapoff -a
  echo "nodeinstall:unpack k3s"
  docker load < ${ls_path}/k3s-airgap-images-arm64.tar.gz
  chmod +x ${ls_path}/k3s && cp ${ls_path}/k3s /usr/local/bin
  mkdir -p /var/lib/rancher/k3s/agent/images/ && cp ${ls_path}/k3s-airgap-images-arm64.tar.gz /var/lib/rancher/k3s/agent/images/
#  mkdir -p /root/.kube && cp ${ls_path}/k3s.yaml /root/.kube
#  read -p "Please input the k3smasterip:" ls_k3smasterip
#  read -p "Please input the TOKEN:" ls_k3smastertoken
  cd ${ls_path}
  echo "nodeinstall:install the k3s"
  INSTALL_K3S_SKIP_DOWNLOAD=true INSTALL_K3S_MIRROR=cn INSTALL_K3S_SKIP_SELINUX_RPM=true  K3S_URL=https://$2:6443 K3S_TOKEN=$3  INSTALL_K3S_EXEC='--docker' ./k3s-install1.sh
#  apt install nfs-common
}

uninstallk3snode()
{
  if [[ -f /usr/local/bin/k3s-uninstall.sh ]];then
     
     echo "uninstall k3s"
     kubectl cordon $(hostname)
     kubectl drain $(hostname) --delete-local-data --force --ignore-daemonsets
     kubectl delete $(hostname)
     sysetmctl stop k3s-agent
     /bin/bash /usr/local/bin/k3s-uninstall.sh
     rm -rf /etc/rancher/k3s
     rm -rf /var/lib/rancher/k3s
     rm -rf /usr/local/bin/k3s
     rm -rf /root/.kube
  fi

}

init
if [[ $2 == "master" ]];then
   uninstallk3smaster
   installk3smaster $1
elif [[ $2 == "node" ]];then
   uninstallk3snode
   installk3snode $1 $3 $4
fi 
IFS=${IFS_OLD}
