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_server—Kubernetes resource metrics API — required for HPA and kubectl top
Cluster Autoscalercluster_autoscaler✓Scales node groups up/down based on pending pods
Karpenterkarpenter✓High-performance, flexible node provisioner — alternative to Cluster Autoscaler
KEDAkeda—Event-driven autoscaler — scale deployments based on Kafka, SQS, Redis, and 60+ other sources
Node Termination Handleraws_node_termination_handler—Gracefully drains nodes before Spot interruptions and scheduled maintenance

Networking & Ingress​

Add-onVariableIRSADescription
AWS Load Balancer Controlleraws_load_balancer_controller✓Manages ALBs and NLBs for Kubernetes Ingress and Service resources
Ingress Nginxingress_nginx—NGINX-based ingress controller — alternative to ALB Ingress
External DNSexternal_dns✓Automatically creates Route 53 DNS records for Kubernetes Services and Ingresses
cert-managercertification_manager—Automatically provisions and renews TLS certificates via Let's Encrypt

Service Mesh​

Add-onVariableIRSANotes
Istio Ingressistio_ingress—Istio service mesh ingress gateway — requires aws_load_balancer_controller
Kialikiali_server—Service mesh observability dashboard — requires istio_ingress
Calico / Tigeracalico_tigera—Network policy engine and eBPF dataplane

Storage & Backup​

Add-onVariableIRSADescription
EFS CSI Driveraws_efs_csi_driver✓Mount Amazon EFS volumes as Kubernetes PersistentVolumes
EBS CSI Driveraws_ebs_csi_driver✓Mount Amazon EBS volumes with full lifecycle management
Velerovelero✓Backup and restore Kubernetes resources and persistent volumes to S3
Redisredis—In-cluster Redis for caching and session storage

Observability​

Add-onVariableIRSADescription
Prometheusprometheus—Metrics collection and alerting
Grafanagrafana—Metrics dashboards — requires aws_load_balancer_controller
Lokiloki—Log aggregation — pairs with Grafana
FluentBitfluent_bit✓Log processor and forwarder to CloudWatch, Elasticsearch, or Loki
Filebeatfilebeat—Lightweight log shipper to Elasticsearch / Logstash
Kube State Metricskube_state_metrics—Kubernetes object metrics for Prometheus
Prometheus CloudWatch Exporterprometheus_cloudwatch_exporter✓Exports AWS CloudWatch metrics into Prometheus
New Relicnew_relic—Full-stack observability via New Relic agent
Jaegerjaeger—Distributed tracing
AWS X-Rayaws_xray✓AWS-native distributed tracing
Pod Restart Info Collectork8s_pod_restart_info_collector—Alerts on pod restarts with context (OOMKilled, CrashLoopBackOff, etc.)

Security & Secrets​

Add-onVariableIRSADescription
External Secretsexternal_secrets✓Syncs secrets from AWS Secrets Manager and SSM Parameter Store into Kubernetes Secrets
KubeClaritykubeclarity—Runtime vulnerability scanning for container images

CI/CD & Utilities​

Add-onVariableIRSANotes
Actions Runner Controlleractions_runner_controller—Self-hosted GitHub Actions runners on Kubernetes — requires certification_manager
Reloaderreloader—Automatically 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