Skip to content

Instantly share code, notes, and snippets.

@vfarcic
Last active February 1, 2021 20:06
Show Gist options
  • Star 3 You must be signed in to star a gist
  • Fork 2 You must be signed in to fork a gist
  • Save vfarcic/5496f79a3886be794cc317c6f8dd7083 to your computer and use it in GitHub Desktop.
Save vfarcic/5496f79a3886be794cc317c6f8dd7083 to your computer and use it in GitHub Desktop.
######################
# Create The Cluster #
######################
# Follow the instructions from https://github.com/weaveworks/eksctl to intall `eksctl`
export AWS_ACCESS_KEY_ID=[...] # Replace [...] with AWS access key ID
export AWS_SECRET_ACCESS_KEY=[...] # Replace [...] with AWS secret access key
export AWS_DEFAULT_REGION=us-west-2
mkdir -p cluster
eksctl create cluster \
-n devops24 \
--kubeconfig cluster/kubecfg-eks \
--node-type t2.medium \
--nodes 2
export KUBECONFIG=$PWD/cluster/kubecfg-eks
###################
# Install Ingress #
###################
kubectl apply \
-f https://raw.githubusercontent.com/kubernetes/ingress-nginx/1cd17cd12c98563407ad03812aebac46ca4442f2/deploy/mandatory.yaml
kubectl apply \
-f https://raw.githubusercontent.com/kubernetes/ingress-nginx/1cd17cd12c98563407ad03812aebac46ca4442f2/deploy/provider/aws/service-l4.yaml
kubectl apply \
-f https://raw.githubusercontent.com/kubernetes/ingress-nginx/1cd17cd12c98563407ad03812aebac46ca4442f2/deploy/provider/aws/patch-configmap-l4.yaml
########################
# Install StorageClass #
########################
echo 'kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
name: gp2
provisioner: kubernetes.io/aws-ebs
parameters:
type: gp2
encrypted: "true"' \
| kubectl create -f -
kubectl patch storageclass gp2 \
-p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}'
#######################
# Destroy the cluster #
#######################
LB_NAME=$(aws elb \
describe-load-balancers \
| jq -r \
".LoadBalancerDescriptions[0] \
| select(.SourceSecurityGroup.GroupName \
| contains (\"k8s-elb\")) \
.LoadBalancerName")
aws elb delete-load-balancer \
--load-balancer-name $LB_NAME
eksctl delete cluster -n devops24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment