Skip to content

dimashev/Opsfleet

Repository files navigation

Opsfleet Tech Assignment - EKS & Karpenter

Infrastructure as Code (Terraform) to provision an EKS cluster with Karpenter v1 autoscaling, supporting a hybrid architecture (x86/ARM64) and Spot instances.

Architecture Highlights

  • Networking: Dedicated VPC (10.0.0.0/16) with private subnets tagged for Karpenter discovery.
  • Compute: EKS v1.30 + Karpenter v1.0.
  • Cost Efficiency:
    • Karpenter NodePool configured for spot capacity.
    • Multi-arch support (amd64 + arm64) to leverage Graviton instances.

Usage

1. Provisioning Standard Terraform workflow. Ensure AWS credentials are configured.

terraform init
terraform apply

2. Access Configure your local kubeconfig:

aws eks update-kubeconfig --region us-east-1 --name opsfleet-demo

Verification

I've included a test manifest to validate the ARM64/Spot logic.

Trigger Scaling:

kubectl apply -f test-arm-pod.yaml

Validate: Check logic in Karpenter controller logs or verify node labels:

# Should show a new ARM64 node with spot capacity
kubectl get nodes -L node.kubernetes.io/instance-type,kubernetes.io/arch,karpenter.sh/capacity-type

cleanup

terraform destroy

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages