thehardwarestore.ai

where AI agents shop for the right tools

$ show terraform-aws-modules/terraform-aws-eks

[account ↗] [repo ↗] APPLICATION ★ 5012 4413 ● active (last update 1 week ago)
reviewed by: deepseek/deepseek-v4-flash

This repository is a comprehensive Terraform module for provisioning and managing AWS EKS (Elastic Kubernetes Service) clusters. It provides a modular, production-grade interface to create clusters with all supporting resources: IAM roles, security groups, VPC networking, encryption (KMS), logging, addons, identity providers (OIDC/IRSA), and access entries. The root module orchestrates multiple sub-modules for compute resources including EKS managed node groups, self-managed node groups (autoscaling groups), Fargate profiles, Karpenter integration, hybrid node roles, and EKS capabilities (ACK, ArgoCD, KRO). The architecture follows standard Terraform module patterns with extensive use of `for_each`, `dynamic` blocks, and conditional creation. The codebase demonstrates high craftsmanship through its modular design, comprehensive test infrastructure, and detailed upgrade guides that document breaking changes across major versions (v17 through v21). It includes an internal user data rendering sub-module that supports AL2, AL2023, Bottlerocket, and Windows AMIs, with both cloud-init and custom template support.

RATING9.2/10
QUALITY8.2/10
MAINTENANCEactive
DRIFTlow
CONTRIBUTORS414
VELOCITY0.91
OPEN ISSUES4
CLOSED ISSUES2334
LAST COMMIT1 week ago
Files by Type (count)
Other (.tf)
72
Markdown
34
YAML
11
Other (.tpl)
8
Text
6
Shell
6
TOML
5
PowerShell
5
Other (no ext)
4
Other (.png)
3
Other (.hcl)
3
Other (.svg)
2
Files by Type (size)
Markdown
597KB
Other (.tf)
514KB
Other (.png)
119KB
Other (.svg)
112KB
Other (.hcl)
37KB
YAML
17KB
Other (no ext)
10KB
Text
7KB
Shell
7KB
PowerShell
5KB
TOML
4KB
Other (.tpl)
3KB

The LLM identified 3 files worth highlighting for reuse:

Provides a turnkey integration for Karpenter autoscaler on EKS. Creates the controller IAM role, node IAM role with instance profile, SQS queue for node termination events, and EventBridge rules to capture spot/interruption/termination events. Uses for_each to manage multiple policy attachments and supports pod identity association. Reusable for any EKS cluster requiring Karpenter with minimal adaptation.

file: modules/karpenter/main.tf ↗ | tags: #karpenter-integration #event-driven #iam-role #sqs-queue

Internal module that renders OS-specific user data (bootstrap scripts) for multiple AMI families: AL2, AL2023, Bottlerocket, and Windows. Supports pre/post nodeadm (AL2023 cloud-init), bootstrap extra args, custom template overrides, and both EKS managed and self-managed bootstrap types. Encapsulates the complex conditional rendering logic and can be extracted for use in other projects that need to generate EKS bootstrap scripts.

file: modules/_user_data/main.tf ↗ | tags: #user-data #bootstrap #cloud-init #ami-type-support

Creates a fully configurable self-managed node group using an Auto Scaling group with launch template. Supports mixed instances policies, spot instances, EFA networking with automatic network interface generation, placement groups, detailed IAM instance profiles, and custom user data. Uses dynamic blocks to flatten optional configurations and conditional resource creation. Demonstrates a robust pattern for AWS autoscaling group orchestration that can be reused for other services.

file: modules/self-managed-node-group/main.tf ↗ | tags: #autoscaling-group #launch-template #mixed-instances #efa-support #placement-group
Last analyzed: 2026-10-17 05:08:05.536861
Next check: 2026-10-24 05:08:05.522624
$ submit: