Files

52 lines
1.1 KiB
Terraform

resource "helm_release" "traefik" {
# depends_on = [ helm_release.prometheus ]
name = "traefik"
namespace = "default"
chart = "traefik/traefik"
set {
name = "deployment.replicas"
value = "2"
}
set {
name = "service.spec.loadBalancerIP"
value = "${var.network_subnet}.${var.net_hosts.traefik}"
}
values = [
templatefile("static/traefik-static-config.tmpl", { traefik_api_key_value = var.traefik_api_key })
]
}
resource "kubernetes_config_map" "traefic_cfg_map" {
metadata {
name = "traefik-config"
namespace = "default"
}
data = {
"traefik-config.yaml" = file("static/traefik-cfg.yaml")
}
}
resource "kubernetes_service" "traefik_svc" {
depends_on = [kubernetes_config_map.metallb_cfg_map, helm_release.traefik]
metadata {
namespace = "default"
name = "traefik-dashboard"
annotations = {
"metallb.universe.tf/address-pool" : "default"
}
}
spec {
port {
port = 80
target_port = 9000
}
selector = {
"app.kubernetes.io/instance" : "traefik"
}
type = "LoadBalancer"
}
}