Skip to content

Commit c7a71d0

Browse files
authored
Merge pull request #6 from truefoundry/karpenter-controller-additional-policies
Added fix to pass additional policies to karpetner role arn
2 parents 8b7101f + 319af2f commit c7a71d0

File tree

5 files changed

+30
-18
lines changed

5 files changed

+30
-18
lines changed

README.md

+13-12
Original file line numberDiff line numberDiff line change
@@ -6,39 +6,40 @@ Truefoundry AWS Karpenter Module
66

77
| Name | Version |
88
|------|---------|
9-
| <a name="requirement_terraform"></a> [terraform](#requirement\_terraform) | >= 1.4 |
10-
| <a name="requirement_aws"></a> [aws](#requirement\_aws) | 5.17.0 |
9+
| <a name="requirement_terraform"></a> [terraform](#requirement\_terraform) | >= 1.8 |
10+
| <a name="requirement_aws"></a> [aws](#requirement\_aws) | 5.61.0 |
1111

1212
## Providers
1313

1414
| Name | Version |
1515
|------|---------|
16-
| <a name="provider_aws"></a> [aws](#provider\_aws) | 5.17.0 |
16+
| <a name="provider_aws"></a> [aws](#provider\_aws) | 5.61.0 |
1717

1818
## Modules
1919

2020
| Name | Source | Version |
2121
|------|--------|---------|
22-
| <a name="module_karpenter_irsa_role"></a> [karpenter\_irsa\_role](#module\_karpenter\_irsa\_role) | terraform-aws-modules/iam/aws//modules/iam-role-for-service-accounts-eks | 5.32.0 |
22+
| <a name="module_karpenter_irsa_role"></a> [karpenter\_irsa\_role](#module\_karpenter\_irsa\_role) | terraform-aws-modules/iam/aws//modules/iam-role-for-service-accounts-eks | 5.42.0 |
2323

2424
## Resources
2525

2626
| Name | Type |
2727
|------|------|
28-
| [aws_cloudwatch_event_rule.this](https://registry.terraform.io/providers/hashicorp/aws/5.17.0/docs/resources/cloudwatch_event_rule) | resource |
29-
| [aws_cloudwatch_event_target.this](https://registry.terraform.io/providers/hashicorp/aws/5.17.0/docs/resources/cloudwatch_event_target) | resource |
30-
| [aws_iam_instance_profile.karpenter](https://registry.terraform.io/providers/hashicorp/aws/5.17.0/docs/resources/iam_instance_profile) | resource |
31-
| [aws_iam_policy.sqs](https://registry.terraform.io/providers/hashicorp/aws/5.17.0/docs/resources/iam_policy) | resource |
32-
| [aws_sqs_queue.karpenter](https://registry.terraform.io/providers/hashicorp/aws/5.17.0/docs/resources/sqs_queue) | resource |
33-
| [aws_sqs_queue_policy.karpenter](https://registry.terraform.io/providers/hashicorp/aws/5.17.0/docs/resources/sqs_queue_policy) | resource |
34-
| [aws_iam_policy_document.node_termination_queue](https://registry.terraform.io/providers/hashicorp/aws/5.17.0/docs/data-sources/iam_policy_document) | data source |
35-
| [aws_iam_policy_document.sqs](https://registry.terraform.io/providers/hashicorp/aws/5.17.0/docs/data-sources/iam_policy_document) | data source |
28+
| [aws_cloudwatch_event_rule.this](https://registry.terraform.io/providers/hashicorp/aws/5.61.0/docs/resources/cloudwatch_event_rule) | resource |
29+
| [aws_cloudwatch_event_target.this](https://registry.terraform.io/providers/hashicorp/aws/5.61.0/docs/resources/cloudwatch_event_target) | resource |
30+
| [aws_iam_instance_profile.karpenter](https://registry.terraform.io/providers/hashicorp/aws/5.61.0/docs/resources/iam_instance_profile) | resource |
31+
| [aws_iam_policy.sqs](https://registry.terraform.io/providers/hashicorp/aws/5.61.0/docs/resources/iam_policy) | resource |
32+
| [aws_sqs_queue.karpenter](https://registry.terraform.io/providers/hashicorp/aws/5.61.0/docs/resources/sqs_queue) | resource |
33+
| [aws_sqs_queue_policy.karpenter](https://registry.terraform.io/providers/hashicorp/aws/5.61.0/docs/resources/sqs_queue_policy) | resource |
34+
| [aws_iam_policy_document.node_termination_queue](https://registry.terraform.io/providers/hashicorp/aws/5.61.0/docs/data-sources/iam_policy_document) | data source |
35+
| [aws_iam_policy_document.sqs](https://registry.terraform.io/providers/hashicorp/aws/5.61.0/docs/data-sources/iam_policy_document) | data source |
3636

3737
## Inputs
3838

3939
| Name | Description | Type | Default | Required |
4040
|------|-------------|------|---------|:--------:|
4141
| <a name="input_additional_controller_node_iam_role_arns"></a> [additional\_controller\_node\_iam\_role\_arns](#input\_additional\_controller\_node\_iam\_role\_arns) | The additional node iam roles to be used by karpenter | `list(string)` | `[]` | no |
42+
| <a name="input_additional_controller_role_policies_arn"></a> [additional\_controller\_role\_policies\_arn](#input\_additional\_controller\_role\_policies\_arn) | arn of dditional policies to attach to the karpenter controller role (Example {'x-policy' = arn:aws:iam::123456789012:policy/x-policy}) | `any` | `{}` | no |
4243
| <a name="input_cluster_name"></a> [cluster\_name](#input\_cluster\_name) | Cluster Name to install karpenter | `string` | n/a | yes |
4344
| <a name="input_controller_node_iam_role_arn"></a> [controller\_node\_iam\_role\_arn](#input\_controller\_node\_iam\_role\_arn) | The node iam role for the initial node group to be used by karpenter | `string` | n/a | yes |
4445
| <a name="input_controller_nodegroup_name"></a> [controller\_nodegroup\_name](#input\_controller\_nodegroup\_name) | The initial nodegroup name | `string` | n/a | yes |

locals.tf

+6
Original file line numberDiff line numberDiff line change
@@ -41,4 +41,10 @@ locals {
4141
}
4242
}
4343
}
44+
karpenter_controller_role_policy_arns = merge(
45+
{
46+
"sqs_policy" = aws_iam_policy.sqs.arn
47+
},
48+
var.additional_controller_role_policies_arn
49+
)
4450
}

main.tf

+2-4
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
module "karpenter_irsa_role" {
44
source = "terraform-aws-modules/iam/aws//modules/iam-role-for-service-accounts-eks"
5-
version = "5.32.0"
5+
version = "5.42.0"
66
role_name = "${var.cluster_name}-karpenter"
77
attach_karpenter_controller_policy = true
88

@@ -12,9 +12,7 @@ module "karpenter_irsa_role" {
1212
attach_vpc_cni_policy = true
1313
vpc_cni_enable_ipv4 = true
1414

15-
role_policy_arns = {
16-
"sqs_policy" = aws_iam_policy.sqs.arn
17-
}
15+
role_policy_arns = local.karpenter_controller_role_policy_arns
1816

1917
oidc_providers = {
2018
main = {

variables.tf

+7
Original file line numberDiff line numberDiff line change
@@ -29,10 +29,17 @@ variable "additional_controller_node_iam_role_arns" {
2929
default = []
3030
}
3131

32+
variable "additional_controller_role_policies_arn" {
33+
description = "arn of dditional policies to attach to the karpenter controller role (Example {'x-policy' = arn:aws:iam::123456789012:policy/x-policy})"
34+
type = any
35+
default = {}
36+
}
37+
3238
variable "controller_nodegroup_name" {
3339
description = "The initial nodegroup name"
3440
type = string
3541
}
42+
3643
variable "sqs_enable_encryption" {
3744
description = "Enable Server side encryption for SQS"
3845
type = bool

versions.tf

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
terraform {
2-
required_version = ">= 1.4"
2+
required_version = ">= 1.8"
33
required_providers {
44
aws = {
55
source = "hashicorp/aws"
6-
version = "5.17.0"
6+
version = "5.61.0"
77
}
88
}
99
}

0 commit comments

Comments
 (0)