variable "region" {
  description = "Scaleway region for the Kapsule cluster"
  type        = string
}

variable "cluster_name" {
  description = "Name of the Kubernetes cluster"
  type        = string
}

variable "k8s_version" {
  description = "Kubernetes version for the Kapsule cluster"
  type        = string
}

variable "platform_type" {
  description = "Instance type for the platform node pool"
  type        = string
}

variable "platform_max_size" {
  description = "Maximum number of nodes in the platform pool"
  type        = number
}

variable "enable_ci_training_l40s_pool" {
  description = "Create L40S GPU node pool for training + hyperopt"
  type        = bool
  default     = false
}

variable "ci_training_l40s_type" {
  description = "Instance type for the L40S training pool"
  type        = string
  default     = "L40S-1-48G"
}

variable "ci_training_l40s_max_size" {
  description = "Maximum number of nodes in the L40S training pool"
  type        = number
  default     = 1
}

variable "enable_ci_training_h100_pool" {
  description = "Create H100 GPU node pool for training + hyperopt"
  type        = bool
  default     = false
}

variable "ci_training_h100_type" {
  description = "Instance type for the H100 training pool"
  type        = string
  default     = "H100-1-80G"
}

variable "ci_training_h100_max_size" {
  description = "Maximum number of nodes in the H100 training pool"
  type        = number
  default     = 1
}

variable "enable_ci_compile_cpu_pool" {
  description = "Create high-CPU node pool for CI compilation"
  type        = bool
  default     = false
}

variable "ci_compile_cpu_type" {
  description = "Instance type for the CPU compile pool"
  type        = string
}

variable "ci_compile_cpu_max_size" {
  description = "Maximum number of nodes in the CPU compile pool"
  type        = number
  default     = 1
}

# ─── High-memory CPU compile pool (rare full-rebuild path) ──────────────
# Separate pool with min_size=0 autoscaling — pays nothing when idle, only
# provisions a large-RAM node when `ensure-fxcache` requests this pool
# (9-quarter precompute_features needs ~50-60GB peak which won't fit on
# the standard 64GB ci-compile-cpu pool with kernel + page-cache overhead).

variable "enable_ci_compile_cpu_hm_pool" {
  description = "Create a high-memory CPU pool for rare full-rebuild fxcache runs"
  type        = bool
  default     = false
}

variable "ci_compile_cpu_hm_type" {
  description = "Instance type for the high-memory CPU pool (e.g. POP2-HM-32C-256G)"
  type        = string
  default     = "POP2-HM-32C-256G"
}

variable "ci_compile_cpu_hm_max_size" {
  description = "Maximum number of nodes in the high-memory CPU pool"
  type        = number
  default     = 1
}

variable "public_ip_disabled" {
  description = "Disable public IPs on all node pools (requires Public Gateway for egress)"
  type        = bool
  default     = false
}
