This module creates a fully functional Amazon EKS cluster with associated resources.
module "linuxtips_eks" {
source = "./linuxtips-eks"
name = "my-cluster"
region = "eu-west-1"
vpc_cidr_block = "10.0.0.0/16"
public_subnet_cidrs = ["10.0.0.0/19", "10.0.32.0/19", "10.0.64.0/19"]
private_subnet_cidrs = ["10.0.128.0/19", "10.0.160.0/19", "10.0.192.0/19"]
availability_zones = ["eu-west-1a", "eu-west-1b", "eu-west-1c"]
cluster_name = "my-cluster"
node_instance_types = ["c5.large"]
node_group_desired_size = 2
node_group_max_size = 6
node_group_min_size = 2
tags = {
Environment = "production"
Team = "Platform Engineering"
}
}
name
: Name of the EKS cluster.region
: AWS region.vpc_cidr_block
: CIDR block for the VPC.public_subnet_cidrs
: List of CIDR blocks for public subnets.private_subnet_cidrs
: List of CIDR blocks for private subnets.availability_zones
: List of availability zones for the subnets.cluster_name
: Name of the EKS cluster.node_instance_types
: List of instance types for the worker nodes.node_group_desired_size
: Desired size of the node group.node_group_max_size
: Maximum size of the node group.node_group_min_size
: Minimum size of the node group.tags
: Tags to apply to the resources.
eks_cluster_id
: ID of the EKS cluster.eks_cluster_endpoint
: Endpoint of the EKS cluster.eks_cluster_certificate_authority
: Certificate authority data for the cluster.eks_cluster_oidc_issuer_url
: OIDC issuer URL of the EKS cluster.eks_node_group_role_arn
: ARN of the node group IAM role.eks_autoscaler_role_arn
: ARN of the cluster autoscaler IAM role.eks_cluster_oidc_provider_arn
: ARN of the OIDC provider for the EKS cluster.eks_cluster_oidc_provider_id
: ID of the OIDC provider for the EKS cluster.
- The module creates a VPC, subnets, and other necessary resources in the specified region.
- The module creates a node group with the specified instance types and autoscaling configuration.
- The module creates an IAM role for the node group and a cluster autoscaler role.
- The module creates an OIDC provider for the EKS cluster.
- The module creates an IAM policy for the EKS cluster autoscaler.
- The module creates an IAM role for the EKS cluster autoscaler.
- The module creates an IAM policy for the EKS cluster autoscaler.
The Terraform state is stored in an S3 bucket and a DynamoDB table. The bucket and table are created in the root module.
The Terraform state is locked using a DynamoDB table. The table is created in the root module.