Files
a13labs.infra/terraform/modules/apps/open-webui/ollama_proxy.tf
T

102 lines
2.1 KiB
Terraform

resource "kubernetes_service_account" "ollama_proxy" {
count = var.ollama_proxy.enabled ? 1 : 0
metadata {
name = "ollama-proxy-sa"
namespace = kubernetes_namespace.openwebui.metadata[0].name
}
automount_service_account_token = false
}
resource "kubernetes_deployment" "ollama_proxy" {
count = var.ollama_proxy.enabled ? 1 : 0
metadata {
name = "ollama-proxy"
namespace = kubernetes_namespace.openwebui.metadata[0].name
labels = {
app = "ollama-proxy"
}
}
spec {
replicas = 1
selector {
match_labels = {
app = "ollama-proxy"
}
}
strategy {
type = "Recreate"
}
template {
metadata {
labels = {
app = "ollama-proxy"
}
}
spec {
service_account_name = kubernetes_service_account.openwebui.metadata[0].name
automount_service_account_token = false
host_network = true
container {
name = "app"
image = "a13labs/wol_proxy:v0.4.0"
image_pull_policy = "Always"
security_context {
capabilities {
add = ["NET_RAW"]
}
}
port {
name = "http"
container_port = var.ollama_proxy.port
}
env {
name = "UPSTREAM_MAC"
value = var.ollama_proxy.mac
}
env {
name = "UPSTREAM_IP"
value = var.ollama_proxy.ip
}
env {
name = "UPSTREAM_PORT"
value = var.ollama_proxy.port
}
env {
name = "UPSTREAM_SCHEME"
value = var.ollama_proxy.scheme
}
env {
name = "PROXY_PORT"
value = var.ollama_proxy.port
}
readiness_probe {
tcp_socket {
port = 11434
}
initial_delay_seconds = 5
period_seconds = 10
failure_threshold = 10
}
}
}
}
}
}