|
1 | 1 | resource "aws_eks_node_group" "main" { |
| 2 | + count = var.create_before_destroy ? 0 : 1 |
| 3 | + |
2 | 4 | cluster_name = var.cluster_name |
3 | 5 |
|
4 | 6 | node_group_name_prefix = var.node_group_name_prefix |
5 | 7 | node_group_name = var.node_group_name |
6 | | - node_role_arn = var.node_role_arn == null ? join("", aws_iam_role.main.*.arn) : var.node_role_arn |
| 8 | + node_role_arn = var.node_role_arn == null ? aws_iam_role.main[0].arn : var.node_role_arn |
7 | 9 |
|
8 | 10 | subnet_ids = var.subnet_ids |
9 | 11 |
|
@@ -61,7 +63,94 @@ resource "aws_eks_node_group" "main" { |
61 | 63 | } |
62 | 64 | } |
63 | 65 |
|
| 66 | + timeouts { |
| 67 | + create = lookup(var.timeouts, "create", null) |
| 68 | + update = lookup(var.timeouts, "update", null) |
| 69 | + delete = lookup(var.timeouts, "delete", null) |
| 70 | + } |
| 71 | + |
| 72 | + lifecycle { |
| 73 | + ignore_changes = [ |
| 74 | + scaling_config[0].desired_size |
| 75 | + ] |
| 76 | + } |
| 77 | +} |
| 78 | + |
| 79 | +resource "aws_eks_node_group" "main_create_before_destroy" { |
| 80 | + count = var.create_before_destroy ? 1 : 0 |
| 81 | + |
| 82 | + cluster_name = var.cluster_name |
| 83 | + |
| 84 | + node_group_name_prefix = var.node_group_name_prefix |
| 85 | + node_group_name = var.node_group_name |
| 86 | + node_role_arn = var.node_role_arn == null ? aws_iam_role.main[0].arn : var.node_role_arn |
| 87 | + |
| 88 | + subnet_ids = var.subnet_ids |
| 89 | + |
| 90 | + ami_type = var.ami_type |
| 91 | + disk_size = var.disk_size |
| 92 | + instance_types = var.instance_types |
| 93 | + capacity_type = var.capacity_type |
| 94 | + |
| 95 | + labels = var.labels |
| 96 | + |
| 97 | + release_version = var.ami_release_version |
| 98 | + version = var.kubernetes_version |
| 99 | + |
| 100 | + force_update_version = var.force_update_version |
| 101 | + |
| 102 | + tags = var.tags |
| 103 | + |
| 104 | + scaling_config { |
| 105 | + desired_size = var.desired_size |
| 106 | + max_size = var.max_size |
| 107 | + min_size = var.min_size |
| 108 | + } |
| 109 | + |
| 110 | + dynamic "taint" { |
| 111 | + for_each = var.taints |
| 112 | + content { |
| 113 | + key = lookup(taint.value, "key") |
| 114 | + value = lookup(taint.value, "value") |
| 115 | + effect = lookup(taint.value, "effect") |
| 116 | + } |
| 117 | + } |
| 118 | + |
| 119 | + dynamic "remote_access" { |
| 120 | + for_each = var.ec2_ssh_key != null || var.source_security_group_ids != null ? ["true"] : [] |
| 121 | + content { |
| 122 | + ec2_ssh_key = var.ec2_ssh_key |
| 123 | + source_security_group_ids = var.source_security_group_ids |
| 124 | + } |
| 125 | + } |
| 126 | + |
| 127 | + dynamic "update_config" { |
| 128 | + for_each = length(var.update_config) == 0 ? [] : [var.update_config] |
| 129 | + content { |
| 130 | + max_unavailable = lookup(update_config.value, "max_unavailable", null) |
| 131 | + max_unavailable_percentage = lookup(update_config.value, "max_unavailable_percentage", null) |
| 132 | + } |
| 133 | + } |
| 134 | + |
| 135 | + dynamic "launch_template" { |
| 136 | + for_each = length(var.launch_template) == 0 ? [] : [var.launch_template] |
| 137 | + content { |
| 138 | + id = lookup(launch_template.value, "id", null) |
| 139 | + name = lookup(launch_template.value, "name", null) |
| 140 | + version = lookup(launch_template.value, "version") |
| 141 | + } |
| 142 | + } |
| 143 | + |
| 144 | + timeouts { |
| 145 | + create = lookup(var.timeouts, "create", null) |
| 146 | + update = lookup(var.timeouts, "update", null) |
| 147 | + delete = lookup(var.timeouts, "delete", null) |
| 148 | + } |
| 149 | + |
64 | 150 | lifecycle { |
65 | | - ignore_changes = [scaling_config.0.desired_size] |
| 151 | + create_before_destroy = true |
| 152 | + ignore_changes = [ |
| 153 | + scaling_config[0].desired_size |
| 154 | + ] |
66 | 155 | } |
67 | 156 | } |
0 commit comments