mirror of
https://github.com/ysoftdevs/terraform-aws-eks.git
synced 2026-01-16 00:34:31 +01:00
Added outputs for labels and taints and updated example to show usage of labels and taints (#2109)
Co-authored-by: Bryant Biggs <bryantbiggs@gmail.com>
This commit is contained in:
@@ -80,6 +80,7 @@ Note that this example may create resources which cost money. Run `terraform des
|
||||
|
||||
| Name | Type |
|
||||
|------|------|
|
||||
| [aws_autoscaling_group_tag.cluster_autoscaler_label_tags](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/autoscaling_group_tag) | resource |
|
||||
| [aws_iam_policy.node_additional](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/iam_policy) | resource |
|
||||
| [aws_iam_role_policy_attachment.additional](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/iam_role_policy_attachment) | resource |
|
||||
| [aws_key_pair.this](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/key_pair) | resource |
|
||||
|
||||
@@ -668,3 +668,44 @@ data "aws_ami" "eks_default_bottlerocket" {
|
||||
values = ["bottlerocket-aws-k8s-${local.cluster_version}-x86_64-*"]
|
||||
}
|
||||
}
|
||||
|
||||
################################################################################
|
||||
# Tags for the ASG to support cluster-autoscaler scale up from 0
|
||||
################################################################################
|
||||
|
||||
locals {
|
||||
cluster_autoscaler_label_tags = merge([
|
||||
for name, group in module.eks.eks_managed_node_groups : {
|
||||
for label_name, label_value in coalesce(group.node_group_labels, {}) : "${name}|label|${label_name}" => {
|
||||
autoscaling_group = group.node_group_autoscaling_group_names[0],
|
||||
key = "k8s.io/cluster-autoscaler/node-template/label/${label_name}",
|
||||
value = label_value,
|
||||
}
|
||||
}
|
||||
]...)
|
||||
|
||||
cluster_autoscaler_taint_tags = merge([
|
||||
for name, group in module.eks.eks_managed_node_groups : {
|
||||
for taint in coalesce(group.node_group_taints, []) : "${name}|taint|${taint.key}" => {
|
||||
autoscaling_group = group.node_group_autoscaling_group_names[0],
|
||||
key = "k8s.io/cluster-autoscaler/node-template/taint/${taint.key}"
|
||||
value = "${taint.value}:${taint.effect}"
|
||||
}
|
||||
}
|
||||
]...)
|
||||
|
||||
cluster_autoscaler_asg_tags = merge(local.cluster_autoscaler_label_tags, local.cluster_autoscaler_taint_tags)
|
||||
}
|
||||
|
||||
resource "aws_autoscaling_group_tag" "cluster_autoscaler_label_tags" {
|
||||
for_each = local.cluster_autoscaler_asg_tags
|
||||
|
||||
autoscaling_group_name = each.value.autoscaling_group
|
||||
|
||||
tag {
|
||||
key = each.value.key
|
||||
value = each.value.value
|
||||
|
||||
propagate_at_launch = false
|
||||
}
|
||||
}
|
||||
|
||||
@@ -178,8 +178,10 @@ module "eks_managed_node_group" {
|
||||
| <a name="output_node_group_arn"></a> [node\_group\_arn](#output\_node\_group\_arn) | Amazon Resource Name (ARN) of the EKS Node Group |
|
||||
| <a name="output_node_group_autoscaling_group_names"></a> [node\_group\_autoscaling\_group\_names](#output\_node\_group\_autoscaling\_group\_names) | List of the autoscaling group names |
|
||||
| <a name="output_node_group_id"></a> [node\_group\_id](#output\_node\_group\_id) | EKS Cluster name and EKS Node Group name separated by a colon (`:`) |
|
||||
| <a name="output_node_group_labels"></a> [node\_group\_labels](#output\_node\_group\_labels) | Map of labels applied to the node group |
|
||||
| <a name="output_node_group_resources"></a> [node\_group\_resources](#output\_node\_group\_resources) | List of objects containing information about underlying resources |
|
||||
| <a name="output_node_group_status"></a> [node\_group\_status](#output\_node\_group\_status) | Status of the EKS Node Group |
|
||||
| <a name="output_node_group_taints"></a> [node\_group\_taints](#output\_node\_group\_taints) | List of objects containing information about taints applied to the node group |
|
||||
| <a name="output_security_group_arn"></a> [security\_group\_arn](#output\_security\_group\_arn) | Amazon Resource Name (ARN) of the security group |
|
||||
| <a name="output_security_group_id"></a> [security\_group\_id](#output\_security\_group\_id) | ID of the security group |
|
||||
<!-- END OF PRE-COMMIT-TERRAFORM DOCS HOOK -->
|
||||
|
||||
@@ -46,6 +46,16 @@ output "node_group_status" {
|
||||
value = try(aws_eks_node_group.this[0].arn, "")
|
||||
}
|
||||
|
||||
output "node_group_labels" {
|
||||
description = "Map of labels applied to the node group"
|
||||
value = try(aws_eks_node_group.this[0].labels, {})
|
||||
}
|
||||
|
||||
output "node_group_taints" {
|
||||
description = "List of objects containing information about taints applied to the node group"
|
||||
value = try(aws_eks_node_group.this[0].taint, [])
|
||||
}
|
||||
|
||||
################################################################################
|
||||
# Security Group
|
||||
################################################################################
|
||||
|
||||
Reference in New Issue
Block a user