|
| 1 | +#!/usr/bin/env bash |
| 2 | + |
| 3 | +# This script will install EKS prerequisites on Amazon Linux or Amazon Linux 2 |
| 4 | +# * kubectl |
| 5 | +# * aws-iam-authenticator |
| 6 | +# * AWS CLI |
| 7 | + |
| 8 | +set -e |
| 9 | + |
| 10 | +mkdir -p $HOME/bin |
| 11 | +echo 'export PATH=$HOME/bin:$PATH' >>~/.bashrc |
| 12 | + |
| 13 | +# Install kubectl, if absent |
| 14 | +if ! type kubectl >/dev/null 2>&1; then |
| 15 | + curl -o "kubectl https://amazon-eks.s3-us-west-2.amazonaws.com/1.10.3/2018-07-26/bin/$(uname -s)/amd64/kubectl" |
| 16 | + chmod +x ./kubectl |
| 17 | + cp ./kubectl $HOME/bin/kubectl && export PATH=$HOME/bin:$PATH |
| 18 | + echo 'kubectl installed' |
| 19 | +else |
| 20 | + echo 'kubectl already installed' |
| 21 | +fi |
| 22 | + |
| 23 | +# aws-iam-authenticator |
| 24 | +if ! type aws-iam-authenticator >/dev/null 2>&1; then |
| 25 | + curl -o aws-iam-authenticator "https://amazon-eks.s3-us-west-2.amazonaws.com/1.10.3/2018-07-26/bin/$(uname -s)/amd64/aws-iam-authenticator" |
| 26 | + chmod +x ./aws-iam-authenticator |
| 27 | + cp ./aws-iam-authenticator $HOME/bin/aws-iam-authenticator && export PATH=$HOME/bin:$PATH |
| 28 | + echo 'aws-iam-authenticator installed' |
| 29 | +else |
| 30 | + echo 'aws-iam-authenticator already installed' |
| 31 | +fi |
| 32 | + |
| 33 | +# AWS CLI |
| 34 | +if ! type aws >/dev/null 2>&1; then |
| 35 | + curl -o awscli-bundle.zip https://s3.amazonaws.com/aws-cli/awscli-bundle.zip |
| 36 | + unzip awscli-bundle.zip |
| 37 | + ./awscli-bundle/install -b $HOME/bin/aws |
| 38 | + echo 'AWS CLI installed' |
| 39 | +else |
| 40 | + echo 'AWS CLI already installed' |
| 41 | +fi |
| 42 | + |
| 43 | +# eksctl |
| 44 | +if ! type eksctl >/dev/null 2>&1; then |
| 45 | + curl --silent --location "https://github.com/weaveworks/eksctl/releases/download/latest_release/eksctl_$(uname -s)_amd64.tar.gz" | tar xz -C /tmp |
| 46 | + mv /tmp/eksctl $HOME/bin |
| 47 | + echo 'eksctl installed' |
| 48 | +else |
| 49 | + echo 'eksctl already installed' |
| 50 | +fi |
| 51 | + |
| 52 | +# kubectx/kubens |
| 53 | +if ! type kubectx >/dev/null 2>&1; then |
| 54 | + git clone https://github.com/ahmetb/kubectx /opt/kubectx |
| 55 | + ln -s /opt/kubectx/kubectx /usr/local/bin/kubectx |
| 56 | + ln -s /opt/kubectx/kubens /usr/local/bin/kubens |
| 57 | + echo 'kubectx installed' |
| 58 | +else |
| 59 | + echo 'kubectx already installed' |
| 60 | +fi |
| 61 | + |
| 62 | +# Test if AWS credentials exist |
| 63 | +aws sts get-caller-identity |
0 commit comments