mirror of
https://github.com/ysoftdevs/terraform-aws-eks.git
synced 2026-04-26 10:28:41 +02:00
feat: Allow override of timeouts in node_groups (#1552)
This commit is contained in:
@@ -267,6 +267,7 @@ Apache 2 Licensed. See [LICENSE](https://github.com/terraform-aws-modules/terraf
|
|||||||
| <a name="input_permissions_boundary"></a> [permissions\_boundary](#input\_permissions\_boundary) | If provided, all IAM roles will be created with this permissions boundary attached. | `string` | `null` | no |
|
| <a name="input_permissions_boundary"></a> [permissions\_boundary](#input\_permissions\_boundary) | If provided, all IAM roles will be created with this permissions boundary attached. | `string` | `null` | no |
|
||||||
| <a name="input_subnets"></a> [subnets](#input\_subnets) | A list of subnets to place the EKS cluster and workers within. | `list(string)` | n/a | yes |
|
| <a name="input_subnets"></a> [subnets](#input\_subnets) | A list of subnets to place the EKS cluster and workers within. | `list(string)` | n/a | yes |
|
||||||
| <a name="input_tags"></a> [tags](#input\_tags) | A map of tags to add to all resources. Tags added to launch configuration or templates override these values for ASG Tags only. | `map(string)` | `{}` | no |
|
| <a name="input_tags"></a> [tags](#input\_tags) | A map of tags to add to all resources. Tags added to launch configuration or templates override these values for ASG Tags only. | `map(string)` | `{}` | no |
|
||||||
|
| <a name="input_timeouts"></a> [timeouts](#input\_timeouts) | A map of timeouts for create/update/delete operations. | `map(string)` | `{}` | no |
|
||||||
| <a name="input_vpc_id"></a> [vpc\_id](#input\_vpc\_id) | VPC where the cluster and workers will be deployed. | `string` | n/a | yes |
|
| <a name="input_vpc_id"></a> [vpc\_id](#input\_vpc\_id) | VPC where the cluster and workers will be deployed. | `string` | n/a | yes |
|
||||||
| <a name="input_wait_for_cluster_timeout"></a> [wait\_for\_cluster\_timeout](#input\_wait\_for\_cluster\_timeout) | A timeout (in seconds) to wait for cluster to be available. | `number` | `300` | no |
|
| <a name="input_wait_for_cluster_timeout"></a> [wait\_for\_cluster\_timeout](#input\_wait\_for\_cluster\_timeout) | A timeout (in seconds) to wait for cluster to be available. | `number` | `300` | no |
|
||||||
| <a name="input_worker_additional_security_group_ids"></a> [worker\_additional\_security\_group\_ids](#input\_worker\_additional\_security\_group\_ids) | A list of additional security group ids to attach to worker instances | `list(string)` | `[]` | no |
|
| <a name="input_worker_additional_security_group_ids"></a> [worker\_additional\_security\_group\_ids](#input\_worker\_additional\_security\_group\_ids) | A list of additional security group ids to attach to worker instances | `list(string)` | `[]` | no |
|
||||||
|
|||||||
1
local.tf
1
local.tf
@@ -96,6 +96,7 @@ locals {
|
|||||||
additional_ebs_volumes = [] # A list of additional volumes to be attached to the instances on this Auto Scaling group. Each volume should be an object with the following: block_device_name (required), volume_size, volume_type, iops, throughput, encrypted, kms_key_id (only on launch-template), delete_on_termination. Optional values are grabbed from root volume or from defaults
|
additional_ebs_volumes = [] # A list of additional volumes to be attached to the instances on this Auto Scaling group. Each volume should be an object with the following: block_device_name (required), volume_size, volume_type, iops, throughput, encrypted, kms_key_id (only on launch-template), delete_on_termination. Optional values are grabbed from root volume or from defaults
|
||||||
additional_instance_store_volumes = [] # A list of additional instance store (local disk) volumes to be attached to the instances on this Auto Scaling group. Each volume should be an object with the following: block_device_name (required), virtual_name.
|
additional_instance_store_volumes = [] # A list of additional instance store (local disk) volumes to be attached to the instances on this Auto Scaling group. Each volume should be an object with the following: block_device_name (required), virtual_name.
|
||||||
warm_pool = null # If this block is configured, add a Warm Pool to the specified Auto Scaling group.
|
warm_pool = null # If this block is configured, add a Warm Pool to the specified Auto Scaling group.
|
||||||
|
timeouts = {} # A map of timeouts for create/update/delete operations
|
||||||
|
|
||||||
# Settings for launch templates
|
# Settings for launch templates
|
||||||
root_block_device_name = concat(data.aws_ami.eks_worker.*.root_device_name, [""])[0] # Root device name for Linux workers. If not provided, will assume default Linux AMI was used.
|
root_block_device_name = concat(data.aws_ami.eks_worker.*.root_device_name, [""])[0] # Root device name for Linux workers. If not provided, will assume default Linux AMI was used.
|
||||||
|
|||||||
@@ -48,6 +48,7 @@ The role ARN specified in `var.default_iam_role_arn` will be used by default. In
|
|||||||
| subnets | Subnets to contain workers | list(string) | `var.workers_group_defaults[subnets]` |
|
| subnets | Subnets to contain workers | list(string) | `var.workers_group_defaults[subnets]` |
|
||||||
| version | Kubernetes version | string | Provider default behavior |
|
| version | Kubernetes version | string | Provider default behavior |
|
||||||
| taints | Kubernetes node taints | list(map) | empty |
|
| taints | Kubernetes node taints | list(map) | empty |
|
||||||
|
| timeouts | A map of timeouts for create/update/delete operations. | `map(string)` | Provider default behavior |
|
||||||
| update_default_version | Whether or not to set the new launch template version the Default | bool | `true` |
|
| update_default_version | Whether or not to set the new launch template version the Default | bool | `true` |
|
||||||
|
|
||||||
<!-- BEGINNING OF PRE-COMMIT-TERRAFORM DOCS HOOK -->
|
<!-- BEGINNING OF PRE-COMMIT-TERRAFORM DOCS HOOK -->
|
||||||
@@ -89,6 +90,7 @@ No modules.
|
|||||||
| <a name="input_node_groups"></a> [node\_groups](#input\_node\_groups) | Map of maps of `eks_node_groups` to create. See "`node_groups` and `node_groups_defaults` keys" section in README.md for more details | `any` | `{}` | no |
|
| <a name="input_node_groups"></a> [node\_groups](#input\_node\_groups) | Map of maps of `eks_node_groups` to create. See "`node_groups` and `node_groups_defaults` keys" section in README.md for more details | `any` | `{}` | no |
|
||||||
| <a name="input_node_groups_defaults"></a> [node\_groups\_defaults](#input\_node\_groups\_defaults) | map of maps of node groups to create. See "`node_groups` and `node_groups_defaults` keys" section in README.md for more details | `any` | n/a | yes |
|
| <a name="input_node_groups_defaults"></a> [node\_groups\_defaults](#input\_node\_groups\_defaults) | map of maps of node groups to create. See "`node_groups` and `node_groups_defaults` keys" section in README.md for more details | `any` | n/a | yes |
|
||||||
| <a name="input_tags"></a> [tags](#input\_tags) | A map of tags to add to all resources | `map(string)` | n/a | yes |
|
| <a name="input_tags"></a> [tags](#input\_tags) | A map of tags to add to all resources | `map(string)` | n/a | yes |
|
||||||
|
| <a name="input_timeouts"></a> [timeouts](#input\_timeouts) | A map of timeouts for create/update/delete operations. | `map(string)` | n/a | yes |
|
||||||
| <a name="input_worker_additional_security_group_ids"></a> [worker\_additional\_security\_group\_ids](#input\_worker\_additional\_security\_group\_ids) | A list of additional security group ids to attach to worker instances | `list(string)` | `[]` | no |
|
| <a name="input_worker_additional_security_group_ids"></a> [worker\_additional\_security\_group\_ids](#input\_worker\_additional\_security\_group\_ids) | A list of additional security group ids to attach to worker instances | `list(string)` | `[]` | no |
|
||||||
| <a name="input_worker_security_group_id"></a> [worker\_security\_group\_id](#input\_worker\_security\_group\_id) | If provided, all workers will be attached to this security group. If not given, a security group will be created with necessary ingress/egress to work with the EKS cluster. | `string` | `""` | no |
|
| <a name="input_worker_security_group_id"></a> [worker\_security\_group\_id](#input\_worker\_security\_group\_id) | If provided, all workers will be attached to this security group. If not given, a security group will be created with necessary ingress/egress to work with the EKS cluster. | `string` | `""` | no |
|
||||||
| <a name="input_workers_group_defaults"></a> [workers\_group\_defaults](#input\_workers\_group\_defaults) | Workers group defaults from parent | `any` | n/a | yes |
|
| <a name="input_workers_group_defaults"></a> [workers\_group\_defaults](#input\_workers\_group\_defaults) | Workers group defaults from parent | `any` | n/a | yes |
|
||||||
|
|||||||
@@ -24,6 +24,7 @@ locals {
|
|||||||
pre_userdata = var.workers_group_defaults["pre_userdata"]
|
pre_userdata = var.workers_group_defaults["pre_userdata"]
|
||||||
additional_security_group_ids = var.workers_group_defaults["additional_security_group_ids"]
|
additional_security_group_ids = var.workers_group_defaults["additional_security_group_ids"]
|
||||||
taints = []
|
taints = []
|
||||||
|
timeouts = var.workers_group_defaults["timeouts"]
|
||||||
update_default_version = true
|
update_default_version = true
|
||||||
ebs_optimized = null
|
ebs_optimized = null
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -69,6 +69,12 @@ resource "aws_eks_node_group" "workers" {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
timeouts {
|
||||||
|
create = lookup(each.value["timeouts"], "create", null)
|
||||||
|
update = lookup(each.value["timeouts"], "update", null)
|
||||||
|
delete = lookup(each.value["timeouts"], "delete", null)
|
||||||
|
}
|
||||||
|
|
||||||
version = lookup(each.value, "version", null)
|
version = lookup(each.value, "version", null)
|
||||||
|
|
||||||
labels = merge(
|
labels = merge(
|
||||||
|
|||||||
@@ -36,6 +36,11 @@ variable "tags" {
|
|||||||
type = map(string)
|
type = map(string)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
variable "timeouts" {
|
||||||
|
description = "A map of timeouts for create/update/delete operations."
|
||||||
|
type = map(string)
|
||||||
|
}
|
||||||
|
|
||||||
variable "node_groups_defaults" {
|
variable "node_groups_defaults" {
|
||||||
description = "map of maps of node groups to create. See \"`node_groups` and `node_groups_defaults` keys\" section in README.md for more details"
|
description = "map of maps of node groups to create. See \"`node_groups` and `node_groups_defaults` keys\" section in README.md for more details"
|
||||||
type = any
|
type = any
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ module "node_groups" {
|
|||||||
worker_security_group_id = local.worker_security_group_id
|
worker_security_group_id = local.worker_security_group_id
|
||||||
worker_additional_security_group_ids = var.worker_additional_security_group_ids
|
worker_additional_security_group_ids = var.worker_additional_security_group_ids
|
||||||
tags = var.tags
|
tags = var.tags
|
||||||
|
timeouts = var.timeouts
|
||||||
node_groups_defaults = var.node_groups_defaults
|
node_groups_defaults = var.node_groups_defaults
|
||||||
node_groups = var.node_groups
|
node_groups = var.node_groups
|
||||||
ebs_optimized_not_supported = local.ebs_optimized_not_supported
|
ebs_optimized_not_supported = local.ebs_optimized_not_supported
|
||||||
|
|||||||
@@ -104,6 +104,12 @@ variable "cluster_tags" {
|
|||||||
default = {}
|
default = {}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
variable "timeouts" {
|
||||||
|
description = "A map of timeouts for create/update/delete operations."
|
||||||
|
type = map(string)
|
||||||
|
default = {}
|
||||||
|
}
|
||||||
|
|
||||||
variable "vpc_id" {
|
variable "vpc_id" {
|
||||||
description = "VPC where the cluster and workers will be deployed."
|
description = "VPC where the cluster and workers will be deployed."
|
||||||
type = string
|
type = string
|
||||||
@@ -404,4 +410,5 @@ variable "openid_connect_audiences" {
|
|||||||
description = "List of OpenID Connect audience client IDs to add to the IRSA provider."
|
description = "List of OpenID Connect audience client IDs to add to the IRSA provider."
|
||||||
type = list(string)
|
type = list(string)
|
||||||
default = []
|
default = []
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user