Skip to content

Commit

Permalink
DATAGO-80328: Refactor EKS node group name (#65)
Browse files Browse the repository at this point in the history
  • Loading branch information
nagsubhrajitt authored Jul 15, 2024
1 parent f587470 commit 8027652
Show file tree
Hide file tree
Showing 6 changed files with 40 additions and 20 deletions.
1 change: 1 addition & 0 deletions eks/terraform/modules/broker-node-group/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ No modules.
| <a name="input_node_group_taints"></a> [node\_group\_taints](#input\_node\_group\_taints) | Kubernetes taints added to worker nodes in the node groups. | `list(map(string))` | n/a | yes |
| <a name="input_security_group_ids"></a> [security\_group\_ids](#input\_security\_group\_ids) | The security groups that will be attached to the worker nodes. | `list(string)` | n/a | yes |
| <a name="input_subnet_ids"></a> [subnet\_ids](#input\_subnet\_ids) | The subnets that the node groups will use - a node group is created in each subnet. | `list(string)` | n/a | yes |
| <a name="input_use_random_suffix_in_node_group_name"></a> [use\_random\_suffix\_in\_node\_group\_name](#input\_use\_random\_suffix\_in\_node\_group\_name) | Whether to use auto generated random suffix in node group name | `bool` | `true` | no |
| <a name="input_worker_node_instance_type"></a> [worker\_node\_instance\_type](#input\_worker\_node\_instance\_type) | The instance type of the worker nodes. | `string` | n/a | yes |
| <a name="input_worker_node_role_arn"></a> [worker\_node\_role\_arn](#input\_worker\_node\_role\_arn) | The ARN of the IAM role assigned to each worker node via an instance profile. | `string` | n/a | yes |
| <a name="input_worker_node_tags"></a> [worker\_node\_tags](#input\_worker\_node\_tags) | Tags that are added to worker nodes. | `map(string)` | `{}` | no |
Expand Down
3 changes: 2 additions & 1 deletion eks/terraform/modules/broker-node-group/main.tf
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,8 @@ resource "aws_eks_node_group" "this" {
count = length(var.subnet_ids)

cluster_name = var.cluster_name
node_group_name_prefix = "${var.node_group_name_prefix}-${count.index}-"
node_group_name_prefix = var.use_random_suffix_in_node_group_name ? "${var.node_group_name_prefix}-${count.index}-" : null
node_group_name = var.use_random_suffix_in_node_group_name ? null : "${var.node_group_name_prefix}-${count.index}"
node_role_arn = var.worker_node_role_arn
subnet_ids = [var.subnet_ids[count.index]]

Expand Down
8 changes: 7 additions & 1 deletion eks/terraform/modules/broker-node-group/variables.tf
Original file line number Diff line number Diff line change
Expand Up @@ -74,4 +74,10 @@ variable "worker_node_role_arn" {
variable "worker_node_instance_type" {
type = string
description = "The instance type of the worker nodes."
}
}

variable "use_random_suffix_in_node_group_name" {
description = "Whether to use auto generated random suffix in node group name"
type = bool
default = true
}
1 change: 1 addition & 0 deletions eks/terraform/modules/cluster/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,7 @@
| <a name="input_node_group_max_size"></a> [node\_group\_max\_size](#input\_node\_group\_max\_size) | The maximum size for the broker node groups in the cluster. | `number` | `10` | no |
| <a name="input_private_subnet_ids"></a> [private\_subnet\_ids](#input\_private\_subnet\_ids) | The IDs of the private subnets where the worker nodes will reside. | `list(string)` | n/a | yes |
| <a name="input_region"></a> [region](#input\_region) | The AWS region where this cluster will reside. | `string` | n/a | yes |
| <a name="input_use_random_suffix_in_node_group_name"></a> [use\_random\_suffix\_in\_node\_group\_name](#input\_use\_random\_suffix\_in\_node\_group\_name) | Whether to use auto generated random suffix in node group name | `bool` | `true` | no |
| <a name="input_vpc_id"></a> [vpc\_id](#input\_vpc\_id) | The ID of the VPC where the cluster will reside. | `string` | n/a | yes |

## Outputs
Expand Down
39 changes: 22 additions & 17 deletions eks/terraform/modules/cluster/main.tf
Original file line number Diff line number Diff line change
Expand Up @@ -503,7 +503,8 @@ resource "aws_launch_template" "default" {

resource "aws_eks_node_group" "default" {
cluster_name = aws_eks_cluster.cluster.name
node_group_name_prefix = "${var.cluster_name}-default-"
node_group_name_prefix = var.use_random_suffix_in_node_group_name ? "${var.cluster_name}-default-" : null
node_group_name = var.use_random_suffix_in_node_group_name ? null : "${var.cluster_name}-default"
node_role_arn = aws_iam_role.worker_node.arn
subnet_ids = var.private_subnet_ids

Expand Down Expand Up @@ -547,10 +548,11 @@ resource "aws_autoscaling_group_tag" "default_name_tag" {
module "node_group_prod1k" {
source = "../broker-node-group"

cluster_name = aws_eks_cluster.cluster.name
node_group_name_prefix = "${var.cluster_name}-prod1k"
security_group_ids = [aws_security_group.worker_node.id]
subnet_ids = var.private_subnet_ids
cluster_name = aws_eks_cluster.cluster.name
use_random_suffix_in_node_group_name = var.use_random_suffix_in_node_group_name
node_group_name_prefix = "${var.cluster_name}-prod1k"
security_group_ids = [aws_security_group.worker_node.id]
subnet_ids = var.private_subnet_ids

worker_node_role_arn = aws_iam_role.worker_node.arn
worker_node_instance_type = local.prod1k_instance_type
Expand Down Expand Up @@ -588,10 +590,11 @@ module "node_group_prod1k" {
module "node_group_prod10k" {
source = "../broker-node-group"

cluster_name = aws_eks_cluster.cluster.name
node_group_name_prefix = "${var.cluster_name}-prod10k"
security_group_ids = [aws_security_group.worker_node.id]
subnet_ids = var.private_subnet_ids
cluster_name = aws_eks_cluster.cluster.name
use_random_suffix_in_node_group_name = var.use_random_suffix_in_node_group_name
node_group_name_prefix = "${var.cluster_name}-prod10k"
security_group_ids = [aws_security_group.worker_node.id]
subnet_ids = var.private_subnet_ids

worker_node_role_arn = aws_iam_role.worker_node.arn
worker_node_instance_type = local.prod10k_instance_type
Expand Down Expand Up @@ -629,10 +632,11 @@ module "node_group_prod10k" {
module "node_group_prod100k" {
source = "../broker-node-group"

cluster_name = aws_eks_cluster.cluster.name
node_group_name_prefix = "${var.cluster_name}-prod100k"
security_group_ids = [aws_security_group.worker_node.id]
subnet_ids = var.private_subnet_ids
cluster_name = aws_eks_cluster.cluster.name
use_random_suffix_in_node_group_name = var.use_random_suffix_in_node_group_name
node_group_name_prefix = "${var.cluster_name}-prod100k"
security_group_ids = [aws_security_group.worker_node.id]
subnet_ids = var.private_subnet_ids

worker_node_role_arn = aws_iam_role.worker_node.arn
worker_node_instance_type = local.prod100k_instance_type
Expand Down Expand Up @@ -670,10 +674,11 @@ module "node_group_prod100k" {
module "node_group_monitoring" {
source = "../broker-node-group"

cluster_name = aws_eks_cluster.cluster.name
node_group_name_prefix = "${var.cluster_name}-monitoring"
security_group_ids = [aws_security_group.worker_node.id]
subnet_ids = var.private_subnet_ids
cluster_name = aws_eks_cluster.cluster.name
use_random_suffix_in_node_group_name = var.use_random_suffix_in_node_group_name
node_group_name_prefix = "${var.cluster_name}-monitoring"
security_group_ids = [aws_security_group.worker_node.id]
subnet_ids = var.private_subnet_ids

worker_node_role_arn = aws_iam_role.worker_node.arn
worker_node_instance_type = local.monitoring_instance_type
Expand Down
8 changes: 7 additions & 1 deletion eks/terraform/modules/cluster/variables.tf
Original file line number Diff line number Diff line change
Expand Up @@ -63,4 +63,10 @@ variable "kubernetes_cluster_admin_arns" {
type = list(string)
default = []
description = "When kubernetes_cluster_auth_mode is set to 'API', user or role ARNs can be provided that will be given assigned AmazonEKSClusterAdminPolicy for this cluster."
}
}

variable "use_random_suffix_in_node_group_name" {
description = "Whether to use auto generated random suffix in node group name"
type = bool
default = true
}

0 comments on commit 8027652

Please sign in to comment.