diff --git a/README.md b/README.md index 9b59b4d..433db45 100644 --- a/README.md +++ b/README.md @@ -36,7 +36,7 @@ The module deploys Karpenter needed AWS resources, namely in IAM. It copies the | Name | Source | Version | |------|--------|---------| | [images](#module\_images) | git::https://github.e.it.census.gov/terraform-modules/aws-ecr-copy-images.git | tf-upgrade | -| [karpenter\_resources](#module\_karpenter\_resources) | git::https://github.e.it.census.gov/SCT-Engineering/terraform-aws-eks.git//modules/karpenter | v21.15.1 | +| [karpenter\_resources](#module\_karpenter\_resources) | git::https://github.e.it.census.gov/SCT-Engineering/terraform-aws-eks.git//modules/karpenter | v21.23.0 | ## Resources @@ -57,6 +57,7 @@ The module deploys Karpenter needed AWS resources, namely in IAM. It copies the | Name | Description | Type | Default | Required | |------|-------------|------|---------|:--------:| | [account\_id](#input\_account\_id) | aws account number | `string` | `""` | no | +| [ami\_type](#input\_ami\_type) | AMI type to use for the Karpenter node group | `string` | `"AL2023_x86_64"` | no | | [cluster\_endpoint](#input\_cluster\_endpoint) | Endpoint for your Kubernetes API server | `string` | n/a | yes | | [cluster\_name](#input\_cluster\_name) | EKS cluster name name component used through out the EKS cluster describing its purpose (ex: dice-dev) | `string` | n/a | yes | | [create\_spot\_service\_linked\_role](#input\_create\_spot\_service\_linked\_role) | Whether to create the service-linked role for EC2 Spot (required for Karpenter spot instances) | `bool` | `false` | no | diff --git a/main.tf b/main.tf index bfdc816..0c4692c 100644 --- a/main.tf +++ b/main.tf @@ -1,6 +1,7 @@ locals { - amd_ami_family = "Bottlerocket" - amd_ami_alias = "bottlerocket@latest" + ami_type_family = upper(split("_", var.ami_type)[0]) + amd_ami_family = local.ami_type_family == "BOTTLEROCKET" ? "Bottlerocket" : local.ami_type_family + amd_ami_alias = lower(format("%v@latest", local.amd_ami_family)) # Calculate the role name with prefix role_name_raw = format("%v%v-%v", local.prefixes["eks-role"], var.cluster_name, "karpenter") @@ -23,7 +24,7 @@ locals { # Replicating from here: https://github.e.it.census.gov/SCT-Engineering/terraform-aws-eks/tree/master/modules/karpenter # Karpenter IRSA roles and policies module "karpenter_resources" { - source = "git::https://github.e.it.census.gov/SCT-Engineering/terraform-aws-eks.git//modules/karpenter?ref=v21.15.1" + source = "git::https://github.e.it.census.gov/SCT-Engineering/terraform-aws-eks.git//modules/karpenter?ref=v21.23.0" cluster_name = var.cluster_name create_access_entry = true @@ -42,8 +43,6 @@ module "karpenter_resources" { CloudWatchAgentServerPolicy = format("arn:%v:iam::aws:%v", data.aws_arn.current.partition, "policy/CloudWatchAgentServerPolicy") } - - tags = var.tags } # Install Karpenter diff --git a/variables.tf b/variables.tf index 98c5fd5..86661f8 100644 --- a/variables.tf +++ b/variables.tf @@ -97,3 +97,9 @@ variable "create_spot_service_linked_role" { type = bool default = false } + +variable "ami_type" { + description = "AMI type to use for the Karpenter node group" + type = string + default = "AL2023_x86_64" +}