Files
foxhunt/infra/live/production/kapsule/terragrunt.hcl
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

45 lines
1.3 KiB
HCL

include "root" {
path = find_in_parent_folders("root.hcl")
}
terraform {
source = "../../../modules/kapsule"
}
inputs = {
cluster_name = "foxhunt"
k8s_version = "1.34"
# Platform pool — runs everything: app services, databases, GitLab, monitoring
platform_type = "DEV1-L"
platform_max_size = 3
# CPU compile pool (POP2-HC-32C-64G — 32 vCPU, 64GB RAM, high clock)
enable_ci_compile_cpu_pool = true
ci_compile_cpu_type = "POP2-HC-32C-64G"
ci_compile_cpu_max_size = 4
# L40S training pool (48GB VRAM, CUDA CC 89)
enable_ci_training_l40s_pool = true
ci_training_l40s_type = "L40S-1-48G"
ci_training_l40s_max_size = 1
# H100 training pool (80GB VRAM, CUDA CC 90)
enable_ci_training_h100_pool = true
ci_training_h100_type = "H100-1-80G"
ci_training_h100_max_size = 1
# H100x2 training pool (2x 80GB — multi-GPU parallel hyperopt)
enable_ci_training_h100x2_pool = true
ci_training_h100x2_type = "H100-2-80G"
ci_training_h100x2_max_size = 1
# H100-SXM training pool (2x 80GB SXM, NVLink)
enable_ci_training_h100_sxm_pool = true
ci_training_h100_sxm_type = "H100-SXM-2-80G"
ci_training_h100_sxm_max_size = 1
# NAT gateway handles egress — no public IPs on nodes
public_ip_disabled = true
}