eks
dasmeta/eks/aws
All terraform modules that are related or supporting EKS setup
Install
README
Why To spin up complete eks with all necessary components. Those include: - vpc (NOTE: the vpc submodule moved into separate repo https://github.com/dasmeta/terraform-aws-vpc) - eks cluster - alb ingress controller - fluentbit - external secrets - metrics to cloudwatch - karpenter - keda - linkerd - flagger - external-dns - event-exporter Upgrading guide: - from version >= 2.25.0, some manual actions are required. This version adds Karpenter support for GPU instance types. If you are using resource\_configs\_defaults, you now need to move it under resource\_configs\_defaults.default. - from =2.19.0 version needs some manual actions as we upgraded underlying eks module from 18.x.x to 20.x.x, here you can find needed actions/changes docs and ready scripts which can be used: docs: https://git
Inputs (50)
| Name | Type | Description | Default |
|---|---|---|---|
| vpc | object({ # for linking usi | VPC configuration for eks, we support both cases create new vpc(create field) an | required |
| enable_node_problem_detector | bool | true | |
| portainer_config | object({ host = | Portainer hostname and ingress config. | {} |
| karpenter | object({ enabled | Allows to create/deploy/configure karpenter operator and its resources to have c | {
"enabled": true
} |
| enable_kube_state_metrics | bool | Enable kube-state-metrics | false |
| external_dns | object({ enabled = optiona | Allows to install external-dns helm chart and related roles, which allows to aut | {
"enabled": false
} |
| account_id | string | AWS Account Id to apply changes into | null |
| adot_config | object({ accept_namespace_ | accept_namespace_regex defines the list of namespaces from which metrics will be | {
"accept_namespace_regex": "(default| |
| enable_api_gw_controller | bool | Weather enable API-GW controller or not | false |
| additional_priority_classes | list(object({ name = stri | Defines Priority Classes in Kubernetes, used to assign different levels of prior | [] |
| istio | object({ enabled = optiona | Allows to create/configure Istio with Gateway API in eks cluster. NOTE: IAM role | {} |
| users | list(any) | List of users to open eks cluster api access | [] |
| default_addons | object({ coredns = optiona | Allows to set/override default eks addons(like coredns, kube-proxy and vpc-cni) | {} |
| autoscaling | bool | Weather enable cluster autoscaler for EKS, in case if karpenter enabled this con | true |
| autoscaler_requests | object({ cpu = string | {
"cpu": "100m",
"memory": "600Mi"
} | |
| fluent_bit_configs | object({ enabled | Fluent Bit configs | {
"additional_log_filters": [
"ELB |
| map_roles | list(object({ rolearn = s | Additional IAM roles to add to the aws-auth configmap. | [] |
| bindings | list(object({ group = | Variable which describes group and role binding | [] |
| enable_olm | bool | To install OLM controller (experimental). | false |
| alarms | object({ enabled = o | Creates cloudwatch alarms on ContainerInsights `cluster_failed_node_count` metr | {} |
| linkerd | object({ enabled = opt | Allows to create/configure linkerd in eks cluster | {
"enabled": true
} |
| … and 10 more inputs | |||
Outputs (26)
regioneks_oidc_root_ca_thumbprint — Grab eks_oidc_root_ca_thumbprint from oidc_provider_arn.cluster_security_group_idcluster_primary_security_group_idcluster_certificate — EKS cluster certificate used for authentication/access in helm/kubectl/kubernetes providerscluster_token — EKS cluster token used for authentication/access in helm/kubectl/kubernetes providersvpc_default_security_group_id — The ID of default security group created for vpcaccount_idexternal_secret_deploymentcluster_iam_role_namevpc_cidr_block — The cidr block of the vpcvpc_id — The newly created vpc idvpc_nat_public_ips — The list of elastic public IPs for vpcrole_arnsnamespaces_and_docker_auth_helm_metadatacert_manager_certificate_names — Map of created cert-manager Certificate resource names by namespace/nameoidc_provider_arncluster_host — EKS cluster host name used for authentication/access in helm/kubectl/kubernetes providersvpc_private_subnets — The newly created vpc private subnets IDs listeks_auth_configmapcert_manager_cluster_issuer_names — Map of ClusterIssuer names created by cert-manager modulecluster_idmap_user_datavpc_public_subnets — The newly created vpc public subnets IDs listrole_arns_without_patheks_moduleResources (2)
Details
Similar packages
Azure landing zones Terraform module
Terraform supermodule for the Terraform platform engineering for Azure
Terraform module to deploy landing zone subscriptions (and much more) in Azure
Terraform Module to define a consistent naming convention by (namespace, stage,