mirror of
https://github.com/ysoftdevs/terraform-aws-eks.git
synced 2026-01-19 10:08:00 +01:00
feat!: Replace the use of aws-auth configmap with EKS cluster access entry (#2858)
* feat: Replace `resolve_conflicts` with `resolve_conflicts_on_create`/`delete`; raise MSV of AWS provider to `v5.0` to support * fix: Replace dynamic DNS suffix for `sts:AssumeRole` API calls for static suffix * feat: Add module tag * feat: Align Karpenter permissions with Karpenter v1beta1/v0.32 permissions from upstream * refactor: Move `aws-auth` ConfigMap functionality to its own sub-module * chore: Update examples * feat: Add state `moved` block for Karpenter Pod Identity role re-name * fix: Correct variable `create` description * feat: Add support for cluster access entries * chore: Bump MSV of Terraform to `1.3` * fix: Replace defunct kubectl provider with an updated forked equivalent * chore: Update and validate examples for access entry; clean up provider usage * docs: Correct double redundant variable descriptions * feat: Add support for Cloudwatch log group class argument * fix: Update usage tag placement, fix Karpenter event spelling, add upcoming changes section to upgrade guide * feat: Update Karpenter module to generalize naming used and align policy with the upstream Karpenter policy * feat: Add native support for Windows based managed nodegroups similar to AL2 and Bottlerocket * feat: Update self-managed nodegroup module to use latest features of ASG * docs: Update and simplify docs * fix: Correct variable description for AMI types * fix: Update upgrade guide with changes; rename Karpenter controller resource names to support migrating for users * docs: Complete upgrade guide docs for migration and changes applied * Update examples/karpenter/README.md Co-authored-by: Anton Babenko <anton@antonbabenko.com> * Update examples/outposts/README.md Co-authored-by: Anton Babenko <anton@antonbabenko.com> * Update modules/karpenter/README.md Co-authored-by: Anton Babenko <anton@antonbabenko.com> --------- Co-authored-by: Anton Babenko <anton@antonbabenko.com>
This commit is contained in:
@@ -40,7 +40,6 @@ resource "time_sleep" "this" {
|
||||
|
||||
################################################################################
|
||||
# EKS IPV6 CNI Policy
|
||||
# TODO - hopefully AWS releases a managed policy which can replace this
|
||||
# https://docs.aws.amazon.com/eks/latest/userguide/cni-iam-role.html#cni-iam-role-create-ipv6-policy
|
||||
################################################################################
|
||||
|
||||
@@ -62,7 +61,7 @@ data "aws_iam_policy_document" "cni_ipv6_policy" {
|
||||
statement {
|
||||
sid = "CreateTags"
|
||||
actions = ["ec2:CreateTags"]
|
||||
resources = ["arn:${data.aws_partition.current.partition}:ec2:*:*:network-interface/*"]
|
||||
resources = ["arn:${local.partition}:ec2:*:*:network-interface/*"]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -363,6 +362,7 @@ module "eks_managed_node_group" {
|
||||
# https://github.com/hashicorp/terraform/issues/31646#issuecomment-1217279031
|
||||
iam_role_additional_policies = lookup(each.value, "iam_role_additional_policies", lookup(var.eks_managed_node_group_defaults, "iam_role_additional_policies", {}))
|
||||
|
||||
# Autoscaling group schedule
|
||||
create_schedule = try(each.value.create_schedule, var.eks_managed_node_group_defaults.create_schedule, true)
|
||||
schedules = try(each.value.schedules, var.eks_managed_node_group_defaults.schedules, {})
|
||||
|
||||
@@ -423,14 +423,12 @@ module "self_managed_node_group" {
|
||||
metrics_granularity = try(each.value.metrics_granularity, var.self_managed_node_group_defaults.metrics_granularity, null)
|
||||
service_linked_role_arn = try(each.value.service_linked_role_arn, var.self_managed_node_group_defaults.service_linked_role_arn, null)
|
||||
|
||||
initial_lifecycle_hooks = try(each.value.initial_lifecycle_hooks, var.self_managed_node_group_defaults.initial_lifecycle_hooks, [])
|
||||
instance_refresh = try(each.value.instance_refresh, var.self_managed_node_group_defaults.instance_refresh, local.default_instance_refresh)
|
||||
use_mixed_instances_policy = try(each.value.use_mixed_instances_policy, var.self_managed_node_group_defaults.use_mixed_instances_policy, false)
|
||||
mixed_instances_policy = try(each.value.mixed_instances_policy, var.self_managed_node_group_defaults.mixed_instances_policy, null)
|
||||
warm_pool = try(each.value.warm_pool, var.self_managed_node_group_defaults.warm_pool, {})
|
||||
|
||||
create_schedule = try(each.value.create_schedule, var.self_managed_node_group_defaults.create_schedule, true)
|
||||
schedules = try(each.value.schedules, var.self_managed_node_group_defaults.schedules, {})
|
||||
initial_lifecycle_hooks = try(each.value.initial_lifecycle_hooks, var.self_managed_node_group_defaults.initial_lifecycle_hooks, [])
|
||||
instance_maintenance_policy = try(each.value.instance_maintenance_policy, var.self_managed_node_group_defaults.instance_maintenance_policy, {})
|
||||
instance_refresh = try(each.value.instance_refresh, var.self_managed_node_group_defaults.instance_refresh, local.default_instance_refresh)
|
||||
use_mixed_instances_policy = try(each.value.use_mixed_instances_policy, var.self_managed_node_group_defaults.use_mixed_instances_policy, false)
|
||||
mixed_instances_policy = try(each.value.mixed_instances_policy, var.self_managed_node_group_defaults.mixed_instances_policy, null)
|
||||
warm_pool = try(each.value.warm_pool, var.self_managed_node_group_defaults.warm_pool, {})
|
||||
|
||||
delete_timeout = try(each.value.delete_timeout, var.self_managed_node_group_defaults.delete_timeout, null)
|
||||
autoscaling_group_tags = try(each.value.autoscaling_group_tags, var.self_managed_node_group_defaults.autoscaling_group_tags, {})
|
||||
@@ -499,6 +497,14 @@ module "self_managed_node_group" {
|
||||
# https://github.com/hashicorp/terraform/issues/31646#issuecomment-1217279031
|
||||
iam_role_additional_policies = lookup(each.value, "iam_role_additional_policies", lookup(var.self_managed_node_group_defaults, "iam_role_additional_policies", {}))
|
||||
|
||||
# Access entry
|
||||
create_access_entry = try(each.value.create_access_entry, var.self_managed_node_group_defaults.create_access_entry, true)
|
||||
iam_role_arn = try(each.value.iam_role_arn, var.self_managed_node_group_defaults.iam_role_arn, null)
|
||||
|
||||
# Autoscaling group schedule
|
||||
create_schedule = try(each.value.create_schedule, var.self_managed_node_group_defaults.create_schedule, true)
|
||||
schedules = try(each.value.schedules, var.self_managed_node_group_defaults.schedules, {})
|
||||
|
||||
# Security group
|
||||
vpc_security_group_ids = compact(concat([local.node_security_group_id], try(each.value.vpc_security_group_ids, var.self_managed_node_group_defaults.vpc_security_group_ids, [])))
|
||||
cluster_primary_security_group_id = try(each.value.attach_cluster_primary_security_group, var.self_managed_node_group_defaults.attach_cluster_primary_security_group, false) ? aws_eks_cluster.this[0].vpc_config[0].cluster_security_group_id : null
|
||||
|
||||
Reference in New Issue
Block a user