Skip to content

Secuoyas-Experience/sqy-tf-eks

Repository files navigation

sqy-tf-eks

docs main version

Intro

Este repositorio es un modulo de Terraform para crear un cluster de Kubernetes para AWS (EKS). Puedes buscar mas informacion del proyecto en el directorio /docs.

Ejemplo

module "cluster" {
  source                     = "git@github.com:Secuoyas-Experience/sqy-tf-eks.git?ref=1.8.0"
  cluster_name               = "my-domain-es"
  cluster_kubernetes_version = "1.29"
  cluster_cidr               = "10.0.0.0/16"
  cluster_region             = "eu-central-1"
  cluster_azs                = ["eu-central-1a", "eu-central-1b", "eu-central-1c"]
  cluster_private_subnets    = ["10.0.0.0/18", "10.0.64.0/18", "10.0.128.0/24"]
  cluster_public_subnets     = ["10.0.192.0/24", "10.0.193.0/24", "10.0.194.0/24"]
  inception_min_size         = 1
  inception_max_size         = 1
  inception_desired_size     = 1
  environment                = "dev"
  organization               = "my.domain.es"
}

A continuacion se muestra la documentacion de Terraform generada con Terraform Docs

Requirements

Name Version
terraform >= 1.5
aws ~> 5.67.0
helm >=2.11.0
kubectl ~> 2.0.4
kubernetes ~> 2.24.0

Providers

Name Version
aws ~> 5.67.0
kubectl ~> 2.0.4

Modules

Name Source Version
cluster_eks terraform-aws-modules/eks/aws 20.8.5
ebs_csi_driver_irsa terraform-aws-modules/iam/aws//modules/iam-role-for-service-accounts-eks ~> 5.39.0
vpc terraform-aws-modules/vpc/aws 5.4.0

Resources

Name Type
aws_iam_role.kube_admin_role resource
kubectl_manifest.snapshotter_controller resource
kubectl_manifest.snapshotter_crds resource
kubectl_manifest.snapshotter_rbac resource
aws_caller_identity.current data source
aws_iam_policy_document.assume_role_policy_document data source
aws_iam_policy_document.eks_read_policy_document data source
kubectl_file_documents.snapshotter_crds data source
kubectl_file_documents.snapshotter_deployment data source
kubectl_file_documents.snapshotter_rbac data source

Inputs

Name Description Type Default Required
access_entries EKS access entries (https://docs.aws.amazon.com/eks/latest/userguide/access-entries.html) any {} no
cluster_azs VPC azs list(string) n/a yes
cluster_cidr VPC cidr string "10.0.0.0/16" no
cluster_domains Domain names handled by this cluster. Normally the NS domain name where ingresses are under (e.g dev.mycompany.com) list(string) [] no
cluster_domains_zones_arns Zone arns. Should be provided by another resource. If you want this module to create them use cluster_domains variable list(string) [] no
cluster_enable_snapshotter if true enables VolumeSnapshot API bool false no
cluster_kubernetes_version Cluster kubernetes version string "1.29" no
cluster_name AWS EKS cluster name string n/a yes
cluster_node_security_group_additional_rules security group rules between nodes any {} no
cluster_private_endpoint_enabled if true enables private EKS endpoint bool true no
cluster_private_subnets VPC private subnets. Normally used by nodes and pods list(string) n/a yes
cluster_public_endpoint_enabled if true enables public EKS endpoint bool true no
cluster_public_endpoint_whitelist_cidrs network cidrs from which EKS endpoint is accessible. By default if enable is accessible from anywhere list(string)
[
"0.0.0.0/0"
]
no
cluster_public_subnets VPC public subnets. Normally used by the AWS load balancers to expose services list(string) n/a yes
cluster_region AWS region where the EKS cluster is located string n/a yes
cluster_security_group_additional_rules security group rules allowed to access EKS cluster (helpful for VPN rules) any {} no
environment Type of environment (dev,stg,prod) string n/a yes
inception_desired_size number of desired cluster node group instances number 1 no
inception_max_size number of max cluster node group instances number 1 no
inception_min_size number of min cluster node group instances number 1 no
inception_types list of types of initial cluster node group instances list(string)
[
"t3a.medium"
]
no
organization Organization the cluster is used for string n/a yes

Outputs

Name Description
cluster_certificate_authority_data n/a
cluster_endpoint n/a
cluster_kubernetes_version n/a
cluster_name n/a
oidc_provider_arn n/a
vpc_azs n/a
vpc_id n/a
vpc_private_subnets n/a
vpc_private_subnets_cidr_blocks n/a
vpc_public_subnets n/a
vpc_public_subnets_cidr_blocks n/a