AWS EKS Terraform Module

The eks/aws Terraform module provides a way to install and configure:

Requirements

Name Version

>= 0.13

aws

3.21.0

2.0.2

2.0.2

2.0.0

3.0.0

3.0.0

Providers

Name Version

aws

3.21.0

3.0.0

Modules

Name Source Version

terraform-aws-modules/eks/aws

13.2.1

efs

camptocamp/efs/aws

terraform-aws-modules/iam/aws//modules/iam-assumable-role-with-oidc

3.6.0

terraform-aws-modules/iam/aws//modules/iam-assumable-role-with-oidc

3.6.0

nlb

terraform-aws-modules/alb/aws

5.10.0

terraform-aws-modules/alb/aws

Inputs

Name Description Type Default Required

App of apps values overrides.

string

""

no

ArgoCD Server Secert Key to avoid regenerate token on redeploy.

string

null

no

The base domain used for Ingresses.

string

n/a

yes

List of CIDR blocks which can access the Amazon EKS public API server endpoint.

list(string)

[
  "0.0.0.0/0"
]

no

The name of the Kubernetes cluster to create.

string

n/a

yes

Kubernetes version to use for the EKS cluster.

string

"1.18"

no

Domain prefix of the Cognito user pool to use (custom domain currently not supported!).

string

n/a

yes

ID of the Cognito user pool to use.

string

n/a

yes

Whether to create an internal NLB attached the private subnets

bool

false

no

Whether to create an internet-facing NLB attached to the public subnets

bool

true

no

Whether to provision an EFS filesystem, along with a provisioner

bool

false

no

Extra applications to deploy.

list(any)

[]

no

The admin password for Grafana.

string

null

no

Override the kubeconfig authenticator command

string

"aws-iam-authenticator"

no

Override the kubeconfig authenticator arguments

list(string)

[]

no

Additional IAM roles to add to the aws-auth configmap. See examples/basic/variables.tf for example format.

list(object({
    rolearn  = string
    username = string
    groups   = list(string)
  }))

[]

no

OIDC configuration for core applications.

object({
    issuer_url              = string
    oauth_url               = string
    token_url               = string
    api_url                 = string
    client_id               = string
    client_secret           = string
    oauth2_proxy_extra_args = list(string)
  })

null

no

The source repo URL of ArgoCD’s app of apps.

string

"https://github.com/camptocamp/devops-stack.git"

no

The source target revision of ArgoCD’s app of apps.

string

"master"

no

VPC where the cluster and workers will be deployed.

string

n/a

yes

A list of maps defining worker group configurations to be defined using AWS Launch Configurations. See workers_group_defaults for valid keys.

any

[]

no

Outputs

Name Description

n/a

The token to set in ARGOCD_AUTH_TOKEN environment variable.

The URL of the ArgoCD server.

The name/id of the EKS cluster. Will block on cluster creation until the cluster is really ready

The URL on the EKS cluster OIDC Issuer

The admin password for Grafana.

The content of the KUBECONFIG file.

n/a

n/a

n/a

n/a

n/a

default IAM role name for EKS worker groups

Security group ID attached to the EKS workers.