variable "cluster_name" { description = "EKS cluster name" type = string } variable "kubernetes_version" { description = "Kubernetes version" type = string default = "1.30" } variable "subnet_ids" { description = "Subnet IDs for the cluster control plane ENIs" type = list(string) } variable "security_group_ids" { description = "Additional security group IDs for the cluster" type = list(string) default = [] } variable "endpoint_private_access" { description = "Enable private API server endpoint" type = bool default = true } variable "endpoint_public_access" { description = "Enable public API server endpoint" type = bool default = false } variable "public_access_cidrs" { description = "CIDR blocks for public API access (requires endpoint_public_access = true)" type = list(string) default = [] } variable "cluster_log_types" { description = "Control plane log types to enable" type = list(string) default = ["api", "audit", "authenticator", "controllerManager", "scheduler"] } variable "secrets_encryption_kms_key_arn" { description = "KMS key ARN for encrypting Kubernetes secrets" type = string default = null } variable "cluster_addons" { description = "Map of EKS add-ons to install" type = map(object({ version = optional(string, null) resolve_conflicts = optional(string, "OVERWRITE") service_account_role_arn = optional(string, null) })) default = { vpc-cni = {} coredns = {} kube-proxy = {} aws-ebs-csi-driver = {} } } variable "access_entries" { description = "Map of IAM principal ARNs to cluster access entry configurations" type = map(object({ principal_arn = string type = optional(string, "STANDARD") kubernetes_groups = optional(list(string), []) policy_associations = optional(list(object({ policy_arn = string access_scope = optional(string, "cluster") namespaces = optional(list(string), []) })), []) })) default = {} } variable "tags" { description = "Resource tags to apply to all resources" type = map(string) default = {} }