Skip to content

Instantly share code, notes, and snippets.

@skecskes
Created January 17, 2023 17:01
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save skecskes/b5e708b62b508adc3923cd589dc4a4f6 to your computer and use it in GitHub Desktop.
Save skecskes/b5e708b62b508adc3923cd589dc4a4f6 to your computer and use it in GitHub Desktop.
Adds new gcloud auth plugin after removing previous installation of kubectl and gcloud-cloud-cli
#!/bin/bash
cd ~
echo "Delete google-cloud-cli google-cloud-cli-gke-gcloud-auth-plugin google-cloud-sdk-gke-gcloud-auth-plugin"
sudo apt-get remove google-cloud-cli google-cloud-cli-gke-gcloud-auth-plugin google-cloud-sdk-gke-gcloud-auth-plugin -y && \
sudo apt-get purge google-cloud-cli google-cloud-cli-gke-gcloud-auth-plugin google-cloud-sdk-gke-gcloud-auth-plugin && \
sudo apt-get autoremove
echo "Clean kubectl"
if [ -d ~/.kube ]; then
rm -rf ~/.kube
fi
kubectl_path="$(whereis kubectl | cut -d':' -f2 | cut -d' ' -f2)"
if [ -n $(echo $kubectl_path) ]; then
sudo rm -f $kubectl_path
fi
echo "Add gcloud repos if they don't exist"
if [ ! -f /etc/apt/sources.list.d/google-cloud-sdk.list ]; then
echo "deb [signed-by=/usr/share/keyrings/cloud.google.gpg] https://packages.cloud.google.com/apt cloud-sdk main" | sudo tee -a /etc/apt/sources.list.d/google-cloud-sdk.list
curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key --keyring /usr/share/keyrings/cloud.google.gpg add -
fi
echo "Install them, if package fail, solve it and reinstall"
sudo apt-get update && sudo apt-get install google-cloud-cli -y
if [ $? -ne 0 ]; then
sudo dpkg -i --force-overwrite /var/cache/apt/archives/google-cloud-cli_412.0.0-0_all.deb
sudo apt -f install
sudo apt-get update && sudo apt-get install google-cloud-cli -y
fi
sudo apt-get install google-cloud-sdk-gke-gcloud-auth-plugin -y
echo "Reinstall kubectl"
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
if [ -z $kubectl_path ]; then
kubectl_path=/usr/bin/kubectl
fi
sudo mv kubectl $kubectl_path
sudo chmod +x $kubectl_path
sudo chown $(whoami) $kubectl_path
echo "Add USE_GKE_GCLOUD_AUTH_PLUGIN variable in profile file if not exists"
if [ -z "$(cat ~/.profile | grep USE_GKE_GCLOUD_AUTH_PLUGIN)" ]; then
echo 'export USE_GKE_GCLOUD_AUTH_PLUGIN=True' >> ~/.profile
source ~/.profile
fi
echo "Login gcloud"
myuser=$(whoami)
sudo chown -R :${myuser} ~/.config/gcloud/configurations
gcloud auth login
if [ $? -eq 0 ]; then
echo "It works!"
exit 0
else
echo "It failed... let's troubleshoot it!"
exit 1
fi
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment