Skip to content

Commit

Permalink
Merge pull request #27 from SCT-Engineering/update21.4.0
Browse files Browse the repository at this point in the history
Update to latest release
  • Loading branch information
nangu001 committed Jan 20, 2026
2 parents 6a3e25f + f618e61 commit 37a1a5c
Show file tree
Hide file tree
Showing 4 changed files with 35 additions and 27 deletions.
8 changes: 5 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,8 @@ The module deploys Karpenter needed AWS resources, namely in IAM. It copies the

| Name | Version |
|------|---------|
| <a name="provider_aws"></a> [aws](#provider\_aws) | 5.100.0 |
| <a name="provider_aws.eecr"></a> [aws.eecr](#provider\_aws.eecr) | 5.100.0 |
| <a name="provider_aws"></a> [aws](#provider\_aws) | 6.15.0 |
| <a name="provider_aws.eecr"></a> [aws.eecr](#provider\_aws.eecr) | 6.15.0 |
| <a name="provider_helm"></a> [helm](#provider\_helm) | 3.0.2 |
| <a name="provider_null"></a> [null](#provider\_null) | 3.2.4 |

Expand All @@ -36,12 +36,13 @@ The module deploys Karpenter needed AWS resources, namely in IAM. It copies the
| Name | Source | Version |
|------|--------|---------|
| <a name="module_images"></a> [images](#module\_images) | git::https://github.e.it.census.gov/terraform-modules/aws-ecr-copy-images.git | tf-upgrade |
| <a name="module_karpenter_resources"></a> [karpenter\_resources](#module\_karpenter\_resources) | git::https://github.e.it.census.gov/SCT-Engineering/terraform-aws-eks.git//modules/karpenter | v20.37.2 |
| <a name="module_karpenter_resources"></a> [karpenter\_resources](#module\_karpenter\_resources) | git::https://github.e.it.census.gov/SCT-Engineering/terraform-aws-eks.git//modules/karpenter | v21.11.0 |

## Resources

| Name | Type |
|------|------|
| [aws_iam_service_linked_role.spot](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/iam_service_linked_role) | resource |
| [helm_release.karpenter](https://registry.terraform.io/providers/hashicorp/helm/latest/docs/resources/release) | resource |
| [helm_release.nodepool_resources](https://registry.terraform.io/providers/hashicorp/helm/latest/docs/resources/release) | resource |
| [null_resource.git_version](https://registry.terraform.io/providers/hashicorp/null/latest/docs/resources/resource) | resource |
Expand All @@ -58,6 +59,7 @@ The module deploys Karpenter needed AWS resources, namely in IAM. It copies the
| <a name="input_account_id"></a> [account\_id](#input\_account\_id) | aws account number | `string` | `""` | no |
| <a name="input_cluster_endpoint"></a> [cluster\_endpoint](#input\_cluster\_endpoint) | Endpoint for your Kubernetes API server | `string` | n/a | yes |
| <a name="input_cluster_name"></a> [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 |
| <a name="input_create_spot_service_linked_role"></a> [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 |
| <a name="input_eecr_info"></a> [eecr\_info](#input\_eecr\_info) | Enterprise ECR source information | <pre>object({<br/> account_id = string<br/> alias = string<br/> profile = string<br/> region = string<br/> })</pre> | <pre>{<br/> "account_id": "269222635945",<br/> "alias": "lab-gov-shared-nonprod",<br/> "profile": "269222635945-lab-gov-shared-nonprod",<br/> "region": "us-gov-east-1"<br/>}</pre> | no |
| <a name="input_karpenter_helm_chart"></a> [karpenter\_helm\_chart](#input\_karpenter\_helm\_chart) | Which helm chart of karpenter | `string` | `"1.1.1"` | no |
| <a name="input_karpenter_helm_repo"></a> [karpenter\_helm\_repo](#input\_karpenter\_helm\_repo) | Helm repo for official karpenter chart | `string` | `"oci://public.ecr.aws/karpenter"` | no |
Expand Down
11 changes: 6 additions & 5 deletions copy_images.tf
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,12 @@ locals {

image_config = [
{
enabled = true
dest_path = null
name = "karpenter/controller"
source_image = "karpenter/controller"
source_registry = format("%v/%v", local.ent_ecr_source, "public-ecr")
enabled = true
dest_path = null
name = "karpenter/controller"
source_image = "opensource/aws/karpenter/controller"
# source_registry = "public.ecr.aws"
source_registry = format("%v/%v", local.ent_ecr_source, "ironbank")
source_tag = var.karpenter_tag
tag = var.karpenter_tag
},
Expand Down
35 changes: 16 additions & 19 deletions main.tf
Original file line number Diff line number Diff line change
Expand Up @@ -21,18 +21,14 @@ 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=v20.37.2"
source = "git::https://github.e.it.census.gov/SCT-Engineering/terraform-aws-eks.git//modules/karpenter?ref=v21.11.0"

cluster_name = var.cluster_name
create_access_entry = true
create_instance_profile = true
create_node_iam_role = true
create_pod_identity_association = true
enable_irsa = true
irsa_namespace_service_accounts = ["${var.namespace}:karpenter"]
irsa_oidc_provider_arn = var.oidc_provider_arn
enable_pod_identity = true
enable_v1_permissions = true
namespace = var.namespace
node_iam_role_name = local.node_iam_role_name
queue_name = local.queue_name
rule_name_prefix = local.rule_name_prefix
Expand Down Expand Up @@ -60,7 +56,7 @@ data "aws_ecr_image" "karpenter_image" {
resource "helm_release" "karpenter" {
depends_on = [
data.aws_ecr_image.karpenter_image,
# aws_iam_service_linked_role.spot
aws_iam_service_linked_role.spot
]
name = "karpenter"
chart = "karpenter"
Expand Down Expand Up @@ -117,15 +113,16 @@ resource "helm_release" "nodepool_resources" {
}

# Create service-linked role for EC2 Spot (required for Karpenter spot instances)
# resource "aws_iam_service_linked_role" "spot" {
# aws_service_name = "spot.amazonaws.com"
# description = "Service-linked role for EC2 Spot instances used by Karpenter"

# # This will only create the role if it doesn't already exist
# # If it exists, Terraform will import the existing role
# lifecycle {
# ignore_changes = [
# description,
# ]
# }
# }
resource "aws_iam_service_linked_role" "spot" {
count = var.create_spot_service_linked_role ? 1 : 0
aws_service_name = "spot.amazonaws.com"
description = "Service-linked role for EC2 Spot instances used by Karpenter"

# This will only create the role if it doesn't already exist
# If it exists, Terraform will import the existing role
lifecycle {
ignore_changes = [
description,
]
}
}
8 changes: 8 additions & 0 deletions variables.tf
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
# tflint-ignore: terraform_unused_declarations
variable "account_id" {
description = "aws account number"
type = string
Expand All @@ -14,6 +15,7 @@ variable "cluster_name" {
type = string
}

# tflint-ignore: terraform_unused_declarations
variable "eecr_info" {
description = "Enterprise ECR source information"
type = object({
Expand Down Expand Up @@ -89,3 +91,9 @@ variable "tags" {
type = map(string)
default = {}
}

variable "create_spot_service_linked_role" {
description = "Whether to create the service-linked role for EC2 Spot (required for Karpenter spot instances)"
type = bool
default = false
}

0 comments on commit 37a1a5c

Please sign in to comment.