@@ -462,3 +462,52 @@ data "aws_ami" "eks_default_bottlerocket" {
462
462
values = [" bottlerocket-aws-k8s-${ local . cluster_version } -x86_64-*" ]
463
463
}
464
464
}
465
+
466
+ # ###############################################################################
467
+ # Tags for the ASG to support cluster-autoscaler scale up from 0
468
+ # ###############################################################################
469
+
470
+ locals {
471
+
472
+ # We need to lookup K8s taint effect from the AWS API value
473
+ taint_effects = {
474
+ NO_SCHEDULE = " NoSchedule"
475
+ NO_EXECUTE = " NoExecute"
476
+ PREFER_NO_SCHEDULE = " PreferNoSchedule"
477
+ }
478
+
479
+ cluster_autoscaler_label_tags = merge ([
480
+ for name , group in module . eks . eks_managed_node_groups : {
481
+ for label_name , label_value in coalesce (group. node_group_labels , {}) : " ${ name } |label|${ label_name } " => {
482
+ autoscaling_group = group . node_group_autoscaling_group_names [0 ],
483
+ key = " k8s.io/cluster-autoscaler/node-template/label/${ label_name } " ,
484
+ value = label_value ,
485
+ }
486
+ }
487
+ ]... )
488
+
489
+ cluster_autoscaler_taint_tags = merge ([
490
+ for name , group in module . eks . eks_managed_node_groups : {
491
+ for taint in coalesce (group. node_group_taints , []) : " ${ name } |taint|${ taint . key } " => {
492
+ autoscaling_group = group . node_group_autoscaling_group_names [0 ],
493
+ key = " k8s.io/cluster-autoscaler/node-template/taint/${ taint . key } "
494
+ value = " ${ taint . value } :${ local . taint_effects [taint . effect ]} "
495
+ }
496
+ }
497
+ ]... )
498
+
499
+ cluster_autoscaler_asg_tags = merge (local. cluster_autoscaler_label_tags , local. cluster_autoscaler_taint_tags )
500
+ }
501
+
502
+ resource "aws_autoscaling_group_tag" "cluster_autoscaler_label_tags" {
503
+ for_each = local. cluster_autoscaler_asg_tags
504
+
505
+ autoscaling_group_name = each. value . autoscaling_group
506
+
507
+ tag {
508
+ key = each. value . key
509
+ value = each. value . value
510
+
511
+ propagate_at_launch = false
512
+ }
513
+ }
0 commit comments