--- title: AWS EKS --- ## Description Terraform module to create an Elastic Kubernetes (EKS) cluster and associated worker instances on AWS ## Specification ### Properties Name | Description | Type | Required | Default ------------ | ------------- | ------------- | ------------- | ------------- attach_cluster_encryption_policy | Indicates whether or not to attach an additional policy for the cluster IAM role to utilize the encryption key provided | bool | false | cloudwatch_log_group_kms_key_id | If a KMS Key ARN is set, this key will be used to encrypt the corresponding log group. Please be sure that the KMS Key has an appropriate key policy (https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/encrypt-log-data-kms.html) | string | false | cloudwatch_log_group_retention_in_days | Number of days to retain log events. Default retention - 90 days | number | false | cluster_additional_security_group_ids | List of additional, externally created security group IDs to attach to the cluster control plane | list(string) | false | cluster_addons | Map of cluster addon configurations to enable for the cluster. Addon name can be the map keys or set with `name` | any | false | cluster_enabled_log_types | A list of the desired control plane logs to enable. For more information, see Amazon EKS Control Plane Logging documentation (https://docs.aws.amazon.com/eks/latest/userguide/control-plane-logs.html) | list(string) | false | cluster_encryption_config | Configuration block with encryption configuration for the cluster | list(object({\n provider_key_arn = string\n resources = list(string)\n })) | false | cluster_encryption_policy_description | Description of the cluster encryption policy created | string | false | cluster_encryption_policy_name | Name to use on cluster encryption policy created | string | false | cluster_encryption_policy_path | Cluster encryption policy path | string | false | cluster_encryption_policy_tags | A map of additional tags to add to the cluster encryption policy created | map(string) | false | cluster_encryption_policy_use_name_prefix | Determines whether cluster encryption policy name (`cluster_encryption_policy_name`) is used as a prefix | string | false | cluster_endpoint_private_access | Indicates whether or not the Amazon EKS private API server endpoint is enabled | bool | false | cluster_endpoint_public_access | Indicates whether or not the Amazon EKS public API server endpoint is enabled | bool | false | cluster_endpoint_public_access_cidrs | List of CIDR blocks which can access the Amazon EKS public API server endpoint | list(string) | false | cluster_iam_role_dns_suffix | Base DNS domain name for the current partition (e.g., amazonaws.com in AWS Commercial, amazonaws.com.cn in AWS China) | string | false | cluster_identity_providers | Map of cluster identity provider configurations to enable for the cluster. Note - this is different/separate from IRSA | any | false | cluster_ip_family | The IP family used to assign Kubernetes pod and service addresses. Valid values are `ipv4` (default) and `ipv6`. You can only specify an IP family when you create a cluster, changing this value will force a new cluster to be created | string | false | cluster_name | Name of the EKS cluster | string | false | cluster_security_group_additional_rules | List of additional security group rules to add to the cluster security group created. Set `source_node_security_group = true` inside rules to set the `node_security_group` as source | any | false | cluster_security_group_description | Description of the cluster security group created | string | false | cluster_security_group_id | Existing security group ID to be attached to the cluster. Required if `create_cluster_security_group` = `false` | string | false | cluster_security_group_name | Name to use on cluster security group created | string | false | cluster_security_group_tags | A map of additional tags to add to the cluster security group created | map(string) | false | cluster_security_group_use_name_prefix | Determines whether cluster security group name (`cluster_security_group_name`) is used as a prefix | string | false | cluster_service_ipv4_cidr | The CIDR block to assign Kubernetes service IP addresses from. If you don't specify a block, Kubernetes assigns addresses from either the 10.100.0.0/16 or 172.20.0.0/16 CIDR blocks | string | false | cluster_tags | A map of additional tags to add to the cluster | map(string) | false | cluster_timeouts | Create, update, and delete timeout configurations for the cluster | map(string) | false | cluster_version | Kubernetes `.` version to use for the EKS cluster (i.e.: `1.21`) | string | false | create | Controls if EKS resources should be created (affects nearly all resources) | bool | false | create_cloudwatch_log_group | Determines whether a log group is created by this module for the cluster logs. If not, AWS will automatically create one if logging is enabled | bool | false | create_cluster_security_group | Determines if a security group is created for the cluster or use the existing `cluster_security_group_id` | bool | false | create_cni_ipv6_iam_policy | Determines whether to create an [`AmazonEKS_CNI_IPv6_Policy`](https://docs.aws.amazon.com/eks/latest/userguide/cni-iam-role.html#cni-iam-role-create-ipv6-policy) | bool | false | create_iam_role | Determines whether a an IAM role is created or to use an existing IAM role | bool | false | create_node_security_group | Determines whether to create a security group for the node groups or use the existing `node_security_group_id` | bool | false | custom_oidc_thumbprints | Additional list of server certificate thumbprints for the OpenID Connect (OIDC) identity provider's server certificate(s) | list(string) | false | eks_managed_node_group_defaults | Map of EKS managed node group default configurations | any | false | eks_managed_node_groups | Map of EKS managed node group definitions to create | any | false | enable_irsa | Determines whether to create an OpenID Connect Provider for EKS to enable IRSA | bool | false | fargate_profile_defaults | Map of Fargate Profile default configurations | any | false | fargate_profiles | Map of Fargate Profile definitions to create | any | false | iam_role_additional_policies | Additional policies to be added to the IAM role | list(string) | false | iam_role_arn | Existing IAM role ARN for the cluster. Required if `create_iam_role` is set to `false` | string | false | iam_role_description | Description of the role | string | false | iam_role_name | Name to use on IAM role created | string | false | iam_role_path | Cluster IAM role path | string | false | iam_role_permissions_boundary | ARN of the policy that is used to set the permissions boundary for the IAM role | string | false | iam_role_tags | A map of additional tags to add to the IAM role created | map(string) | false | iam_role_use_name_prefix | Determines whether the IAM role name (`iam_role_name`) is used as a prefix | string | false | node_security_group_additional_rules | List of additional security group rules to add to the node security group created. Set `source_cluster_security_group = true` inside rules to set the `cluster_security_group` as source | any | false | node_security_group_description | Description of the node security group created | string | false | node_security_group_id | ID of an existing security group to attach to the node groups created | string | false | node_security_group_name | Name to use on node security group created | string | false | node_security_group_tags | A map of additional tags to add to the node security group created | map(string) | false | node_security_group_use_name_prefix | Determines whether node security group name (`node_security_group_name`) is used as a prefix | string | false | openid_connect_audiences | List of OpenID Connect audience client IDs to add to the IRSA provider | list(string) | false | prefix_separator | The separator to use between the prefix and the generated timestamp for resource names | string | false | putin_khuylo | Do you agree that Putin doesn't respect Ukrainian sovereignty and territorial integrity? More info: https://en.wikipedia.org/wiki/Putin_khuylo! | bool | false | self_managed_node_group_defaults | Map of self-managed node group default configurations | any | false | self_managed_node_groups | Map of self-managed node group definitions to create | any | false | subnet_ids | A list of subnet IDs where the EKS cluster (ENIs) will be provisioned along with the nodes/node groups. Node groups can be deployed within a different set of subnet IDs from within the node group configuration | list(string) | false | tags | A map of tags to add to all resources | map(string) | false | vpc_id | ID of the VPC where the cluster and its nodes will be provisioned | string | false | writeConnectionSecretToRef | The secret which the cloud resource connection will be written to | [writeConnectionSecretToRef](#writeConnectionSecretToRef) | false | #### writeConnectionSecretToRef Name | Description | Type | Required | Default ------------ | ------------- | ------------- | ------------- | ------------- name | The secret name which the cloud resource connection will be written to | string | true | namespace | The secret namespace which the cloud resource connection will be written to | string | false |