Modules - Evanto/qna GitHub Wiki

Modules

The Modules directory contains Terraform modules that you can use in your projects. Modules are a collection of services that you can deploy on top of your EKS Kubernetes cluster to enable logging, monitoring, certificate management, automatic discovery of Kubernetes resources via public DNS servers, and other common infrastructure needs.

Using SAK Modules

To use modules in your cluster, include some in your project by uncommenting them in the modules.tf file, set variables for these modules in the example.tfvars file, and deploy your cluster. To add or destroy a module, add/remove it in the modules.tf file and run:

terraform plan -out plan && terraform apply plan

All SAK Modules

SAK Modules:

Some of the SAK modules are core - you can't deploy a cluster without them. Cure modules are in bold in the list below. Other modules are optional.

Core Modules

1. Kubernetes

Kubernetes module is used to deploy the EKS cluster in Amazon. It creates an autoscaling group (ASG) of EC2 instances in selected accessibility zones and runs containers on those instances, maintaining and scaling them.

2. Network

Network module is a VPC module for creating networks, load balancers, and gateways.

3. System

System module configures an EKS cluster with addons and Helm charts - cert-manager (ExternalDNS), external-dns, saled-secrets, kube-state-metrics. Cert-manager is a native Kubernetes certificate management addon to automate issuance and management of TLS certificates. ExternalDNS addon makes Kubernetes resources discoverable via public DNS servers. kube-state-metrics Helm Chart listens to the Kubernetes API server and generates metrics about the state of the objects (deployments, nodes and pods). sealed-secrets manages secretes.

Optional Modules

Other (non-core) modules are optional. You can include them in your project by uncommenting them in the modules.tf file and setting variables for them in the example.tfvars file. You can also add your own modules to include in your cluster deployments.

CI/CD Stack

Ingress Stack

Kubeflow Stack

Kubernetes Stack

Logging Stack

Monitoring Stack

Scaling Stack

Storage Stack