Rename Terraform resources and Scaleway pool names for clarity:
- always_on → services (runs postgres, redis, microservices)
- ci_build → ci_training (L40S for hyperopt + training jobs)
Includes:
- moved{} blocks to prevent Terraform state destroy+recreate
- Output renames + new outputs for ci-compile and ci-training pools
- node_selector_overwrite_allowed in runner config (enables per-job
KUBERNETES_NODE_SELECTOR_* overrides for L4/L40S routing)
MIGRATION (after terragrunt apply):
1. terragrunt apply — recreates pools with new names
2. Update K8s manifests: always-on→services in nodeSelectors
(postgres, redis, questdb, tailscale, idle-reaper, postgres-init)
3. Update .gitlab-ci.yml: ci-build→ci-training in training jobs
4. Update runner-values.yaml: default pool ci-build→ci-compile
5. helm upgrade gitlab-runner + kubectl apply changed manifests
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
102 lines
2.4 KiB
HCL
102 lines
2.4 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 "services_type" {
|
|
description = "Instance type for the always-on node pool"
|
|
type = string
|
|
default = "DEV1-M"
|
|
}
|
|
|
|
variable "services_max_size" {
|
|
description = "Maximum number of nodes in the always-on pool (autoscaling)"
|
|
type = number
|
|
default = 2
|
|
}
|
|
|
|
variable "enable_gitlab_pool" {
|
|
description = "Create dedicated node pool for GitLab CE"
|
|
type = bool
|
|
default = false
|
|
}
|
|
|
|
variable "gitlab_type" {
|
|
description = "Instance type for the GitLab node pool"
|
|
type = string
|
|
default = "DEV1-L"
|
|
}
|
|
|
|
variable "enable_ci_compile_pool" {
|
|
description = "Create L4 GPU node pool for CI compilation + testing"
|
|
type = bool
|
|
default = false
|
|
}
|
|
|
|
variable "ci_compile_type" {
|
|
description = "Instance type for the CI compile pool (L4 for CUDA compilation)"
|
|
type = string
|
|
default = "L4-1-24G"
|
|
}
|
|
|
|
variable "ci_compile_max_size" {
|
|
description = "Maximum number of nodes in the CI compile pool"
|
|
type = number
|
|
default = 1
|
|
}
|
|
|
|
variable "enable_ci_training_pool" {
|
|
description = "Create L40S GPU node pool for training + hyperopt"
|
|
type = bool
|
|
default = false
|
|
}
|
|
|
|
variable "ci_training_type" {
|
|
description = "Instance type for the CI training pool (L40S for 48GB VRAM training)"
|
|
type = string
|
|
default = "L40S-1-48G"
|
|
}
|
|
|
|
variable "ci_training_max_size" {
|
|
description = "Maximum number of nodes in the CI training pool"
|
|
type = number
|
|
default = 1
|
|
}
|
|
|
|
variable "enable_dev_pool" {
|
|
description = "Create CPU node pool for remote development (DevPod)"
|
|
type = bool
|
|
default = false
|
|
}
|
|
|
|
variable "dev_pool_type" {
|
|
description = "Instance type for the dev node pool"
|
|
type = string
|
|
default = "GP1-L"
|
|
}
|
|
|
|
variable "dev_pool_max_size" {
|
|
description = "Maximum number of nodes in the dev 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
|
|
}
|
|
|