Skip to content

Commit 17e7358

Browse files
enable auto-mode on eks (#442)
* enable auto-mode on eks * enable auto-mode on eks * Update variables.tf --------- Co-authored-by: Abhi Yerra <abhi@berkeley.edu>
1 parent 602ebf6 commit 17e7358

File tree

3 files changed

+63
-0
lines changed

3 files changed

+63
-0
lines changed

cluster.tf

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,11 +38,43 @@ resource "aws_eks_cluster" "cluster" {
3838
}
3939
}
4040
}
41+
# Compute Config (conditional setup for Auto Mode)
42+
dynamic "compute_config" {
43+
for_each = var.eks_auto_mode_enabled ? [1] : []
44+
content {
45+
enabled = true
46+
node_pools = ["system"]
47+
node_role_arn = aws_iam_role.node.arn
48+
}
49+
}
50+
# Kubernetes Network Config (Auto Mode specific)
51+
dynamic "kubernetes_network_config" {
52+
for_each = var.eks_auto_mode_enabled ? [1] : []
53+
content {
54+
elastic_load_balancing {
55+
enabled = true
56+
}
57+
}
58+
}
59+
# Storage Config (Auto Mode specific)
60+
dynamic "storage_config" {
61+
for_each = var.eks_auto_mode_enabled ? [1] : []
62+
content {
63+
block_storage {
64+
enabled = true
65+
}
66+
}
67+
}
68+
4169
enabled_cluster_log_types = var.cluster_logging
4270

4371
depends_on = [
4472
aws_iam_role_policy_attachment.cluster-AmazonEKSClusterPolicy,
4573
aws_iam_role_policy_attachment.cluster-AmazonEKSServicePolicy,
74+
aws_iam_role_policy_attachment.cluster_AmazonEKSComputePolicy,
75+
aws_iam_role_policy_attachment.cluster_AmazonEKSBlockStoragePolicy,
76+
aws_iam_role_policy_attachment.cluster_AmazonEKSLoadBalancingPolicy,
77+
aws_iam_role_policy_attachment.cluster_AmazonEKSNetworkingPolicy,
4678
]
4779

4880
tags = local.tags
@@ -105,6 +137,26 @@ resource "aws_iam_role_policy_attachment" "cluster-AmazonEKSServicePolicy" {
105137
role = aws_iam_role.cluster.name
106138
}
107139

140+
resource "aws_iam_role_policy_attachment" "cluster_AmazonEKSComputePolicy" {
141+
policy_arn = "arn:aws:iam::aws:policy/AmazonEKSComputePolicy"
142+
role = aws_iam_role.cluster.name
143+
}
144+
145+
resource "aws_iam_role_policy_attachment" "cluster_AmazonEKSLoadBalancingPolicy" {
146+
policy_arn = "arn:aws:iam::aws:policy/AmazonEKSLoadBalancingPolicy"
147+
role = aws_iam_role.cluster.name
148+
}
149+
150+
resource "aws_iam_role_policy_attachment" "cluster_AmazonEKSNetworkingPolicy" {
151+
policy_arn = "arn:aws:iam::aws:policy/AmazonEKSNetworkingPolicy"
152+
role = aws_iam_role.cluster.name
153+
}
154+
155+
resource "aws_iam_role_policy_attachment" "cluster_AmazonEKSBlockStoragePolicy" {
156+
policy_arn = "arn:aws:iam::aws:policy/AmazonEKSBlockStoragePolicy"
157+
role = aws_iam_role.cluster.name
158+
}
159+
108160
resource "helm_release" "calico" {
109161
count = var.calico_enabled ? 1 : 0
110162

node_role.tf

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,11 @@ resource "aws_iam_role_policy_attachment" "node-AmazonEC2ContainerRegistryReadOn
3030
role = aws_iam_role.node.name
3131
}
3232

33+
resource "aws_iam_role_policy_attachment" "node_AmazonEKSWorkerNodeMinimalPolicy" {
34+
policy_arn = "arn:aws:iam::aws:policy/AmazonEKSWorkerNodeMinimalPolicy"
35+
role = aws_iam_role.node.name
36+
}
37+
3338
resource "aws_iam_role_policy_attachment" "node_role_policies" {
3439
count = length(var.node_role_policies)
3540
policy_arn = var.node_role_policies[count.index]

variables.tf

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -461,6 +461,12 @@ variable "s3_csi_bucket_names" {
461461
default = [""]
462462
}
463463

464+
variable "eks_auto_mode_enabled" {
465+
description = "Enable Auto Mode for EKS cluster"
466+
type = bool
467+
default = false
468+
}
469+
464470
variable "cloudwatch_observability_enabled" {
465471
description = "Enable or disable the CloudWatch Observability Add-on for EKS"
466472
type = bool

0 commit comments

Comments
 (0)