From 8cdbdf962552cfe40572739172a0aa823bfcf067 Mon Sep 17 00:00:00 2001 From: jgrusewski Date: Wed, 25 Feb 2026 21:12:49 +0100 Subject: [PATCH] infra: add gpu-dev pool for DevPod remote development MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit GP1-L (16 vCPU, 64GB), autoscaling 0→1, dedicated for dev pods. Separate from CI (H100) and inference (L4) pools. Co-Authored-By: Claude Opus 4.6 --- infra/live/production/kapsule/terragrunt.hcl | 5 +++++ infra/modules/kapsule/main.tf | 18 ++++++++++++++++++ infra/modules/kapsule/variables.tf | 18 ++++++++++++++++++ 3 files changed, 41 insertions(+) diff --git a/infra/live/production/kapsule/terragrunt.hcl b/infra/live/production/kapsule/terragrunt.hcl index 7baa95a7b..758f02f51 100644 --- a/infra/live/production/kapsule/terragrunt.hcl +++ b/infra/live/production/kapsule/terragrunt.hcl @@ -26,4 +26,9 @@ inputs = { gitlab_type = "GP1-XS" # CI builds run on gpu-training pool (H100: 24 vCPU, 240GB, fast builds + GPU tests) + + # Dev pool (GP1-L for DevPod remote development, autoscales to zero) + enable_dev_pool = true + dev_pool_type = "GP1-L" + dev_pool_max_size = 1 } diff --git a/infra/modules/kapsule/main.tf b/infra/modules/kapsule/main.tf index 171dcdda7..aebf2cc03 100644 --- a/infra/modules/kapsule/main.tf +++ b/infra/modules/kapsule/main.tf @@ -89,3 +89,21 @@ resource "scaleway_k8s_pool" "gitlab" { region = var.region } +# CPU pool for remote development (DevPod — autoscales to zero) +resource "scaleway_k8s_pool" "dev" { + count = var.enable_dev_pool ? 1 : 0 + cluster_id = scaleway_k8s_cluster.foxhunt.id + name = "gpu-dev" + node_type = var.dev_pool_type + size = 1 + min_size = 0 + max_size = var.dev_pool_max_size + autoscaling = true + autohealing = true + region = var.region + + lifecycle { + ignore_changes = [size] + } +} + diff --git a/infra/modules/kapsule/variables.tf b/infra/modules/kapsule/variables.tf index c4fd9e2cb..a33f69890 100644 --- a/infra/modules/kapsule/variables.tf +++ b/infra/modules/kapsule/variables.tf @@ -69,3 +69,21 @@ variable "gitlab_type" { default = "DEV1-L" } +variable "enable_dev_pool" { + description = "Create CPU node pool for remote development (DevPod)" + type = bool + default = false +} + +variable "dev_pool_type" { + description = "Instance type for the dev node pool" + type = string + default = "GP1-L" +} + +variable "dev_pool_max_size" { + description = "Maximum number of nodes in the dev pool" + type = number + default = 1 +} +