โ— LIVE
OpenAI releases GPT-5 APIIndia AI startup raises $120MBitcoin ETF hits record inflowsMeta Llama 4 benchmarks leakedOpenAI releases GPT-5 APIIndia AI startup raises $120MBitcoin ETF hits record inflowsMeta Llama 4 benchmarks leaked
๐Ÿ“… Sun, 29 Mar, 2026โœˆ๏ธ Telegram
AiFeed24

AI & Tech News

๐Ÿ”
โœˆ๏ธ Follow
๐Ÿ Home๐Ÿค–AI๐Ÿ’ปTech๐Ÿš€Startupsโ‚ฟCrypto๐Ÿ”’Security๐Ÿ‡ฎ๐Ÿ‡ณIndiaโ˜๏ธCloud๐Ÿ”ฅDeals
โœˆ๏ธ News Channel๐Ÿ›’ Deals Channel
Home/Cloud & DevOps/Terraform Modular EKS + Istio โ€” Part 3
โ˜๏ธCloud & DevOps

Terraform Modular EKS + Istio โ€” Part 3

EKS Cluster Module (What Actually Creates Kubernetes) After setting up VPC and IAM, the next step is creating the actual Kubernetes control plane using Amazon EKS. This module is responsible for: Creating the EKS cluster Configuring networking Enabling authentication Setting up OIDC (required for IR

โšกQuick SummaryAI generating...
P

POTHURAJU JAYAKRISHNA YADAV

๐Ÿ“… Mar 27, 2026ยทโฑ 6 min readยทDev.to โ†—
โœˆ๏ธ Telegram๐• TweetWhatsApp
๐Ÿ“ก

Original Source

Dev.to

https://dev.to/jayakrishnayadav24/terraform-modular-eks-istio-part-3-4n9e
Read Full โ†—

EKS Cluster Module (What Actually Creates Kubernetes)

After setting up VPC and IAM, the next step is creating the actual Kubernetes control plane using Amazon EKS.

This module is responsible for:

  • Creating the EKS cluster
  • Configuring networking
  • Enabling authentication
  • Setting up OIDC (required for IRSA)

๐Ÿ“‚ Module Files

modules/eks-cluster/
โ”œโ”€โ”€ main.tf
โ”œโ”€โ”€ variables.tf
โ””โ”€โ”€ outputs.tf

๐Ÿ“„ variables.tf

variable "cluster_name" {
  description = "Name of the EKS cluster"
  type        = string
}

variable "cluster_version" {
  description = "Kubernetes version"
  type        = string
  default     = "1.29"
}

variable "cluster_role_arn" {
  description = "ARN of the EKS cluster IAM role"
  type        = string
}

variable "private_subnet_ids" {
  description = "List of private subnet IDs"
  type        = list(string)
}

variable "public_subnet_ids" {
  description = "List of public subnet IDs"
  type        = list(string)
}

๐Ÿง  What this module expects

This module doesnโ€™t create everything itself. It depends on:

  • VPC module โ†’ for subnets
  • IAM module โ†’ for cluster role

Inputs tell it:

  • what to name the cluster
  • which version to run
  • where to place it

๐Ÿ“„ main.tf

This is where the actual EKS cluster is created.

1. EKS Cluster Resource

resource "aws_eks_cluster" "cluster" {
  name     = var.cluster_name
  version  = var.cluster_version
  role_arn = var.cluster_role_arn

What this does

This creates the EKS control plane.

Important point:

๐Ÿ‘‰ You are NOT creating master nodes
๐Ÿ‘‰ AWS manages them for you

2. Networking Configuration

vpc_config {
  subnet_ids = concat(var.private_subnet_ids, var.public_subnet_ids)
}

Why both private and public subnets?

  • Private subnets โ†’ worker nodes
  • Public subnets โ†’ load balancers

If you only pass private:

  • ALB/NLB creation can fail later

If you only pass public:

  • not secure

๐Ÿ‘‰ Passing both is correct production setup.

3. Access Configuration (Very Important)

access_config {
  authentication_mode                         = "API_AND_CONFIG_MAP"
  bootstrap_cluster_creator_admin_permissions = true
}

What this solves

Newer EKS versions changed authentication behavior.

This block ensures:

  • API-based authentication is enabled
  • IAM + aws-auth both work

This line is critical

bootstrap_cluster_creator_admin_permissions = true

๐Ÿ‘‰ Gives admin access to the creator

Without this:

  • cluster gets created
  • but you cannot access it

4. Dependency Handling

depends_on = [var.cluster_role_arn]

Why needed?

Even though role ARN is passed:

Terraform may not always detect dependency properly.

This ensures:

๐Ÿ‘‰ IAM role exists before cluster creation

๐Ÿ”ฅ OIDC Setup (Core Concept)

This is the most important part of this module.

5. Fetch TLS Certificate

data "tls_certificate" "cluster" {
  url = aws_eks_cluster.cluster.identity[0].oidc[0].issuer
}

What is happening?

  • EKS creates an OIDC endpoint
  • This block fetches its certificate

Used for:
๐Ÿ‘‰ Trust verification in IAM

6. Create OIDC Provider

resource "aws_iam_openid_connect_provider" "cluster" {
  client_id_list  = ["sts.amazonaws.com"]
  thumbprint_list = [data.tls_certificate.cluster.certificates[0].sha1_fingerprint]
  url             = aws_eks_cluster.cluster.identity[0].oidc[0].issuer

What this actually does

This creates a bridge:

Kubernetes โ†’ IAM

Why this is required

Without OIDC:

โŒ Pods cannot assume IAM roles
โŒ IRSA will not work

Thumbprint

thumbprint_list = [...]

๐Ÿ‘‰ Ensures secure trust between AWS and OIDC provider

๐Ÿ“„ outputs.tf

output "cluster_id" {
  value = aws_eks_cluster.cluster.id
}

output "cluster_arn" {
  value = aws_eks_cluster.cluster.arn
}

output "cluster_endpoint" {
  value = aws_eks_cluster.cluster.endpoint
}

output "cluster_security_group_id" {
  value = aws_eks_cluster.cluster.vpc_config[0].cluster_security_group_id
}

output "cluster_certificate_authority_data" {
  value = aws_eks_cluster.cluster.certificate_authority[0].data
}

output "oidc_provider_arn" {
  value = aws_iam_openid_connect_provider.cluster.arn
}

output "oidc_provider" {
  value = replace(aws_eks_cluster.cluster.identity[0].oidc[0].issuer, "https://", "")
}

๐Ÿง  Why these outputs matter

These values are used by other modules:

  • Kubernetes provider โ†’ uses endpoint + certificate
  • IAM module โ†’ uses OIDC provider
  • Node module โ†’ uses cluster name

Example:

host = module.eks_cluster.cluster_endpoint

๐Ÿ”ฅ What You Actually Built

AWS Managed Control Plane
        โ”‚
        โ”‚
OIDC Provider (for IAM integration)

โš ๏ธ Real Issues People Face

  • No OIDC โ†’ IRSA breaks
  • Wrong subnets โ†’ cluster unstable
  • Missing access_config โ†’ login issues
  • Wrong IAM role โ†’ cluster creation fails

๐Ÿง  Key Takeaways

  • EKS cluster = control plane only
  • AWS manages master nodes
  • OIDC is required for IAM integration
  • Outputs connect modules together

๐Ÿš€ Next Step

Next module:

๐Ÿ‘‰ Node Groups (actual compute layer)
๐Ÿ‘‰ How EC2 instances join the cluster
๐Ÿ‘‰ Scaling and updates

This module is where Kubernetes actually starts โ€” but without nodes, itโ€™s still empty.

Tags:#cloud#dev.to

Found this useful? Share it!

โœˆ๏ธ Telegram๐• TweetWhatsApp

Read the Full Story

Continue reading on Dev.to

Visit Dev.to โ†—

Related Stories

โ˜๏ธ
โ˜๏ธCloud & DevOps

Stop Copying Skills Between Claude Code, Cursor, and Codex

about 3 hours ago

โ˜๏ธ
โ˜๏ธCloud & DevOps

Agentic Architectures โ€” Article 2: Advanced Coordination and Reasoning Patterns

about 3 hours ago

โ˜๏ธ
โ˜๏ธCloud & DevOps

Agentic Architectures โ€” Article 1: The Agentic AI Maturity Model

about 3 hours ago

โ˜๏ธ
โ˜๏ธCloud & DevOps

Reimagining Creativity: Inside IdeaForge

about 3 hours ago

๐Ÿ“ก Source Details

Dev.to

๐Ÿ“… Mar 27, 2026

๐Ÿ• 3 days ago

โฑ 6 min read

๐Ÿ—‚ Cloud & DevOps

Read Original โ†—

Web Hosting

๐ŸŒ Hostinger โ€” 80% Off Hosting

Start your website for โ‚น69/mo. Free domain + SSL included.

Claim Deal โ†’

๐Ÿ“ฌ AiFeed24 Daily

Top 5 AI & tech stories every morning. Join 40,000+ readers.

โœฆ 40,218 subscribers ยท No spam, ever

Cloud Hosting

โ˜๏ธ Vultr โ€” $100 Free Credit

Deploy cloud servers in 25+ locations. From $2.50/mo. No contract.

Claim $100 Credit โ†’
AiFeed24

India's AI-powered technology news platform. Curated from 60+ trusted sources, updated every hour.

โœˆ๏ธ @aipulsedailyontime (News)๐Ÿ›’ @GadgetDealdone (Deals)

Categories

๐Ÿค– Artificial Intelligence๐Ÿ’ป Technology๐Ÿš€ Startupsโ‚ฟ Crypto๐Ÿ”’ Security๐Ÿ‡ฎ๐Ÿ‡ณ India Techโ˜๏ธ Cloud๐Ÿ“ฑ Mobile

Company

About UsContactEditorial PolicyAdvertiseDealsAll StoriesRSS Feed

Daily Digest

Top AI & tech stories every morning. Free forever.

Privacy PolicyTerms & ConditionsCookie PolicyDisclaimerSitemap

ยฉ 2026 AiFeed24. All rights reserved.

Affiliate disclosure: We earn commissions on qualifying purchases. Learn more