Files
foxhunt/infra/modules/kapsule/main.tf
jgrusewski 3e75afa160 infra: add OpenTofu modules for all Scaleway resources
- kapsule: cluster + 3 node pools (always-on, ci, gpu)
- object-storage: S3 bucket with 30-day sccache expiry
- registry: private Container Registry namespace
- secrets: JWT + DB password via Secret Manager
- block-storage: 100GB b_ssd for training data

All managed via Terragrunt with shared provider/backend.
Gitignore exception added for infra/*/secrets/ (TF code, not actual secrets).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 14:23:03 +01:00

57 lines
1.3 KiB
HCL

resource "scaleway_k8s_cluster" "foxhunt" {
name = var.cluster_name
version = var.k8s_version
cni = "cilium"
region = var.region
auto_upgrade {
enable = true
maintenance_window_start_hour = 4
maintenance_window_day = "sunday"
}
autoscaler_config {
disable_scale_down = false
scale_down_delay_after_add = "10m"
scale_down_unneeded_time = "10m"
estimator = "binpacking"
ignore_daemonsets_utilization = true
}
}
resource "scaleway_k8s_pool" "always_on" {
cluster_id = scaleway_k8s_cluster.foxhunt.id
name = "always-on"
node_type = var.always_on_type
size = 1
min_size = 1
max_size = 1
autoscaling = false
autohealing = true
region = var.region
}
resource "scaleway_k8s_pool" "ci" {
cluster_id = scaleway_k8s_cluster.foxhunt.id
name = "ci"
node_type = var.ci_type
size = 0
min_size = 0
max_size = var.ci_max_size
autoscaling = true
autohealing = true
region = var.region
}
resource "scaleway_k8s_pool" "gpu" {
cluster_id = scaleway_k8s_cluster.foxhunt.id
name = "gpu"
node_type = var.gpu_type
size = 0
min_size = 0
max_size = var.gpu_max_size
autoscaling = true
autohealing = true
region = var.region
}