EKS
Terraform module to create Amazon Elastic Kubernetes (EKS) resources
Inputs
40 / 105
access_entriesoptionalmap(object({ # Access entry kubernetes_groups = optional(list(string)) principal…Map of access entries to add to the cluster
{}additional_security_group_idsoptionallist(string)List of additional, externally created security group IDs to attach to the cluster control plane
[]addonsoptionalmap(object({ name = optional(string) # will fall back to map key before_compute …Map of cluster addon configurations to enable for the cluster. Addon name can be the map keys or set with `name`
nulladdons_timeoutsoptionalobject({ create = optional(string) update = optional(string) delete = optional(s…Create, update, and delete timeout configurations for the cluster addons
{}attach_encryption_policyoptionalboolIndicates whether or not to attach an additional policy for the cluster IAM role to utilize the encryption key provided
trueauthentication_modeoptionalstringThe authentication mode for the cluster. Valid values are `CONFIG_MAP`, `API` or `API_AND_CONFIG_MAP`
API_AND_CONFIG_MAPcloudwatch_log_group_classoptionalstringSpecified the log class of the log group. Possible values are: `STANDARD` or `INFREQUENT_ACCESS`
nullcloudwatch_log_group_kms_key_idoptionalstringIf 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)
nullcloudwatch_log_group_retention_in_daysoptionalnumberNumber of days to retain log events. Default retention - 90 days
90cloudwatch_log_group_tagsoptionalmap(string)A map of additional tags to add to the cloudwatch log group created
{}cluster_tagsoptionalmap(string)A map of additional tags to add to the cluster
{}compute_configoptionalobject({ enabled = optional(bool, false) node_pools = optional(list(string)) nod…Configuration block for the cluster compute configuration
nullcontrol_plane_egress_modeoptionalstringEgress mode for the EKS control plane. Valid values are `AWS_MANAGED` and `CUSTOMER_ROUTED`
nullcontrol_plane_scaling_configoptionalobject({ tier = string })Configuration block for the EKS Provisioned Control Plane scaling tier. Valid values for tier are `standard`, `tier-xl`, `tier-2xl`, `tier-4xl` and `tier-8xl`
nullcontrol_plane_subnet_idsoptionallist(string)A list of subnet IDs where the EKS cluster control plane (ENIs) will be provisioned. Used for expanding the pool of subnets used by nodes/node groups without replacing the EKS control plane
[]createoptionalboolControls if resources should be created (affects nearly all resources)
truecreate_auto_mode_iam_resourcesoptionalboolDetermines whether to create/attach IAM resources for EKS Auto Mode. Useful for when using only custom node pools and not built-in EKS Auto Mode node pools
falsecreate_cloudwatch_log_groupoptionalboolDetermines whether a log group is created by this module for the cluster logs. If not, AWS will automatically create one if logging is enabled
truecreate_cni_ipv6_iam_policyoptionalboolDetermines 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)
falsecreate_iam_roleoptionalboolDetermines whether an IAM role is created for the cluster
truecreate_kms_keyoptionalboolControls if a KMS key for cluster encryption should be created
truecreate_node_iam_roleoptionalboolDetermines whether an EKS Auto node IAM role is created
truecreate_node_security_groupoptionalboolDetermines whether to create a security group for the node groups or use the existing `node_security_group_id`
truecreate_primary_security_group_tagsoptionalboolIndicates whether or not to tag the cluster's primary security group. This security group is created by the EKS service, not the module, and therefore tagging is handled after cluster creation
truecreate_security_groupoptionalboolDetermines if a security group is created for the cluster. Note: the EKS service creates a primary security group for the cluster by default
truecustom_oidc_thumbprintsoptionallist(string)Additional list of server certificate thumbprints for the OpenID Connect (OIDC) identity provider's server certificate(s)
[]dataplane_wait_durationoptionalstringDuration to wait after the EKS cluster has become active before creating the dataplane components (EKS managed node group(s), self-managed node group(s), Fargate profile(s))
30sdeletion_protectionoptionalboolWhether to enable deletion protection for the cluster. When enabled, the cluster cannot be deleted unless deletion protection is first disabled
nulleks_managed_node_groupsoptionalmap(object({ create = optional(bool) kubernetes_version = optional(string) # EKS…Map of EKS managed node group definitions to create
nullenable_auto_mode_custom_tagsoptionalboolDetermines whether to enable permissions for custom tags resources created by EKS Auto Mode
trueenable_cluster_creator_admin_permissionsoptionalboolIndicates whether or not to add the cluster creator (the identity used by Terraform) as an administrator via access entry
falseenable_irsaoptionalboolDetermines whether to create an OpenID Connect Provider for EKS to enable IRSA
trueenable_kms_key_rotationoptionalboolSpecifies whether key rotation is enabled
trueenabled_log_typesoptionallist(string)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)
[…]encryption_configoptionalobject({ provider_key_arn = optional(string) resources = optional(list(string), …Configuration block with encryption configuration for the cluster
{}encryption_policy_descriptionoptionalstringDescription of the cluster encryption policy created
Cluster encryption policy to allow cluster role to utilize CMK providedencryption_policy_nameoptionalstringName to use on cluster encryption policy created
nullencryption_policy_pathoptionalstringCluster encryption policy path
nullencryption_policy_tagsoptionalmap(string)A map of additional tags to add to the cluster encryption policy created
{}encryption_policy_use_name_prefixoptionalboolDetermines whether cluster encryption policy name (`cluster_encryption_policy_name`) is used as a prefix
trueAll 105 are optional — the module deploys with none of them set. Showing 40, so the site stays a static download — the remaining 65 are in the source.
Outputs
40 / 41
access_entriesMap of access entries created and their attributes
access_policy_associationsMap of eks cluster access policy associations created and their attributes
cloudwatch_log_group_arnArn of cloudwatch log group created
cloudwatch_log_group_nameName of cloudwatch log group created
cluster_addonsMap of attribute maps for all EKS cluster addons enabled
cluster_arnThe Amazon Resource Name (ARN) of the cluster
cluster_certificate_authority_dataBase64 encoded certificate data required to communicate with the cluster
cluster_control_plane_scaling_tierThe EKS Provisioned Control Plane scaling tier for the cluster
cluster_dualstack_oidc_issuer_urlDual-stack compatible URL on the EKS cluster for the OpenID Connect identity provider
cluster_endpointEndpoint for your Kubernetes API server
cluster_iam_role_arnCluster IAM role ARN
cluster_iam_role_nameCluster IAM role name
cluster_iam_role_unique_idStable and unique string identifying the IAM role
cluster_idThe ID of the EKS cluster. Note: currently a value is returned only for local EKS clusters created on Outposts
cluster_identity_providersMap of attribute maps for all EKS identity providers enabled
cluster_ip_familyThe IP family used by the cluster (e.g. `ipv4` or `ipv6`)
cluster_nameThe name of the EKS cluster
cluster_oidc_issuer_urlThe URL on the EKS cluster for the OpenID Connect identity provider
cluster_platform_versionPlatform version for the cluster
cluster_primary_security_group_idCluster security group that was created by Amazon EKS for the cluster. Managed node groups use this security group for control-plane-to-data-plane communication. Referred to as 'Cluster security group' in the EKS console
cluster_security_group_arnAmazon Resource Name (ARN) of the cluster security group
cluster_security_group_idID of the cluster security group
cluster_service_cidrThe CIDR block where Kubernetes pod and service IP addresses are assigned from
cluster_statusStatus of the EKS cluster. One of `CREATING`, `ACTIVE`, `DELETING`, `FAILED`
cluster_tls_certificate_sha1_fingerprintThe SHA1 fingerprint of the public key of the cluster's certificate
cluster_versionThe Kubernetes version for the cluster
eks_managed_node_groupsMap of attribute maps for all EKS managed node groups created
eks_managed_node_groups_autoscaling_group_namesList of the autoscaling group names created by EKS managed node groups
fargate_profilesMap of attribute maps for all EKS Fargate Profiles created
kms_key_arnThe Amazon Resource Name (ARN) of the key
kms_key_idThe globally unique identifier for the key
kms_key_policyThe IAM resource policy set on the key
node_iam_role_arnEKS Auto node IAM role ARN
node_iam_role_nameEKS Auto node IAM role name
node_iam_role_unique_idStable and unique string identifying the IAM role
node_security_group_arnAmazon Resource Name (ARN) of the node shared security group
node_security_group_idID of the node shared security group
oidc_providerThe OpenID Connect identity provider (issuer URL without leading `https://`)
oidc_provider_arnThe ARN of the OIDC Provider if `enable_irsa = true`
self_managed_node_groupsMap of attribute maps for all self managed node groups created
What the agent wires into the next module. An edge on the architecture diagram is one of these consumed by something else. Showing 40 of 41 — the rest are in the source.