tlloydaubry / teks

Full feature EKS cluster with Terragrunt/Terraform

Home Page:https://particuleio.github.io/teks/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

tEKS

teks teks:mkdocs semantic-release FOSSA Status

tEKS is a set of Terraform / Terragrunt modules designed to get you everything you need to run a production EKS cluster on AWS. It ships with sensible defaults, and add a lot of common addons with their configurations that work out of the box.

⚠️ the v5 and further version of this project have been completely revamp and now offer a skeleton to use as a base for your infrastructure projects around EKS. All the modules have been moved outside this repository and get their own versioning. The old README is accessible here

⚠️ Terraform implementation will not be maintained anymore because of time, and mostly because it has become quite difficult to get feature parity with Terragrunt. Archive branch is available here

Terraform/Terragrunt

  • Terraform implementation is available in the terraform folder.
  • Terragrunt implementation is available in the terragrunt folder.

Requirements

Terragrunt

Main purposes

The main goal of this project is to glue together commonly used tooling with Kubernetes/EKS and to get from an AWS Account to a production cluster with everything you need without any manual configuration.

What you get

A production cluster all defined in IaaC with Terraform/Terragrunt:

Everything is tied together with Terragrunt and allows you to deploy a multi cluster architecture in a matter of minutes (ok maybe an hour) and different AWS accounts for different environments.

Curated Features

The main additionals features are the curated addons list, see here and in the customization of the cluster policy

Enforced security

  • No IAM credentials on instances, everything is enforced with IRSA
  • Each addons is deployed in it's own namespace with sensible default network policies.
  • Calico Tigera Operator for network policy

Out of the box monitoring

  • Prometheus Operator with defaults dashboards
  • Addons that support metrics are enable along with their serviceMonitor
  • Custom grafana dashboard are available by default.

Helm v3 provider

  • All addons support Helm v3 configuration
  • All charts are easily customizable

Other and not limited to

  • priorityClasses for addons
  • use of [kubectl-provider], no more local exec and custom manifest are properly handled
  • lot of manual stuff have been automated under the hood

Requirements

Terragrunt is not a hard requirement but all the modules are tested with Terragrunt.

Examples

terragrunt/live folder provides an opinionated directory structure for a production environment with an example using

Additional infrastructure blocks

If you wish to extend your infrastructure you can pick up additional modules on the particuleio github page. Some modules can also be found on the clusterfrak-dynamics github page.

Branches

  • main: Backward incompatible with v1.X but compatible with v2.X, releases bumped to v3.X because a lot has changed.
  • release-1.X: Compatible with Terraform < 0.12 and Terragrunt < 0.19. Be sure to target the same modules version.
  • release-2.X: Compatible with Terraform >= 0.12 and Terragrunt >= 0.19. Be sure to target the same modules version.

License

FOSSA Status

About

Full feature EKS cluster with Terragrunt/Terraform

https://particuleio.github.io/teks/

License:Apache License 2.0


Languages

Language:HCL 93.9%Language:Shell 6.1%