locals { dns_names = ["${var.sub_domain}.${var.domain_name}"] service = { "name" = "${var.instance}" "port" = { "number" = 80 } } } resource "kubectl_manifest" "gitlab_userinfo" { yaml_body = <<-EOF apiVersion: traefik.io/v1alpha1 kind: Middleware metadata: name: "${var.instance}-gitlab-userinfo" namespace: "${var.namespace}" labels: ${jsonencode(local.common-labels)} spec: replacePathRegex: regex: ^/application/o/[^\\/]*/api/v4/user replacement: /application/o/userinfo/ EOF } resource "kubectl_manifest" "gitlab_authorize" { yaml_body = <<-EOF apiVersion: traefik.io/v1alpha1 kind: Middleware metadata: name: "${var.instance}-gitlab-authorize" namespace: "${var.namespace}" labels: ${jsonencode(local.common-labels)} spec: replacePathRegex: regex: ^/application/o/[^\\/]*/oauth/authorize replacement: /application/o/authorize/ EOF } resource "kubectl_manifest" "gitlab_token" { yaml_body = <<-EOF apiVersion: traefik.io/v1alpha1 kind: Middleware metadata: name: "${var.instance}-gitlab-token" namespace: "${var.namespace}" labels: ${jsonencode(local.common-labels)} spec: replacePathRegex: regex: ^/application/o/[^\\/]*/oauth/token replacement: /application/o/token/ EOF } module "ingress" { source = "git::https://git.solidite.fr/vynil/kydah-modules.git//ingress" component = "" instance = var.instance namespace = var.namespace issuer = var.issuer ingress_class = var.ingress_class labels = local.common-labels dns_names = local.dns_names middlewares = [kubectl_manifest.gitlab_userinfo.name,kubectl_manifest.gitlab_authorize.name,kubectl_manifest.gitlab_token.name] services = [local.service] create_redirect = false providers = { kubectl = kubectl } }