feat: Add support for EKS Auto Mode and EKS Hybrid nodes (#3225)

* feat: Add support for EKS hybrid nodes

* feat: Add support for EKS Auto Mode

* chore: Update test directory names

* chore: Clean up examples and tests

* fix: Clean up and last minute changes for GA

* chore: Formatting

* chore: Bump min required version for new features

* fix: Corrects from test/validation on existing clusters

* feat: Add policy for custom tags on EKS Auto Mode, validate examples

* chore: Expand on `CAM` acronym

* chore: Update README to match examples
This commit is contained in:
Bryant Biggs
2024-12-04 09:24:21 -06:00
committed by GitHub
parent 6866b40bec
commit 3b974d33ad
62 changed files with 3896 additions and 441 deletions

View File

@@ -44,12 +44,24 @@ variable "authentication_mode" {
default = "API_AND_CONFIG_MAP"
}
variable "cluster_compute_config" {
description = "Configuration block for the cluster compute configuration"
type = any
default = {}
}
variable "cluster_upgrade_policy" {
description = "Configuration block for the cluster upgrade policy"
type = any
default = {}
}
variable "cluster_remote_network_config" {
description = "Configuration block for the cluster remote network configuration"
type = any
default = {}
}
variable "cluster_zonal_shift_config" {
description = "Configuration block for the cluster zonal shift"
type = any
@@ -434,7 +446,7 @@ variable "custom_oidc_thumbprints" {
################################################################################
variable "create_iam_role" {
description = "Determines whether a an IAM role is created or to use an existing IAM role"
description = "Determines whether an IAM role is created for the cluster"
type = bool
default = true
}
@@ -458,7 +470,7 @@ variable "iam_role_use_name_prefix" {
}
variable "iam_role_path" {
description = "Cluster IAM role path"
description = "The IAM role path"
type = string
default = null
}
@@ -481,6 +493,13 @@ variable "iam_role_additional_policies" {
default = {}
}
# TODO - will be removed in next breaking change; user can add the policy on their own when needed
variable "enable_security_groups_for_pods" {
description = "Determines whether to add the necessary IAM permission policy for security groups for pods"
type = bool
default = true
}
variable "iam_role_tags" {
description = "A map of additional tags to add to the IAM role created"
type = map(string)
@@ -549,6 +568,70 @@ variable "cluster_identity_providers" {
default = {}
}
################################################################################
# EKS Auto Node IAM Role
################################################################################
variable "create_node_iam_role" {
description = "Determines whether an EKS Auto node IAM role is created"
type = bool
default = true
}
variable "node_iam_role_name" {
description = "Name to use on the EKS Auto node IAM role created"
type = string
default = null
}
variable "node_iam_role_use_name_prefix" {
description = "Determines whether the EKS Auto node IAM role name (`node_iam_role_name`) is used as a prefix"
type = bool
default = true
}
variable "node_iam_role_path" {
description = "The EKS Auto node IAM role path"
type = string
default = null
}
variable "node_iam_role_description" {
description = "Description of the EKS Auto node IAM role"
type = string
default = null
}
variable "node_iam_role_permissions_boundary" {
description = "ARN of the policy that is used to set the permissions boundary for the EKS Auto node IAM role"
type = string
default = null
}
variable "node_iam_role_additional_policies" {
description = "Additional policies to be added to the EKS Auto node IAM role"
type = map(string)
default = {}
}
variable "node_iam_role_tags" {
description = "A map of additional tags to add to the EKS Auto node IAM role created"
type = map(string)
default = {}
}
variable "enable_node_custom_tags_permissions" {
description = "Determines whether to enable permissions for custom tags for the EKS Auto node IAM role"
type = bool
default = true
}
variable "node_iam_role_policy_statements" {
description = "A list of IAM policy [statements](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/iam_policy_document#statement) - used for adding specific IAM permissions as needed"
type = any
default = []
}
################################################################################
# Fargate
################################################################################