Skip to main content

AWS EKS Addons

GitHub: clouddrove/terraform-aws-eks-addons →

A single Terraform module that manages 31 production-grade EKS add-ons. Each add-on is a boolean toggle — set it to true and the module installs the Helm chart, creates the IRSA role (where required), and wires everything together.

module "eks_addons" {
source = "git::https://github.com/clouddrove/terraform-aws-eks-addons.git?ref=0.0.7"

eks_cluster_name = module.eks.cluster_name
data_plane_wait_arn = module.eks.data_plane_wait_arn

metrics_server = true
cluster_autoscaler = true
aws_load_balancer_controller = true
external_secrets = true
certification_manager = true
}
Terraform≥ 1.0.0
AWS provider≥ 3.72
Helm providerrequired

Add-on Reference

Autoscaling

Add-onVariableIRSADescription
Metrics Servermetrics_serverKubernetes resource metrics API — required for HPA and kubectl top
Cluster Autoscalercluster_autoscalerScales node groups up/down based on pending pods
KarpenterkarpenterHigh-performance, flexible node provisioner — alternative to Cluster Autoscaler
KEDAkedaEvent-driven autoscaler — scale deployments based on Kafka, SQS, Redis, and 60+ other sources
Node Termination Handleraws_node_termination_handlerGracefully drains nodes before Spot interruptions and scheduled maintenance

Networking & Ingress

Add-onVariableIRSADescription
AWS Load Balancer Controlleraws_load_balancer_controllerManages ALBs and NLBs for Kubernetes Ingress and Service resources
Ingress Nginxingress_nginxNGINX-based ingress controller — alternative to ALB Ingress
External DNSexternal_dnsAutomatically creates Route 53 DNS records for Kubernetes Services and Ingresses
cert-managercertification_managerAutomatically provisions and renews TLS certificates via Let's Encrypt

Service Mesh

Add-onVariableIRSANotes
Istio Ingressistio_ingressIstio service mesh ingress gateway — requires aws_load_balancer_controller
Kialikiali_serverService mesh observability dashboard — requires istio_ingress
Calico / Tigeracalico_tigeraNetwork policy engine and eBPF dataplane

Storage & Backup

Add-onVariableIRSADescription
EFS CSI Driveraws_efs_csi_driverMount Amazon EFS volumes as Kubernetes PersistentVolumes
EBS CSI Driveraws_ebs_csi_driverMount Amazon EBS volumes with full lifecycle management
VeleroveleroBackup and restore Kubernetes resources and persistent volumes to S3
RedisredisIn-cluster Redis for caching and session storage

Observability

Add-onVariableIRSADescription
PrometheusprometheusMetrics collection and alerting
GrafanagrafanaMetrics dashboards — requires aws_load_balancer_controller
LokilokiLog aggregation — pairs with Grafana
FluentBitfluent_bitLog processor and forwarder to CloudWatch, Elasticsearch, or Loki
FilebeatfilebeatLightweight log shipper to Elasticsearch / Logstash
Kube State Metricskube_state_metricsKubernetes object metrics for Prometheus
Prometheus CloudWatch Exporterprometheus_cloudwatch_exporterExports AWS CloudWatch metrics into Prometheus
New Relicnew_relicFull-stack observability via New Relic agent
JaegerjaegerDistributed tracing
AWS X-Rayaws_xrayAWS-native distributed tracing
Pod Restart Info Collectork8s_pod_restart_info_collectorAlerts on pod restarts with context (OOMKilled, CrashLoopBackOff, etc.)

Security & Secrets

Add-onVariableIRSADescription
External Secretsexternal_secretsSyncs secrets from AWS Secrets Manager and SSM Parameter Store into Kubernetes Secrets
KubeClaritykubeclarityRuntime vulnerability scanning for container images

CI/CD & Utilities

Add-onVariableIRSANotes
Actions Runner Controlleractions_runner_controllerSelf-hosted GitHub Actions runners on Kubernetes — requires certification_manager
ReloaderreloaderAutomatically rolls Deployments when ConfigMaps or Secrets change

IRSA Add-ons

The following add-ons create an IAM Role for Service Accounts (IRSA) automatically. You can override the IAM policy with <addon>_iampolicy_json_content:

Add-onDefault permission scope
Cluster AutoscalerEC2 DescribeAutoScalingGroups, SetDesiredCapacity
AWS Load Balancer ControllerEC2, ELBv2, WAFv2, Shield
EFS CSI DriverEFS — DescribeMountTargets, CreateAccessPoint
EBS CSI DriverEC2 volumes — CreateVolume, AttachVolume, DeleteVolume
KarpenterEC2 — RunInstances, TerminateInstances, full fleet management
External SecretsSecretsManager GetSecretValue, SSM GetParameter
FluentBitCloudWatch Logs — CreateLogGroup, PutLogEvents
VeleroS3 + EC2 snapshots
External DNSRoute 53 ChangeResourceRecordSets
AWS X-Rayxray:PutTraceSegments, xray:PutTelemetryRecords
Prometheus CloudWatch ExporterCloudWatch GetMetricData, ListMetrics