Dynamically creating the pods/services

Allows us configurize everything w/ json later
This commit is contained in:
shockrah 2024-12-08 18:29:15 -08:00
parent bf812cce4c
commit a4a1d55a53
2 changed files with 55 additions and 2 deletions

View File

@ -8,11 +8,12 @@ resource vultr_firewall_rule web_inbound {
port = each.value port = each.value
} }
resource vultr_firewall_rule web-health-inbound { resource vultr_firewall_rule game-server-inbound {
for_each = var.game_servers.configs
firewall_group_id = vultr_kubernetes.athens.firewall_group_id firewall_group_id = vultr_kubernetes.athens.firewall_group_id
protocol = "tcp" protocol = "tcp"
ip_type = "v4" ip_type = "v4"
subnet = "0.0.0.0" subnet = "0.0.0.0"
subnet_size = 0 subnet_size = 0
port = local.sanity.port port = each.value.port
} }

View File

@ -0,0 +1,52 @@
resource kubernetes_namespace game-servers {
metadata {
name = var.game_servers.namespace
}
}
resource kubernetes_pod game {
for_each = var.game_servers.configs
metadata {
name = each.key
namespace = var.game_servers.namespace
labels = {
app = each.key
}
}
spec {
container {
image = each.value.image
name = coalesce(each.value.name, each.key)
resources {
limits = {
cpu = each.value.cpu
memory = each.value.mem
}
}
port {
container_port = each.value.port
protocol = coalesce(each.value.proto, "TCP")
}
}
}
}
resource kubernetes_service game {
for_each = var.game_servers.configs
metadata {
name = each.key
namespace = var.game_servers.namespace
}
spec {
selector = {
app = each.key
}
port {
target_port = each.value.port
port = each.value.port
node_port = each.value.port
}
type = "NodePort"
}
}