diff --git a/infrastructure/deployment.tf b/infrastructure/deployment.tf index 638a8e9..b8f6174 100644 --- a/infrastructure/deployment.tf +++ b/infrastructure/deployment.tf @@ -40,81 +40,9 @@ resource "kubernetes_service_v1" "automatic_service" { } -resource "kubernetes_ingress_v1" "automatic_ingress" { - for_each = { for key, value in var.kubernetes : key => value if value.service_port != null && value.enabled == true && value.docker != true && value.exposed == true } - metadata { - name = "${each.key}-ingress" - namespace = coalesce(each.value.namespace, each.value.connected_namespace, each.key) - - annotations = { - "cert-manager.io/cluster-issuer" = "letsencrypt-prod" - "traefik.ingress.kubernetes.io/router.entrypoints" = "websecure" - } - } - - spec { - ingress_class_name = "traefik" - # Dynamic TLS configuration for cert-manager - tls { - hosts = [join(".", [coalesce(each.value.domain_name, each.key), "geeraert.eu"])] - secret_name = "${each.key}-tls-secret" # cert-manager will create and manage this secret automatically - } - - rule { - host = join(".", [coalesce(each.value.domain_name, each.key), "geeraert.eu"]) - http { - path { - path = "/" - backend { - service { - name = "${each.key}-svc" - port { - number = each.value.service_port[0] #selecting the first of the list - } - } - } - } - } - } - } -} -resource "kubernetes_ingress_v1" "automatic_ingress_legacy" { - for_each = { for key, value in var.kubernetes : key => value if value.service_port != null && value.enabled == true && value.docker != true && value.exposed == true && value.legacy_domain == true } - metadata { - name = "${each.key}-ingress-legacy" - namespace = coalesce(each.value.namespace, each.value.connected_namespace, each.key) - - annotations = { - "cert-manager.io/cluster-issuer" = "letsencrypt-prod" - "traefik.ingress.kubernetes.io/router.entrypoints" = "websecure" - } - } - - spec { - ingress_class_name = "traefik" - # Dynamic TLS configuration for cert-manager - tls { - hosts = [join(".", [coalesce(each.value.domain_name, each.key), "tryton.geeraert.eu"])] - secret_name = "${each.key}-tryton-tls-secret" # cert-manager will create and manage this secret automatically - } - - rule { - host = join(".", [coalesce(each.value.domain_name, each.key), "tryton.geeraert.eu"]) - http { - path { - path = "/" - backend { - service { - name = "${each.key}-svc" - port { - number = each.value.service_port[0] #selecting the first of the list - } - } - } - } - } - } - } +module "ingress" { + source = "../modules/ingress" + kubernetes_input = var.kubernetes }