diff --git a/terraform/modules/provision-aws/locals/k8s-locals.tf b/terraform/modules/provision-aws/locals/k8s-locals.tf index dea85a4..a12703b 100644 --- a/terraform/modules/provision-aws/locals/k8s-locals.tf +++ b/terraform/modules/provision-aws/locals/k8s-locals.tf @@ -4,6 +4,6 @@ locals { server = data.aws_eks_cluster.main.endpoint zone_id = aws_route53_zone.cluster.zone_id zone_role_arn = aws_iam_role.external_dns.arn - launch_template_name = data.aws_launch_template.eks_launch_template.name + launch_template_name = data.aws_launch_template.eks_launch_template.id vpc_cidr_range = module.vpc.vpc_cidr_block } diff --git a/terraform/modules/provision-aws/managed-node-groups.tf b/terraform/modules/provision-aws/managed-node-groups.tf index 8c275e4..bf85f0d 100644 --- a/terraform/modules/provision-aws/managed-node-groups.tf +++ b/terraform/modules/provision-aws/managed-node-groups.tf @@ -61,7 +61,7 @@ resource "helm_release" "karpenter" { name = "karpenter" repository = "https://charts.karpenter.sh" chart = "karpenter" - version = "v0.8.0" + version = "v0.9.1" dynamic "set" { for_each = { diff --git a/terraform/modules/provision-k8s/k8s-autoscaler.tf b/terraform/modules/provision-k8s/k8s-autoscaler.tf index 4760571..f8267e8 100644 --- a/terraform/modules/provision-k8s/k8s-autoscaler.tf +++ b/terraform/modules/provision-k8s/k8s-autoscaler.tf @@ -21,9 +21,9 @@ resource "helm_release" "autoscaler-provisioner" { resources: cpu: 1000 provider: - launchTemplate: + launchTemplate: ${local.launch_template_name} subnetSelector: - karpenter.sh/discovery: + karpenter.sh/discovery: ${local.cluster_name} ttlSecondsAfterEmpty: 30 EOF ] diff --git a/test.sh b/test.sh index 21a977e..a8bb213 100755 --- a/test.sh +++ b/test.sh @@ -224,6 +224,19 @@ else echo FAIL fi +# Test 4 - autoscaling works +echo -n "Provisioning a resource too big for m4.xlarge" +kubectl apply -f test_specs/autoscaling/pod.yml + +echo -n "Waiting for Pod to start..." +if (kubectl wait --for=condition=ready --timeout=600s pod large-app); then + echo PASS +else + retval=1 + echo FAIL +fi + + ####### ## From here down, tests need a KUBECONFIG with an admin user to complete correctly, so let's make a new one # Grab the name of the cluster for use with the aws CLI diff --git a/test_specs/autoscaling/pod.yml b/test_specs/autoscaling/pod.yml new file mode 100644 index 0000000..53fb7fd --- /dev/null +++ b/test_specs/autoscaling/pod.yml @@ -0,0 +1,13 @@ +apiVersion: v1 +kind: Pod +metadata: + name: large-app +spec: + containers: + - name: large-app + image: busybox + resources: + requests: + cpu: "5000m" + limits: + cpu: "6000m"