Skip to content

Commit ab5cbda

Browse files
Sohan/karpenter (#416)
* adding bottlerocket image * adding bottlerocket image * adding bottlerocket image * adding bottlerocket image * adding bottlerocket image * adding bottlerocket image * adding bottlerocket image * Clean up --------- Co-authored-by: Abhi Yerra <[email protected]>
1 parent 3376b9c commit ab5cbda

File tree

3 files changed

+33
-3
lines changed

3 files changed

+33
-3
lines changed

karpenter.tf

+21-2
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,9 @@ resource "helm_release" "karpenter_crd" {
7272
version = var.karpenter_version
7373
}
7474

75+
76+
77+
7578
resource "null_resource" "karpenter_ec2_node_class_apply" {
7679
count = var.karpenter_enabled ? 1 : 0
7780

@@ -83,15 +86,31 @@ kind: EC2NodeClass
8386
metadata:
8487
name: default
8588
spec:
86-
amiFamily: AL2
89+
metadataOptions:
90+
httpEndpoint: enabled
91+
httpProtocolIPv6: disabled
92+
httpPutResponseHopLimit: 1
93+
httpTokens: optional
94+
blockDeviceMappings:
95+
- deviceName: /dev/xvda
96+
ebs:
97+
volumeSize: 20Gi
98+
volumeType: gp3
99+
encrypted: true
100+
- deviceName: /dev/xvdb
101+
ebs:
102+
volumeSize: 50Gi
103+
volumeType: gp3
104+
encrypted: true
105+
amiFamily: ${var.karpenter_ami_family}
87106
role: ${aws_iam_role.node.name}
88107
securityGroupSelectorTerms:
89108
- id: ${aws_eks_cluster.cluster.vpc_config[0].cluster_security_group_id}
90109
subnetSelectorTerms:
91110
- id: ${aws_subnet.public[0].id}
92111
- id: ${aws_subnet.public[1].id}
93112
amiSelectorTerms:
94-
- name: "amazon-eks-node-${var.cluster_version}-*"
113+
- id: "${var.karpenter_ami_family == "AL2" ? data.aws_ssm_parameter.eks_al2_ami.value : data.aws_ssm_parameter.bottlerocket_ami.value}"
95114
EOF
96115
EOT
97116
}

node_groups.tf

+5-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,11 @@
1-
data "aws_ssm_parameter" "bottlerocket_image_id" {
1+
data "aws_ssm_parameter" "bottlerocket_ami" {
22
name = "/aws/service/bottlerocket/aws-k8s-${var.cluster_version}/x86_64/latest/image_id"
33
}
44

5+
data "aws_ssm_parameter" "eks_al2_ami" {
6+
name = "/aws/service/eks/optimized-ami/${var.cluster_version}/amazon-linux-2/recommended/image_id"
7+
}
8+
59
module "eks_mng_bottlerocket_custom_ami" {
610
source = "github.com/terraform-aws-modules/terraform-aws-eks/modules/_user_data"
711

variables.tf

+7
Original file line numberDiff line numberDiff line change
@@ -390,6 +390,12 @@ variable "karpenter_version" {
390390
description = "The version of the karpenter helm chart"
391391
}
392392

393+
variable "karpenter_ami_family" {
394+
description = "AMI family to use for the EC2 Node Class. Possible values: AL2 or Bottlerocket"
395+
type = string
396+
default = "Bottlerocket"
397+
}
398+
393399
variable "csi_secrets_store_enabled" {
394400
default = false
395401
description = "Specify whether the CSI driver is enabled on the EKS cluster"
@@ -449,3 +455,4 @@ variable "s3_csi_bucket_names" {
449455
type = list(string)
450456
default = [""]
451457
}
458+

0 commit comments

Comments
 (0)