mirror of
https://github.com/luxfi/lux-gpu-ci.git
synced 2026-10-30 16:20:42 +00:00
EKS cluster with Karpenter v1 NodePool that scales g4dn.xlarge spot instances 0..1 on demand for CUDA workflows. ARC RunnerScaleSet registers as [self-hosted, linux, amd64, cuda, gpu, t4]. Components: - terraform/ — VPC, EKS 1.31, system node group, Karpenter IAM/SQS - helm/karpenter-nodepool.yaml — v1 NodePool + EC2NodeClass for GPU spot - helm/nvidia-device-plugin-values.yaml — DS with GPU taint toleration - helm/arc-values.yaml + helm/runner-scaleset.yaml — ARC v0.9.x - bootstrap.sh — one-shot deploy - Makefile — init/apply/destroy/verify/cost-estimate Cost: ~$138/mo idle (EKS control plane + tiny system node + NAT), ~$0.027/build for a 10-minute g4dn.xlarge spot run.
46 lines
1.0 KiB
Terraform
46 lines
1.0 KiB
Terraform
variable "region" {
|
|
description = "AWS region. us-west-2 has good g4dn spot capacity."
|
|
type = string
|
|
default = "us-west-2"
|
|
}
|
|
|
|
variable "cluster_name" {
|
|
description = "EKS cluster name."
|
|
type = string
|
|
default = "lux-gpu-ci"
|
|
}
|
|
|
|
variable "cluster_version" {
|
|
description = "Kubernetes minor version."
|
|
type = string
|
|
default = "1.31"
|
|
}
|
|
|
|
variable "vpc_cidr" {
|
|
description = "VPC CIDR block."
|
|
type = string
|
|
default = "10.42.0.0/16"
|
|
}
|
|
|
|
variable "system_instance_type" {
|
|
description = "Instance type for the always-on system node group (Karpenter, ARC controller, kube-system)."
|
|
type = string
|
|
default = "t3.medium"
|
|
}
|
|
|
|
variable "github_org" {
|
|
description = "GitHub organization that hosts the runner repos."
|
|
type = string
|
|
default = "luxfi"
|
|
}
|
|
|
|
variable "tags" {
|
|
description = "Tags applied to all resources."
|
|
type = map(string)
|
|
default = {
|
|
Project = "lux-gpu-ci"
|
|
ManagedBy = "terraform"
|
|
Component = "gpu-ci"
|
|
}
|
|
}
|