Skip to content

Commit 84effa0

Browse files
authored
fix: Pass nodeadm user data variables from root module down to nodegroup sub-modules (#2981)
1 parent 1627231 commit 84effa0

File tree

8 files changed

+59
-1
lines changed

8 files changed

+59
-1
lines changed

.pre-commit-config.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
repos:
22
- repo: https://github.com/antonbabenko/pre-commit-terraform
3-
rev: v1.88.1
3+
rev: v1.88.2
44
hooks:
55
- id: terraform_fmt
66
- id: terraform_docs

modules/eks-managed-node-group/README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,8 @@ module "eks_managed_node_group" {
108108
| <a name="input_bootstrap_extra_args"></a> [bootstrap\_extra\_args](#input\_bootstrap\_extra\_args) | Additional arguments passed to the bootstrap script. When `platform` = `bottlerocket`; these are additional [settings](https://github.com/bottlerocket-os/bottlerocket#settings) that are provided to the Bottlerocket user data | `string` | `""` | no |
109109
| <a name="input_capacity_reservation_specification"></a> [capacity\_reservation\_specification](#input\_capacity\_reservation\_specification) | Targeting for EC2 capacity reservations | `any` | `{}` | no |
110110
| <a name="input_capacity_type"></a> [capacity\_type](#input\_capacity\_type) | Type of capacity associated with the EKS Node Group. Valid values: `ON_DEMAND`, `SPOT` | `string` | `"ON_DEMAND"` | no |
111+
| <a name="input_cloudinit_post_nodeadm"></a> [cloudinit\_post\_nodeadm](#input\_cloudinit\_post\_nodeadm) | Array of cloud-init document parts that are created after the nodeadm document part | <pre>list(object({<br> content = string<br> content_type = optional(string)<br> filename = optional(string)<br> merge_type = optional(string)<br> }))</pre> | `[]` | no |
112+
| <a name="input_cloudinit_pre_nodeadm"></a> [cloudinit\_pre\_nodeadm](#input\_cloudinit\_pre\_nodeadm) | Array of cloud-init document parts that are created before the nodeadm document part | <pre>list(object({<br> content = string<br> content_type = optional(string)<br> filename = optional(string)<br> merge_type = optional(string)<br> }))</pre> | `[]` | no |
111113
| <a name="input_cluster_auth_base64"></a> [cluster\_auth\_base64](#input\_cluster\_auth\_base64) | Base64 encoded CA of associated EKS cluster | `string` | `""` | no |
112114
| <a name="input_cluster_endpoint"></a> [cluster\_endpoint](#input\_cluster\_endpoint) | Endpoint of associated EKS cluster | `string` | `""` | no |
113115
| <a name="input_cluster_ip_family"></a> [cluster\_ip\_family](#input\_cluster\_ip\_family) | The IP family used to assign Kubernetes pod and service addresses. Valid values are `ipv4` (default) and `ipv6` | `string` | `"ipv4"` | no |

modules/eks-managed-node-group/main.tf

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,9 @@ module "user_data" {
2222
post_bootstrap_user_data = var.post_bootstrap_user_data
2323
bootstrap_extra_args = var.bootstrap_extra_args
2424
user_data_template_path = var.user_data_template_path
25+
26+
cloudinit_pre_nodeadm = var.cloudinit_pre_nodeadm
27+
cloudinit_post_nodeadm = var.cloudinit_post_nodeadm
2528
}
2629

2730
################################################################################

modules/eks-managed-node-group/variables.tf

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,28 @@ variable "user_data_template_path" {
8181
default = ""
8282
}
8383

84+
variable "cloudinit_pre_nodeadm" {
85+
description = "Array of cloud-init document parts that are created before the nodeadm document part"
86+
type = list(object({
87+
content = string
88+
content_type = optional(string)
89+
filename = optional(string)
90+
merge_type = optional(string)
91+
}))
92+
default = []
93+
}
94+
95+
variable "cloudinit_post_nodeadm" {
96+
description = "Array of cloud-init document parts that are created after the nodeadm document part"
97+
type = list(object({
98+
content = string
99+
content_type = optional(string)
100+
filename = optional(string)
101+
merge_type = optional(string)
102+
}))
103+
default = []
104+
}
105+
84106
################################################################################
85107
# Launch template
86108
################################################################################

modules/self-managed-node-group/README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,8 @@ module "self_managed_node_group" {
8989
| <a name="input_bootstrap_extra_args"></a> [bootstrap\_extra\_args](#input\_bootstrap\_extra\_args) | Additional arguments passed to the bootstrap script. When `platform` = `bottlerocket`; these are additional [settings](https://github.com/bottlerocket-os/bottlerocket#settings) that are provided to the Bottlerocket user data | `string` | `""` | no |
9090
| <a name="input_capacity_rebalance"></a> [capacity\_rebalance](#input\_capacity\_rebalance) | Indicates whether capacity rebalance is enabled | `bool` | `null` | no |
9191
| <a name="input_capacity_reservation_specification"></a> [capacity\_reservation\_specification](#input\_capacity\_reservation\_specification) | Targeting for EC2 capacity reservations | `any` | `{}` | no |
92+
| <a name="input_cloudinit_post_nodeadm"></a> [cloudinit\_post\_nodeadm](#input\_cloudinit\_post\_nodeadm) | Array of cloud-init document parts that are created after the nodeadm document part | <pre>list(object({<br> content = string<br> content_type = optional(string)<br> filename = optional(string)<br> merge_type = optional(string)<br> }))</pre> | `[]` | no |
93+
| <a name="input_cloudinit_pre_nodeadm"></a> [cloudinit\_pre\_nodeadm](#input\_cloudinit\_pre\_nodeadm) | Array of cloud-init document parts that are created before the nodeadm document part | <pre>list(object({<br> content = string<br> content_type = optional(string)<br> filename = optional(string)<br> merge_type = optional(string)<br> }))</pre> | `[]` | no |
9294
| <a name="input_cluster_auth_base64"></a> [cluster\_auth\_base64](#input\_cluster\_auth\_base64) | Base64 encoded CA of associated EKS cluster | `string` | `""` | no |
9395
| <a name="input_cluster_endpoint"></a> [cluster\_endpoint](#input\_cluster\_endpoint) | Endpoint of associated EKS cluster | `string` | `""` | no |
9496
| <a name="input_cluster_ip_family"></a> [cluster\_ip\_family](#input\_cluster\_ip\_family) | The IP family used to assign Kubernetes pod and service addresses. Valid values are `ipv4` (default) and `ipv6` | `string` | `"ipv4"` | no |

modules/self-managed-node-group/main.tf

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,9 @@ module "user_data" {
3535
post_bootstrap_user_data = var.post_bootstrap_user_data
3636
bootstrap_extra_args = var.bootstrap_extra_args
3737
user_data_template_path = var.user_data_template_path
38+
39+
cloudinit_pre_nodeadm = var.cloudinit_pre_nodeadm
40+
cloudinit_post_nodeadm = var.cloudinit_post_nodeadm
3841
}
3942

4043
################################################################################

modules/self-managed-node-group/variables.tf

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,28 @@ variable "user_data_template_path" {
7474
default = ""
7575
}
7676

77+
variable "cloudinit_pre_nodeadm" {
78+
description = "Array of cloud-init document parts that are created before the nodeadm document part"
79+
type = list(object({
80+
content = string
81+
content_type = optional(string)
82+
filename = optional(string)
83+
merge_type = optional(string)
84+
}))
85+
default = []
86+
}
87+
88+
variable "cloudinit_post_nodeadm" {
89+
description = "Array of cloud-init document parts that are created after the nodeadm document part"
90+
type = list(object({
91+
content = string
92+
content_type = optional(string)
93+
filename = optional(string)
94+
merge_type = optional(string)
95+
}))
96+
default = []
97+
}
98+
7799
################################################################################
78100
# Launch template
79101
################################################################################

node_groups.tf

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -339,6 +339,8 @@ module "eks_managed_node_group" {
339339
post_bootstrap_user_data = try(each.value.post_bootstrap_user_data, var.eks_managed_node_group_defaults.post_bootstrap_user_data, "")
340340
bootstrap_extra_args = try(each.value.bootstrap_extra_args, var.eks_managed_node_group_defaults.bootstrap_extra_args, "")
341341
user_data_template_path = try(each.value.user_data_template_path, var.eks_managed_node_group_defaults.user_data_template_path, "")
342+
cloudinit_pre_nodeadm = try(each.value.cloudinit_pre_nodeadm, var.eks_managed_node_group_defaults.cloudinit_pre_nodeadm, [])
343+
cloudinit_post_nodeadm = try(each.value.cloudinit_post_nodeadm, var.eks_managed_node_group_defaults.cloudinit_post_nodeadm, [])
342344

343345
# Launch Template
344346
create_launch_template = try(each.value.create_launch_template, var.eks_managed_node_group_defaults.create_launch_template, true)
@@ -472,6 +474,8 @@ module "self_managed_node_group" {
472474
post_bootstrap_user_data = try(each.value.post_bootstrap_user_data, var.self_managed_node_group_defaults.post_bootstrap_user_data, "")
473475
bootstrap_extra_args = try(each.value.bootstrap_extra_args, var.self_managed_node_group_defaults.bootstrap_extra_args, "")
474476
user_data_template_path = try(each.value.user_data_template_path, var.self_managed_node_group_defaults.user_data_template_path, "")
477+
cloudinit_pre_nodeadm = try(each.value.cloudinit_pre_nodeadm, var.self_managed_node_group_defaults.cloudinit_pre_nodeadm, [])
478+
cloudinit_post_nodeadm = try(each.value.cloudinit_post_nodeadm, var.self_managed_node_group_defaults.cloudinit_post_nodeadm, [])
475479

476480
# Launch Template
477481
create_launch_template = try(each.value.create_launch_template, var.self_managed_node_group_defaults.create_launch_template, true)

0 commit comments

Comments
 (0)