Skip to content

Instantly share code, notes, and snippets.

@yukiarrr
Created March 11, 2020 18:26
Show Gist options
  • Save yukiarrr/df476d0928c358ea01052f8226231e2f to your computer and use it in GitHub Desktop.
Save yukiarrr/df476d0928c358ea01052f8226231e2f to your computer and use it in GitHub Desktop.
Create cluster on EKS, and install ALB Ingress Controller
#!/bin/bash -e
# Step1: Get env
if [ ! -e $CLUSTER_YAML_PATH ]; then
echo "Not found ${CLUSTER_YAML_PATH}."
exit 1
fi
cluster_name=$(yq r $CLUSTER_YAML_PATH metadata.name)
region=$(yq r $CLUSTER_YAML_PATH metadata.region)
# Step2: Create cluster
eksctl create cluster -f $CLUSTER_YAML_PATH
# Step3: Create policy
eksctl utils associate-iam-oidc-provider \
--region $region \
--cluster $cluster_name \
--approve
policy_name='ALBIngressControllerIAMPolicy'
policy_arn=$(aws iam list-policies --output json | jq -r ".Policies[] | select(.PolicyName == \"${policy_name}\").Arn")
if [ -z "$policy_arn" ]; then
policy_arn=$(aws iam create-policy \
--policy-name $policy_name \
--policy-document https://raw.githubusercontent.com/kubernetes-sigs/aws-alb-ingress-controller/v1.1.4/docs/examples/iam-policy.json \
--output json | jq -r .Policy.Arn)
fi
kubectl apply -f https://raw.githubusercontent.com/kubernetes-sigs/aws-alb-ingress-controller/v1.1.4/docs/examples/rbac-role.yaml
eksctl create iamserviceaccount \
--region $region \
--name alb-ingress-controller \
--namespace kube-system \
--cluster $cluster_name \
--attach-policy-arn $policy_arn \
--override-existing-serviceaccounts \
--approve
# Step4: Install ALB Ingress Controller
vpc_id=$(eksctl get cluster \
--name $cluster_name \
--output json | jq -r .[].ResourcesVpcConfig.VpcId)
helm repo add incubator http://storage.googleapis.com/kubernetes-charts-incubator
helm install incubator/aws-alb-ingress-controller \
--set clusterName=$cluster_name \
--set awsRegion=$region \
--set awsVpcID=$vpc_id \
--set rbac.create=false \
--set rbac.serviceAccountName=alb-ingress-controller \
--generate-name \
--namespace kube-system \
--version 0.1.12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment