#!/usr/bin/env bash
## pre-configure
opsys=$(uname -s | tr '[:upper:]' '[:lower:]')
## Install
pip install -q --user --upgrade pip awscli aws-shell cfn-flip yamllint \
&& echo "installed user-level pip things: aws-shell awscli cfn-flip yamllint"
mkdir ~/.local/bin #doesn't get made by `pip --user` if your python comes from brew?
pushd ~/.local/bin #now this should work
# Getting Started with Amazon EKS - Install and Configure kubectl for Amazon EKS - https://docs.aws.amazon.com/eks/latest/userguide/getting-started.html#get-started-kubectl
curl -so aws-iam-authenticator "https://amazon-eks.s3-us-west-2.amazonaws.com/1.11.5/2018-12-06/bin/${opsys}/amd64/aws-iam-authenticator" \
&& chmod 700 aws-iam-authenticator \
&& echo "installed aws-iam-authenticator"
curl -so kubectl "https://amazon-eks.s3-us-west-2.amazonaws.com/1.11.5/2018-12-06/bin/${opsys}/amd64/kubectl" \
&& chmod 700 kubectl \
&& echo "installed kubectl"
#kubectx/kubens #os independent bash only
curl -so kubectx https://raw.githubusercontent.com/ahmetb/kubectx/master/kubectx \
&& chmod 700 kubectx \
&& echo "installed kubectx"
curl -so kubens https://raw.githubusercontent.com/ahmetb/kubectx/master/kubens \
&& chmod 700 kubens \
&& echo "installed kubens"
# Kustomize install script
#opsys=linux # or darwin, or windows
# //TODO: check for rate-limiting by GitHub API, lol.
#curl -s https://api.github.com/repos/kubernetes-sigs/kustomize/releases/latest |\
# grep browser_download |\
# grep -i ${opsys} |\
# cut -d '"' -f 4 |\
# xargs curl -s -O -L
curl -s -O -L "https://github.com/kubernetes-sigs/kustomize/releases/download/v1.0.11/kustomize_1.0.11_${opsys}_amd64"
mv kustomize_*_${opsys}_amd64 ~/.local/bin/kustomize
chmod u+x ~/.local/bin/kustomize \
&& echo "installed kustomize"
# Helm
pushd ~/
curl -s -O -L "https://storage.googleapis.com/kubernetes-helm/helm-v2.12.1-${opsys}-amd64.tar.gz"
tar xz -f helm-v2.12.1-${opsys}-amd64.tar.gz -C /tmp
mv /tmp/${opsys}-amd64/helm ~/.local/bin/
~/.local/bin/helm init --client-only
rm -rfv helm-v2.11.0-${opsys}-amd64.tar.gz
popd
# eksctl eksctl.io written by weaveworks
curl --silent --location "https://github.com/weaveworks/eksctl/releases/download/latest_release/eksctl_${opsys}_amd64.tar.gz" | tar xz -C /tmp
mv /tmp/eksctl ~/.local/bin
## Config Files
if [ ! -d ~/.kube ]; then mkdir ~/.kube; fi
# **IF** you made the cluster with this user
# aws eks update-kubeconfig --name cluster_name
# else
#echo "export KUBECONFIG=~/.kube/:$KUBECONFIG" >> ~/.bashrc
echo "remember to source ~/.bashrc"
## END
popd