From fb550193a8d0c2539c2e2fac2cf9763b3efeb193 Mon Sep 17 00:00:00 2001 From: "Matthew C. Morgan" Date: Tue, 3 Sep 2024 23:24:19 -0400 Subject: [PATCH] fix(main.tf): update node class to remove resource reservations for min scale --- ec2_node_class.yaml.tpl | 15 ++------------- main.tf | 34 +++++++++++++++++----------------- 2 files changed, 19 insertions(+), 30 deletions(-) diff --git a/ec2_node_class.yaml.tpl b/ec2_node_class.yaml.tpl index 4251292..74c4172 100644 --- a/ec2_node_class.yaml.tpl +++ b/ec2_node_class.yaml.tpl @@ -4,19 +4,9 @@ kind: EC2NodeClass metadata: name: ${cluster_name}-karpenter-node-class annotations: - kubernetes.io/description: "EC2NodeClass for running Bottlerocket nodes" + kubernetes.io/description: "EC2NodeClass for running ${amd_ami_family} nodes" spec: kubelet: - podsPerCore: 2 - maxPods: 20 - systemReserved: - cpu: 100m - memory: 100Mi - ephemeral-storage: 1Gi - kubeReserved: - cpu: 200m - memory: 100Mi - ephemeral-storage: 3Gi evictionHard: memory.available: 5% nodefs.available: 10% @@ -32,12 +22,11 @@ spec: evictionMaxPodGracePeriod: 60 imageGCHighThresholdPercent: 85 imageGCLowThresholdPercent: 80 - cpuCFSQuota: true # Required, resolves a default ami and userdata amiFamily: ${amd_ami_family} amiSelectorTerms: - - alias: bottlerocket@latest # Bottlerocket + - alias: ${amd_ami_alias}@latest # Bottlerocket # Required, discovers subnets to attach to instances # Each term in the array of subnetSelectorTerms is ORed together # Within a single term, all conditions are ANDed diff --git a/main.tf b/main.tf index 52f216c..8831008 100644 --- a/main.tf +++ b/main.tf @@ -152,22 +152,22 @@ resource "helm_release" "karpenter" { name = "controller.env[0].value" value = var.region } - set { - name = "resources.requests.cpu" - value = 1 - } - set { - name = "resources.requests.memory" - value = "1Gi" - } - set { - name = "resources.limits.cpu" - value = 1 - } - set { - name = "resources.limits.memory" - value = "1Gi" - } + # set { + # name = "resources.requests.cpu" + # value = 1 + # } + # set { + # name = "resources.requests.memory" + # value = "1Gi" + # } + # set { + # name = "resources.limits.cpu" + # value = 1 + # } + # set { + # name = "resources.limits.memory" + # value = "1Gi" + # } set { name = "serviceAccount.annotations.eks\\.amazonaws\\.com/role-arn" value = module.karpenter_resources.iam_role_arn @@ -192,7 +192,6 @@ resource "aws_iam_service_linked_role" "ec2_spot" { aws_service_name = "spot.amazonaws.com" } - # SHOULD PROBABLY PUT THESE OBJECTS INTO A HELM CHART # Create karpenter default resource "kubectl_manifest" "karpenter_ec2_node_class" { @@ -202,6 +201,7 @@ resource "kubectl_manifest" "karpenter_ec2_node_class" { yaml_body = templatefile("${path.module}/ec2_node_class.yaml.tpl", { cluster_name = var.cluster_name amd_ami_family = "Bottlerocket" + amd_ami_alias = "bottlerocket" }) }