diff --git a/modules/karpenter/README.md b/modules/karpenter/README.md
index e3082158..00f724ac 100644
--- a/modules/karpenter/README.md
+++ b/modules/karpenter/README.md
@@ -135,7 +135,8 @@ No modules.
| [create\_iam\_role](#input\_create\_iam\_role) | Determines whether an IAM role is created | `bool` | `true` | no |
| [create\_instance\_profile](#input\_create\_instance\_profile) | Whether to create an IAM instance profile | `bool` | `false` | no |
| [create\_node\_iam\_role](#input\_create\_node\_iam\_role) | Determines whether an IAM role is created or to use an existing IAM role | `bool` | `true` | no |
-| [enable\_irsa](#input\_enable\_irsa) | Determines whether to enable support IAM role for service account | `bool` | `false` | no |
+| [enable\_irsa](#input\_enable\_irsa) | Determines whether to enable support for IAM role for service accounts | `bool` | `false` | no |
+| [enable\_pod\_identity](#input\_enable\_pod\_identity) | Determines whether to enable support for EKS pod identity | `bool` | `true` | no |
| [enable\_spot\_termination](#input\_enable\_spot\_termination) | Determines whether to enable native spot termination handling | `bool` | `true` | no |
| [iam\_policy\_description](#input\_iam\_policy\_description) | IAM policy description | `string` | `"Karpenter controller IAM policy"` | no |
| [iam\_policy\_name](#input\_iam\_policy\_name) | Name of the IAM policy | `string` | `"KarpenterController"` | no |
diff --git a/modules/karpenter/main.tf b/modules/karpenter/main.tf
index dfd6042e..4fc3ef02 100644
--- a/modules/karpenter/main.tf
+++ b/modules/karpenter/main.tf
@@ -22,15 +22,19 @@ data "aws_iam_policy_document" "controller_assume_role" {
count = local.create_iam_role ? 1 : 0
# Pod Identity
- statement {
- actions = [
- "sts:AssumeRole",
- "sts:TagSession",
- ]
+ dynamic "statement" {
+ for_each = var.enable_pod_identity ? [1] : []
- principals {
- type = "Service"
- identifiers = ["pods.eks.amazonaws.com"]
+ content {
+ actions = [
+ "sts:AssumeRole",
+ "sts:TagSession",
+ ]
+
+ principals {
+ type = "Service"
+ identifiers = ["pods.eks.amazonaws.com"]
+ }
}
}
diff --git a/modules/karpenter/variables.tf b/modules/karpenter/variables.tf
index 3af82d4f..8d6bfe74 100644
--- a/modules/karpenter/variables.tf
+++ b/modules/karpenter/variables.tf
@@ -104,12 +104,18 @@ variable "ami_id_ssm_parameter_arns" {
default = []
}
+variable "enable_pod_identity" {
+ description = "Determines whether to enable support for EKS pod identity"
+ type = bool
+ default = true
+}
+
################################################################################
# IAM Role for Service Account (IRSA)
################################################################################
variable "enable_irsa" {
- description = "Determines whether to enable support IAM role for service account"
+ description = "Determines whether to enable support for IAM role for service accounts"
type = bool
default = false
}