Skip to content

Commit 1fab8e7

Browse files
authored
Release 5.2.0 (#61)
* Added custom ami functionality * Update main.tf
1 parent 9f7d622 commit 1fab8e7

File tree

6 files changed

+25
-11
lines changed

6 files changed

+25
-11
lines changed

examples/complete/README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@ No inputs.
6060
| <a name="output_cluster_oidc_issuer_url"></a> [cluster\_oidc\_issuer\_url](#output\_cluster\_oidc\_issuer\_url) | URL of the OpenID Connect identity provider on the EKS cluster. |
6161
| <a name="output_worker_iam_role_arn"></a> [worker\_iam\_role\_arn](#output\_worker\_iam\_role\_arn) | ARN of the IAM role assigned to the EKS worker nodes. |
6262
| <a name="output_worker_iam_role_name"></a> [worker\_iam\_role\_name](#output\_worker\_iam\_role\_name) | Name of the IAM role assigned to the EKS worker nodes. |
63+
| <a name="output_kms_key_arn"></a> [kms\_key\_arn](#output\_kms\_key\_arn) | ARN of the KMS key that is used by the EKS cluster. |
6364
| <a name="output_kms_policy_arn"></a> [kms\_policy\_arn](#output\_kms\_policy\_arn) | ARN of the KMS policy that is used by the EKS cluster. |
6465
| <a name="output_managed_ng_node_group_arn"></a> [managed\_ng\_node\_group\_arn](#output\_managed\_ng\_node\_group\_arn) | ARN for the nodegroup |
6566
| <a name="output_managed_ng_min_node"></a> [managed\_ng\_min\_node](#output\_managed\_ng\_min\_node) | Minimum node of managed node group |

examples/complete/main.tf

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,7 @@ module "vpc" {
139139

140140
module "eks" {
141141
source = "squareops/eks/aws"
142-
version = "5.1.1"
142+
version = "5.2.0"
143143
access_entry_enabled = true
144144
access_entries = {
145145
"example" = {
@@ -186,7 +186,7 @@ module "eks" {
186186

187187
module "managed_node_group_addons" {
188188
source = "squareops/eks/aws//modules/managed-nodegroup"
189-
version = "5.1.1"
189+
version = "5.2.0"
190190
depends_on = [module.vpc, module.eks]
191191
managed_ng_name = "Infra"
192192
managed_ng_min_size = 2
@@ -199,25 +199,26 @@ module "managed_node_group_addons" {
199199
managed_ng_ebs_volume_size = local.ebs_volume_size
200200
managed_ng_ebs_volume_type = "gp3"
201201
managed_ng_ebs_encrypted = true
202-
managed_ng_instance_types = ["t3a.large", "t2.large", "t2.xlarge", "t3.large", "m5.large"]
202+
managed_ng_instance_types = ["t3a.large", "t2.large", "t2.xlarge", "t3.large", "m5.large"] # Pass instance type according to the ami architecture.
203203
managed_ng_kms_policy_arn = module.eks.kms_policy_arn
204204
eks_cluster_name = module.eks.cluster_name
205-
aws_managed_node_group_arch = local.aws_managed_node_group_arch
206205
worker_iam_role_name = module.eks.worker_iam_role_name
207206
worker_iam_role_arn = module.eks.worker_iam_role_arn
208207
eks_nodes_keypair_name = module.key_pair_eks.key_pair_name
209208
managed_ng_pod_capacity = 90
210209
managed_ng_monitoring_enabled = true
211210
launch_template_name = local.launch_template_name
212-
enable_bottlerocket_ami = local.enable_bottlerocket_ami
211+
k8s_labels = {
212+
"Addons-Services" = "true"
213+
}
214+
tags = local.additional_aws_tags
215+
custom_ami_id = "" # Optional, if not passed terraform will automatically select the latest supported ami id
216+
aws_managed_node_group_arch = local.aws_managed_node_group_arch # optional if "custom_ami_id" is passed
217+
enable_bottlerocket_ami = local.enable_bottlerocket_ami # Set it to false if using Amazon Linux AMIs
213218
bottlerocket_node_config = {
214219
bottlerocket_eks_node_admin_container_enabled = false
215220
bottlerocket_eks_enable_control_container = true
216221
}
217-
k8s_labels = {
218-
"Addons-Services" = "true"
219-
}
220-
tags = local.additional_aws_tags
221222
}
222223

223224
module "fargate_profle" {

examples/complete/outputs.tf

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,11 @@ output "worker_iam_role_name" {
7878
value = module.eks.worker_iam_role_name
7979
}
8080

81+
output "kms_key_arn" {
82+
description = "ARN of the KMS key that is used by the EKS cluster."
83+
value = module.kms.key_arn
84+
}
85+
8186
output "kms_policy_arn" {
8287
description = "ARN of the KMS policy that is used by the EKS cluster."
8388
value = module.eks.kms_policy_arn

modules/managed-nodegroup/README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,7 @@ No modules.
7474
| <a name="input_launch_template_name"></a> [launch\_template\_name](#input\_launch\_template\_name) | The name of the launch template. | `string` | `""` | no |
7575
| <a name="input_enable_bottlerocket_ami"></a> [enable\_bottlerocket\_ami](#input\_enable\_bottlerocket\_ami) | Set to true to enable the use of Bottlerocket AMIs for instances. | `bool` | `false` | no |
7676
| <a name="input_bottlerocket_node_config"></a> [bottlerocket\_node\_config](#input\_bottlerocket\_node\_config) | Bottlerocket Node configurations for EKS. | `map(any)` | <pre>{<br> "bottlerocket_eks_enable_control_container": true,<br> "bottlerocket_eks_node_admin_container_enabled": false<br>}</pre> | no |
77+
| <a name="input_custom_ami_id"></a> [custom\_ami\_id](#input\_custom\_ami\_id) | worker node AMI id to be created | `string` | `""` | no |
7778

7879
## Outputs
7980

modules/managed-nodegroup/main.tf

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ data "template_file" "launch_template_userdata_bottlerocket" {
5454
resource "aws_launch_template" "eks_template" {
5555
name = length(var.launch_template_name) > 0 ? var.launch_template_name : local.launch_template_name
5656
key_name = var.eks_nodes_keypair_name
57-
image_id = data.aws_ami.launch_template_ami.image_id
57+
image_id = length(var.custom_ami_id) == 0 ? data.aws_ami.launch_template_ami.image_id : var.custom_ami_id
5858
user_data = var.enable_bottlerocket_ami ? base64encode(data.template_file.launch_template_userdata_bottlerocket[0].rendered) : base64encode(data.template_file.launch_template_userdata[0].rendered)
5959
update_default_version = true
6060
block_device_mappings {
@@ -105,7 +105,7 @@ resource "aws_eks_node_group" "managed_ng" {
105105
subnet_ids = var.vpc_subnet_ids
106106
cluster_name = var.eks_cluster_name
107107
node_role_arn = var.worker_iam_role_arn
108-
node_group_name = format("%s-%s-%s", var.environment, var.managed_ng_name, "ng")
108+
node_group_name = var.managed_ng_name
109109
scaling_config {
110110
desired_size = var.managed_ng_desired_size
111111
max_size = var.managed_ng_max_size

modules/managed-nodegroup/variables.tf

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -198,3 +198,9 @@ variable "bottlerocket_node_config" {
198198
bottlerocket_eks_enable_control_container = true ## For SSM Accesws
199199
}
200200
}
201+
202+
variable "custom_ami_id" {
203+
type = string
204+
description = "worker node AMI id to be created"
205+
default = ""
206+
}

0 commit comments

Comments
 (0)