Files
foxhunt/infra/modules/kapsule/variables.tf
jgrusewski 5380bd9186 infra: split GPU pool into training (H100) and inference (L4), add auto-taint
- Split single H100 GPU pool into two purpose-specific pools:
  - gpu-training: H100-1-80G (€2.73/hr) for 10-model ensemble training
  - gpu-inference: L4-1-24G (€0.75/hr) for cost-effective trading inference
- Add GPU taint controller DaemonSet that auto-taints new GPU nodes
  with nvidia.com/gpu=true:NoSchedule to prevent non-GPU workloads
- Fix service log directory permissions with emptyDir volumes
  (observability init fails creating /app/logs as non-root user)
- Increase postgres max_connections from 25 to 100
  (7 services each requesting connection pools exhausted the limit)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 17:39:56 +01:00

71 lines
1.6 KiB
HCL

variable "region" {
description = "Scaleway region for the Kapsule cluster"
type = string
}
variable "cluster_name" {
description = "Name of the Kubernetes cluster"
type = string
default = "foxhunt"
}
variable "k8s_version" {
description = "Kubernetes version for the Kapsule cluster"
type = string
default = "1.34"
}
variable "always_on_type" {
description = "Instance type for the always-on node pool"
type = string
default = "DEV1-M"
}
variable "ci_type" {
description = "Instance type for the CI node pool"
type = string
default = "GP1-XS"
}
variable "ci_max_size" {
description = "Maximum number of nodes in the CI pool"
type = number
default = 1
}
variable "enable_gpu_training_pool" {
description = "Create GPU node pool for ML training (H100)"
type = bool
default = false
}
variable "gpu_training_type" {
description = "Instance type for the GPU training node pool"
type = string
default = "H100-1-80G"
}
variable "gpu_training_max_size" {
description = "Maximum number of nodes in the GPU training pool"
type = number
default = 1
}
variable "enable_gpu_inference_pool" {
description = "Create GPU node pool for inference (L4)"
type = bool
default = false
}
variable "gpu_inference_type" {
description = "Instance type for the GPU inference node pool"
type = string
default = "L4-1-24G"
}
variable "gpu_inference_max_size" {
description = "Maximum number of nodes in the GPU inference pool"
type = number
default = 1
}