AWS EKS Terraform Module

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

Requirements

Name Version

>= 0.13

aws

~> 3.37

~> 2.0

~> 2.0

~> 2.0

~> 3.0

~> 3.0

Providers

Name Version

aws

~> 3.37

dns

n/a

~> 3.0

Modules

Name Source Version

terraform-aws-modules/eks/aws

15.1.0

efs

camptocamp/efs/aws

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

4.0.0

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

4.0.0

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

4.0.0

nlb

terraform-aws-modules/alb/aws

6.0.0

terraform-aws-modules/alb/aws

5.10.0

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

null

no

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.21"

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 setup a cluster autoscaler

bool

false

no

Whether to provision an EFS filesystem, along with a provisioner

bool

false

no

Extra AppProjects objects to deploy.

any

[]

no

Extra ApplicationSets objects to deploy.

any

[]

no

Extra Applications objects to deploy.

any

[]

no

Additional load-balancer listeners

list(any)

[]

no

Additional load-balancer target groups

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 AWS account numbers to add to the aws-auth configmap. See examples/basic/variables.tf in the terraform-aws-eks module’s code for example format.

list(string)

[]

no

Additional IAM roles to add to the aws-auth configmap. See examples/basic/variables.tf in the terraform-aws-eks module’s code for example format.

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

[]

no

Additional IAM users to add to the aws-auth configmap. See examples/basic/variables.tf in the terraform-aws-eks module’s code for example format.

list(object({
    userarn  = 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

Other domains used for Ingresses requiring a DNS-01 challenge for Let’s Encrypt validation with cert-manager (e.g. wildcard certificates).

list(string)

[]

no

n/a

object({
    prometheus_oauth2_proxy_extra_args = list(string)
    prometheus_oauth2_proxy_image      = string
    prometheus_oauth2_proxy_extra_volume_mounts = list(object({
      name       = string
      mount_path = string
    }))
  })
{
  "prometheus_oauth2_proxy_extra_args": [],
  "prometheus_oauth2_proxy_extra_volume_mounts": [],
  "prometheus_oauth2_proxy_image": "quay.io/oauth2-proxy/oauth2-proxy:v7.1.3"
}

no

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

string

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

no

A list of repositories to add to ArgoCD.

map(map(string))

{}

no

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

string

"v0.56.0"

no

VPC where the cluster and workers will be deployed.

string

n/a

yes

Allow to disable wait for app of apps

bool

true

no

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

App of Apps values

The token to set in ARGOCD_AUTH_TOKEN environment variable.

The URL of the ArgoCD server.

The ArgoCD admin password.

n/a

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.