68 lines
2.0 KiB
HCL
68 lines
2.0 KiB
HCL
locals {
|
|
dns_names = ["${var.sub_domain}.${var.domain_name}"]
|
|
service = {
|
|
"name" = "${var.instance}-${var.component}"
|
|
"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?ref=0.3.0"
|
|
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
|
|
}
|
|
}
|