Files
domain/share/authentik/presentation.tf
2024-02-15 14:39:05 +01:00

68 lines
2.0 KiB
HCL

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
}
}