clear
echo -e "\e[32m=======================================================================\e[0m"
echo -e "\e[32m= Welcome to the Nutanix AI 2.5 Pre-Req Script for Microk8s on Ubuntu =\e[0m"
echo -e "\e[32m=                                                                     =\e[0m"
echo -e "\e[32m=          Courtesy of Husain Ebrahim and Simon Todd                  =\e[0m"
echo -e "\e[32m=======================================================================\e[0m"
echo -e
echo -e "======================================================================="
echo -e "= This install script will deploy out the following applications:     ="
echo -e "= microk8s version 1.32                                               ="
echo -e "= kubectl                                                             ="
echo -e "= HELM                                                                ="
echo -e "= Set usergroup permissions for kubectl and Microk8s                  ="
echo -e "======================================================================="
echo -e
# Check if IPv6 is disabled via sysctl
IPV6_DISABLED=$(sysctl -n net.ipv6.conf.all.disable_ipv6 2>/dev/null)
if [[ "$IPV6_DISABLED" == "0" ]]; then
    echo -e "\e[32mIPv6 Enabled: YES\e[0m"
else
    echo -e "\e[31mIPv6 Enabled: NO\e[0m";
    echo -e;
    echo -e "\e[33m=================================================================================================\e[0m"
    echo -e "\e[33mThe Underlying host has to have IPv6 enabled to continue. Please correct and re-launch the script\e[0m"
    echo -e "\e[33m=================================================================================================\e[0m"; exit
fi

# Install Micro k8s
echo -e "\e[32m================================\e[0m"
echo -e "\e[32mInstalling microk8s version 1.32\e[0m"
echo -e "\e[32m================================\e[0m"
sudo snap install microk8s --classic --channel=1.32/stable

# install kubectl
echo -e "\e[32m==================\e[0m"
echo -e "\e[32mInstalling kubectl\e[0m"
echo -e "\e[32m==================\e[0m"
sudo apt-get update
sudo apt-get install -y apt-transport-https ca-certificates curl gnupg
curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.34/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg
sudo chmod 644 /etc/apt/keyrings/kubernetes-apt-keyring.gpg
echo 'deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.34/deb/ /' | sudo tee /etc/apt/sources.list.d/kubernetes.list
sudo chmod 644 /etc/apt/sources.list.d/kubernetes.list
sudo apt-get update
sudo apt-get install -y kubectl

# install helm
echo -e "\e[32m===============\e[0m"
echo -e "\e[32mInstalling HELM\e[0m"
echo -e "\e[32m===============\e[0m"
sudo apt-get install curl gpg apt-transport-https --yes
curl -fsSL https://packages.buildkite.com/helm-linux/helm-debian/gpgkey | gpg --dearmor | sudo tee /usr/share/keyrings/helm.gpg > /dev/null
echo "deb [signed-by=/usr/share/keyrings/helm.gpg] https://packages.buildkite.com/helm-linux/helm-debian/any/ any main" | sudo tee /etc/apt/sources.list.d/helm-stable-debian.list
sudo apt-get update
sudo apt-get install helm
echo -e "\e[32m==================\e[0m"
echo -e "\e[32mUpdating HELM Repo\e[0m"
echo -e "\e[32m==================\e[0m"
helm repo add ntnx-charts https://nutanix.github.io/helm-releases && helm repo update ntnx-charts
helm repo update

#Fix KubeCTL Permissions
echo -e "\e[33m---------------------------------------------------\e[0m"
echo -e "\e[33mFixing kubectl user permissions and applying config\e[0m"
echo -e "\e[33m---------------------------------------------------\e[0m"
sudo usermod -a -G microk8s $USER
mkdir -p ~/.kube
sudo chown -R $USER ~/.kube
# reset session
echo -e "\e[33mEnter your password to reload the groups, you will then need to launch the naiinstall.sh script to continue\e[0m"
su - $USER
