eks-cluster

cloudposse/eks-cluster/aws

Terraform Module HCL AWS

Terraform module for provisioning an EKS cluster

Install
module "eks-cluster" {
source = "cloudposse/eks-cluster/aws"
version = "4.8.0"
}
⭐ Source on GitHub 📦 Registry page
README

Terraform module to provision an EKS cluster on AWS. This Terraform module provisions a fully configured AWS EKS (Elastic Kubernetes Service) cluster. It's engineered to integrate smoothly with Karpenter and EKS addons, forming a critical part of Cloud Posse's reference architecture. Ideal for teams looking to deploy scalable and manageable Kubernetes clusters on AWS with minimal fuss. > [!TIP] > #### 👽 Use Atmos with Terraform > Cloud Posse uses atmos to easily orchestrate multiple environments using Terraform. > Works with Github Actions, Atlantis, or Spacelift. > > > Watch demo of using Atmos with Terraform > > Example of running atmos to manage infrastructure from our Quick Start tutorial. > Introduction The module provisions the following resources: - EKS cluster of master nodes that

Inputs (50)
NameTypeDescriptionDefault
subnet_idslist(string)A list of subnet IDs to launch the cluster in required
label_orderlist(string)The order in which the labels (ID elements) appear in the `id`. Defaults to ["nanull
associated_security_group_idslist(string)A list of IDs of Security Groups to associate the cluster with. These security g[]
stagestringID element. Usually used to indicate role, e.g. 'prod', 'staging', 'source', 'bunull
regionstringOBSOLETE (not needed): AWS Regionnull
cluster_encryption_config_kms_key_policystringCluster Encryption Config KMS Key Resource argument - key policynull
addons_depends_onanyIf provided, all addons will depend on this object, and therefore not be installnull
allowed_security_group_idslist(string)A list of IDs of Security Groups to allow access to the cluster. []
eks_cluster_service_role_arnstringThe ARN of an IAM role for the EKS cluster to use that provides permissions for null
access_entry_mapmap(object({ # key is prinMap of IAM Principal ARNs to access configuration. Preferred over other inputs a{}
managed_security_group_rules_enabledboolFlag to enable/disable the ingress and egress rules for the EKS managed Securitytrue
id_length_limitnumberLimit `id` to this many characters (minimum 6). Set to `0` for unlimited length.null
cluster_depends_onanyIf provided, the EKS will depend on this object, and therefore not be created unnull
cluster_encryption_config_enabledboolSet to `true` to enable Cluster Encryption Configurationtrue
cluster_encryption_config_resourceslist(any)Cluster Encryption Config Resources to encrypt, e.g. ['secrets'][ "secrets" ]
bootstrap_self_managed_addons_enabledboolManages bootstrap of default networking addons after cluster has been creatednull
custom_ingress_ruleslist(object({ description A List of Objects, which are custom security group rules that []
kubernetes_versionstringDesired Kubernetes master version. If you do not specify a value, the latest ava"1.21"
endpoint_public_accessboolIndicates whether or not the Amazon EKS public API server endpoint is enabled. Dtrue
cluster_log_retention_periodnumberNumber of days to retain cluster logs. Requires `enabled_cluster_log_types` to b0
permissions_boundarystringIf provided, all IAM roles will be created with this permissions boundary attachnull
… and 10 more inputs
Outputs (18)
eks_cluster_role_arn — ARN of the EKS cluster IAM role
cluster_encryption_config_enabled — If true, Cluster Encryption Configuration is enabled
cluster_encryption_config_provider_key_alias — Cluster Encryption Config KMS Key Alias ARN
cloudwatch_log_group_name — The name of the log group created in cloudwatch where cluster logs are forwarded to if enabled
eks_cluster_identity_oidc_issuer_arn — The OIDC Identity issuer ARN for the cluster that can be used to associate IAM roles with a service
eks_cluster_certificate_authority_data — The Kubernetes cluster certificate authority data
eks_cluster_id — The name of the cluster
eks_cluster_arn — The Amazon Resource Name (ARN) of the cluster
eks_addons_versions — Map of enabled EKS Addons names and versions
cluster_encryption_config_provider_key_arn — Cluster Encryption Config KMS Key ARN
eks_cluster_version — The Kubernetes server version of the cluster
eks_cluster_identity_oidc_issuer — The OIDC Identity issuer for the cluster
eks_cluster_managed_security_group_id — Security Group ID that was created by EKS for the cluster. EKS creates a Security Group and applies
eks_cluster_ipv4_service_cidr — The IPv4 CIDR block that Kubernetes pod and service IP addresses are assigned from if `kubernetes_ne
eks_cluster_ipv6_service_cidr — The IPv6 CIDR block that Kubernetes pod and service IP addresses are assigned from if `kubernetes_ne
cluster_encryption_config_resources — Cluster Encryption Config Resources
cloudwatch_log_group_kms_key_id — KMS Key ID to encrypt AWS CloudWatch logs
eks_cluster_endpoint — The endpoint for the Kubernetes API server
Resources (12)
aws_cloudwatch_log_groupaws_eks_access_entryaws_eks_access_policy_associationaws_eks_addonaws_eks_clusteraws_iam_openid_connect_provideraws_iam_policyaws_iam_roleaws_iam_role_policy_attachmentaws_kms_aliasaws_kms_keyaws_vpc_security_group_ingress_rule
Details
FrameworkTerraform Module
LanguageHCL
Version4.8.0
Cloud AWS
★ Stars548
Forks366
Total downloads1.0M
Inputs50
Outputs18
Resources12
Examples2
LicenseApache-2.0
Namespacecloudposse
Updated