Chrysostomos Nanakos b59ddaf648
feat(k8s): add DO (Digital Ocean) Kubernetes cluster terraform
Adds Terraform configuration to provision a DO K8s cluster with
auto-scaling node pools for running Codex benchmarks.

Signed-off-by: Chrysostomos Nanakos <chris@include.gr>
2025-10-21 18:17:26 +03:00

42 lines
1.3 KiB
HCL

# VPC
resource "digitalocean_vpc" "this" {
name = local.name
region = var.region
ip_range = var.vpc_ip_range
}
# Kubernetes cluster
resource "digitalocean_kubernetes_cluster" "this" {
name = local.name
region = var.region
version = var.kubernetes_version
ha = var.kubernetes_ha
auto_upgrade = var.kubernetes_auto_upgrade
vpc_uuid = digitalocean_vpc.this.id
node_pool {
name = var.kubernetes_node_pool_name
size = var.kubernetes_node_pool_size
node_count = var.kubernetes_node_pool_count
auto_scale = var.kubernetes_node_pool_auto_scale
min_nodes = var.kubernetes_node_pool_min
max_nodes = var.kubernetes_node_pool_max
tags = var.kubernetes_node_pool_tags
labels = var.kubernetes_node_pool_labels
dynamic "taint" {
for_each = length(var.kubernetes_node_pool_taint) == 0 ? {} : { taint = true }
content {
key = lookup(var.kubernetes_node_pool_taint, "key")
value = lookup(var.kubernetes_node_pool_taint, "value")
effect = lookup(var.kubernetes_node_pool_taint, "effect")
}
}
}
maintenance_policy {
day = var.kubernetes_maintenance_day
start_time = var.kubernetes_maintenance_start_time
}
}