A Terraform module for deploying a EKS cluster in AWS
Branch: master
Clone or download
tiborv Merge pull request #4 from telia-oss/worker-public-ip
Use the subnet default instead of assigning public ip
Latest commit 6687cbb Feb 20, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github feat: .github integration Oct 2, 2018
examples/default Enable multiple instance types Feb 1, 2019
.gitignore Init Oct 2, 2018
.travis.yml Init Oct 2, 2018
LICENSE Init Oct 2, 2018
Makefile Init Oct 2, 2018
README.md Update README.md Feb 5, 2019
master.tf Move VPC out of module Nov 30, 2018
outputs.tf Add arn values to output Jan 14, 2019
variables.tf Add ability to extend node user data Feb 19, 2019
workers.tf Merge branch 'master' into worker-public-ip Feb 19, 2019


AWS EKS Terraform Module

Build Status

Terraform module which creates a EKS cluster on AWS.




  1. Have AWS access

  2. Apply terraform config - create cluster (usually slow, i.e. 10+ mins.)

  3. Set your kubeconfig using the aws cli:

    aws eks update-kubeconfig --name <cluster-name> # e.g example-cluster
  4. Confirm connection towards the cluster:

    kubectl get nodes # should return `no resources`


    When you create an Amazon EKS cluster, the IAM entity user or role (for example, for federated users) that creates the cluster is automatically granted system:master permissions in the cluster's RBAC configuration.

    I.e if your cluster is created by a machine user role (e.g. as a part of a CI/CD task), you will need to assume this role to establish initial connection towards the cluster.

    More info here.

  5. Save and apply config-map-aws-auth output from terraform:

    terraform output config_map_aws_auth # save as auth-config.yml
    kubectl apply -f auth-config.yml
  6. Confirm that nodes have joined/are joining the cluster

    kubectl get nodes # should show a list of nodes


  • Cluster access requires an authenticated shell towards AWS in addition to the kubeconfig being present.
    • E.g: make sure that vaulted:
      • is working
      • session hasn't timed out
      • the correct AWS role is in use


Terraform module which creates a EKS cluster on AWS.


Currently maintained by these contributors.


MIT License. See LICENSE for full details.