Skip to content

Latest commit

 

History

History
46 lines (35 loc) · 1.59 KB

README.md

File metadata and controls

46 lines (35 loc) · 1.59 KB

Automated Standard EKS deployment

This repository contains Terraform scripts and Kubernetes resources to automate the deployment of a standard EKS cluster along with related resources and applications. It simplifies the provisioning and management of the EKS cluster, providing a quick way to get started with Kubernetes on AWS.

Overview

The deployment set up the following resources:

  • VPC: A Virtual Private Cloud for isolating your cluster.
  • EKS Cluster: Managed Kubernetes service that makes it easier to deploy, manage, and scale containerized applications.
  • EKS Node Group: A group of worker nodes that register with the Kubernetes control plane.
  • ArgoCD: Continuous Delivery tool for Kubernetes.
  • AWS-LB Ingress Controller: Manages AWS Load Balancers for ingress traffic.
  • External-DNS: Automatically manages external DNS records based on ingress and service resources.

Prerequisites

  • AWS Account with necessary permissions
  • Terraform v1.5+ installed
  • kubectl v1.27+ installed
  • AWS CLI configured with access credentials

Deploy Infrastructure

Update needed delcarations in variables.tf

cd terraform

terraform init
terraform plan -out plan.out
terraform apply plan.out

Note: You may have to apply twice

Deploy K8s resources

Update declarations in the following files with your account information:

  • alb-controller.yaml

  • cluster-autoscaler.yaml

  • external-dns.yaml

  • ingress-argo.yaml

cd ../k8s

cat *.yaml | kubectl apply -f -

Note: It may take around 5-10 minutes before all k8s deployments and resources are deployed.