Files
foxhunt/infra/modules/kapsule/variables.tf
jgrusewski fb53b81a93 infra: automate terragrunt via Argo CI, clean up kapsule module, harden PAT rotation
- Add terragrunt-apply step to Argo CI pipeline (plan+apply on main push
  when infra/live/ or infra/modules/ change)
- Bake OpenTofu 1.9.0 + Terragrunt 0.77.12 into ci-builder-cpu image
  with SHA256 checksum verification
- Remove 3 ghost node pools (foxhunt, gitlab, h100-sxm8) from kapsule
  module to match Scaleway reality
- Make terragrunt.hcl single source of truth (remove variable defaults)
- Fix GitLab TF state lock methods (POST/DELETE for HTTP backend)
- Harden PAT rotation: more retries, verification step, recovery docs
- Add weekly PAT expiry check CronJob (warns 14 days before expiry)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 23:25:33 +01:00

120 lines
2.9 KiB
HCL

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_training_h100x2_pool" {
description = "Create H100x2 GPU node pool for multi-GPU training"
type = bool
default = false
}
variable "ci_training_h100x2_type" {
description = "Instance type for the H100x2 training pool"
type = string
default = "H100-2-80G"
}
variable "ci_training_h100x2_max_size" {
description = "Maximum number of nodes in the H100x2 training pool"
type = number
default = 1
}
variable "enable_ci_training_h100_sxm_pool" {
description = "Create H100-SXM GPU node pool for NVLink multi-GPU training"
type = bool
default = false
}
variable "ci_training_h100_sxm_type" {
description = "Instance type for the H100-SXM training pool"
type = string
default = "H100-SXM-2-80G"
}
variable "ci_training_h100_sxm_max_size" {
description = "Maximum number of nodes in the H100-SXM 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
}
variable "public_ip_disabled" {
description = "Disable public IPs on all node pools (requires Public Gateway for egress)"
type = bool
default = false
}