mirror of
https://github.com/terraform-aws-modules/terraform-aws-eks.git
synced 2025-09-09 19:32:58 +08:00
416515a0da
* feat!: Upgrade min AWS provider and Terraform versions to `6.0` and `1.5.7` respectively * fix: Remove deprecated arguments in AWS v6.0 provider, upgrade Helm provider to v3.0, bump VPC module to v6.0 * fix: Remove `aws-auth` sub-module * fix: Remove `platform` and `cluster_service_ipv4_cidr` variables from `user-data` sub-module * fix: Resolve all marked `todos` that have been accumulated * fix: Set default `http_put_response_hop_limit` to `1` * fix: Remove IRSA support from Karpenter sub-module * fix: Avoid making GET requests from data sources unless absolutely necessary * feat: Add variable optional attribute definitions * feat: Bump KMS key module version to latest, add remaining variable attribute definitions * fix: Remove `cluster_` prefix from variable names to better match the underlying API * fix: Move all EFA logic to the nodegroup itself * fix: Remove arguments that do not make sense in EKS * fix: Updates from plan validation * fix: Remove more self-managed node group attributes that are commonly not used in EKS clusters * fix: Remove data plane compute `*_defaults` variables that do not work with variable optional attributes * fix: Ignore changes to `bootstrap_self_managed_addons` to aid in upgrade * feat: Add support for `region` argument on relevant resources * feat: Initial pass on upgrade guide * fix: Updates from testing and validating EKS managed node group * fix: Updates from testing and validating self-managed node group * docs: Ensure addon ussage documented is aligned * feat: Switch to dualstack OIDC issuer URL * feat: Allow sourcing over overriding the Karpenter assume role policy * fix: Use `Bool` instead of `StringEquals` for DenyHTTP queue policy * fix: Correct use of `nullable` and default value propagation
187 lines
5.3 KiB
Terraform
187 lines
5.3 KiB
Terraform
variable "create" {
|
|
description = "Determines whether to create Fargate profile or not"
|
|
type = bool
|
|
default = true
|
|
nullable = false
|
|
}
|
|
|
|
variable "tags" {
|
|
description = "A map of tags to add to all resources"
|
|
type = map(string)
|
|
default = {}
|
|
nullable = false
|
|
}
|
|
|
|
variable "region" {
|
|
description = "Region where the resource(s) will be managed. Defaults to the Region set in the provider configuration"
|
|
type = string
|
|
default = null
|
|
}
|
|
|
|
variable "partition" {
|
|
description = "The AWS partition - pass through value to reduce number of GET requests from data sources"
|
|
type = string
|
|
default = ""
|
|
}
|
|
|
|
variable "account_id" {
|
|
description = "The AWS account ID - pass through value to reduce number of GET requests from data sources"
|
|
type = string
|
|
default = ""
|
|
}
|
|
|
|
################################################################################
|
|
# IAM Role
|
|
################################################################################
|
|
|
|
variable "create_iam_role" {
|
|
description = "Determines whether an IAM role is created or to use an existing IAM role"
|
|
type = bool
|
|
default = true
|
|
nullable = false
|
|
}
|
|
|
|
variable "cluster_ip_family" {
|
|
description = "The IP family used to assign Kubernetes pod and service addresses. Valid values are `ipv4` (default) and `ipv6`"
|
|
type = string
|
|
default = "ipv4"
|
|
}
|
|
|
|
variable "iam_role_arn" {
|
|
description = "Existing IAM role ARN for the Fargate profile. Required if `create_iam_role` is set to `false`"
|
|
type = string
|
|
default = null
|
|
}
|
|
|
|
variable "iam_role_name" {
|
|
description = "Name to use on IAM role created"
|
|
type = string
|
|
default = ""
|
|
}
|
|
|
|
variable "iam_role_use_name_prefix" {
|
|
description = "Determines whether the IAM role name (`iam_role_name`) is used as a prefix"
|
|
type = bool
|
|
default = true
|
|
nullable = false
|
|
}
|
|
|
|
variable "iam_role_path" {
|
|
description = "IAM role path"
|
|
type = string
|
|
default = null
|
|
}
|
|
|
|
variable "iam_role_description" {
|
|
description = "Description of the role"
|
|
type = string
|
|
default = "Fargate profile IAM role"
|
|
nullable = false
|
|
}
|
|
|
|
variable "iam_role_permissions_boundary" {
|
|
description = "ARN of the policy that is used to set the permissions boundary for the IAM role"
|
|
type = string
|
|
default = null
|
|
}
|
|
|
|
variable "iam_role_attach_cni_policy" {
|
|
description = "Whether to attach the `AmazonEKS_CNI_Policy`/`AmazonEKS_CNI_IPv6_Policy` IAM policy to the IAM IAM role. WARNING: If set `false` the permissions must be assigned to the `aws-node` DaemonSet pods via another method or nodes will not be able to join the cluster"
|
|
type = bool
|
|
default = true
|
|
nullable = false
|
|
}
|
|
|
|
variable "iam_role_additional_policies" {
|
|
description = "Additional policies to be added to the IAM role"
|
|
type = map(string)
|
|
default = {}
|
|
nullable = false
|
|
}
|
|
|
|
variable "iam_role_tags" {
|
|
description = "A map of additional tags to add to the IAM role created"
|
|
type = map(string)
|
|
default = {}
|
|
nullable = false
|
|
}
|
|
|
|
################################################################################
|
|
# IAM Role Policy
|
|
################################################################################
|
|
|
|
variable "create_iam_role_policy" {
|
|
description = "Determines whether an IAM role policy is created or not"
|
|
type = bool
|
|
default = true
|
|
nullable = false
|
|
}
|
|
|
|
variable "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 = list(object({
|
|
sid = optional(string)
|
|
actions = optional(list(string))
|
|
not_actions = optional(list(string))
|
|
effect = optional(string)
|
|
resources = optional(list(string))
|
|
not_resources = optional(list(string))
|
|
principals = optional(list(object({
|
|
type = string
|
|
identifiers = list(string)
|
|
})))
|
|
not_principals = optional(list(object({
|
|
type = string
|
|
identifiers = list(string)
|
|
})))
|
|
condition = optional(list(object({
|
|
test = string
|
|
values = list(string)
|
|
variable = string
|
|
})))
|
|
}))
|
|
default = null
|
|
}
|
|
|
|
################################################################################
|
|
# Fargate Profile
|
|
################################################################################
|
|
|
|
variable "cluster_name" {
|
|
description = "Name of the EKS cluster"
|
|
type = string
|
|
default = ""
|
|
}
|
|
|
|
variable "name" {
|
|
description = "Name of the EKS Fargate Profile"
|
|
type = string
|
|
default = ""
|
|
nullable = false
|
|
}
|
|
|
|
variable "subnet_ids" {
|
|
description = "A list of subnet IDs for the EKS Fargate Profile"
|
|
type = list(string)
|
|
default = []
|
|
nullable = false
|
|
}
|
|
|
|
variable "selectors" {
|
|
description = "Configuration block(s) for selecting Kubernetes Pods to execute with this Fargate Profile"
|
|
type = list(object({
|
|
labels = optional(map(string))
|
|
namespace = string
|
|
}))
|
|
default = null
|
|
}
|
|
|
|
variable "timeouts" {
|
|
description = "Create and delete timeout configurations for the Fargate Profile"
|
|
type = object({
|
|
create = optional(string)
|
|
delete = optional(string)
|
|
})
|
|
default = null
|
|
}
|