135 lines
3.9 KiB
HCL
135 lines
3.9 KiB
HCL
locals {
|
|
dns_name = "${var.sub_domain}.${var.domain_name}"
|
|
dns-collabora = "collabora.${local.dns_name}"
|
|
dns-onlyoffice = "onlyoffice.${local.dns_name}"
|
|
dns_names = [local.dns_name]
|
|
app_name = var.component == var.instance ? var.instance : format("%s-%s", var.component, var.instance)
|
|
icon = "apps/theming/favicon"
|
|
service = {
|
|
"name" = "${var.component}"
|
|
"port" = {
|
|
"number" = 80
|
|
}
|
|
}
|
|
collabora-service = {
|
|
"name" = "collabora-${var.instance}"
|
|
"port" = {
|
|
"number" = 80
|
|
}
|
|
}
|
|
onlyoffice-service = {
|
|
"name" = "onlyoffice-${var.instance}"
|
|
"port" = {
|
|
"number" = 80
|
|
}
|
|
}
|
|
}
|
|
|
|
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 = ["${var.instance}-sslenforce", "${var.instance}-redirectdav", "${var.instance}-redirectindex"]
|
|
services = [local.service]
|
|
providers = {
|
|
kubectl = kubectl
|
|
}
|
|
}
|
|
|
|
module "application" {
|
|
source = "git::https://git.solidite.fr/vynil/kydah-modules.git//application"
|
|
component = var.component
|
|
instance = var.instance
|
|
app_group = var.app_group
|
|
dns_name = local.dns_name
|
|
icon = local.icon
|
|
protocol_provider = module.oauth2.provider-id
|
|
providers = {
|
|
authentik = authentik
|
|
}
|
|
}
|
|
|
|
module "oauth2" {
|
|
source = "git::https://git.solidite.fr/vynil/kydah-modules.git//oauth2"
|
|
component = var.component
|
|
instance = var.instance
|
|
namespace = var.namespace
|
|
domain = var.domain
|
|
labels = local.common-labels
|
|
dns_name = local.dns_name
|
|
redirect_path = "apps/user_oidc/code"
|
|
providers = {
|
|
kubernetes = kubernetes
|
|
kubectl = kubectl
|
|
authentik = authentik
|
|
}
|
|
}
|
|
|
|
module "collabora-service" {
|
|
count = var.apps.collabora ? 1 : 0
|
|
source = "git::https://git.solidite.fr/vynil/kydah-modules.git//service"
|
|
component = "collabora"
|
|
instance = var.instance
|
|
namespace = var.namespace
|
|
labels = local.collabora-labels
|
|
targets = ["http"]
|
|
ports = [local.collabora-service.port.number]
|
|
providers = {
|
|
kubectl = kubectl
|
|
}
|
|
}
|
|
|
|
module "collabora-ingress" {
|
|
count = var.apps.collabora ? 1 : 0
|
|
source = "git::https://git.solidite.fr/vynil/kydah-modules.git//ingress"
|
|
component = "collabora"
|
|
instance = var.instance
|
|
namespace = var.namespace
|
|
issuer = var.issuer
|
|
ingress_class = var.ingress_class
|
|
labels = local.collabora-labels
|
|
dns_names = [local.dns-collabora]
|
|
middlewares = []
|
|
services = [local.collabora-service]
|
|
providers = {
|
|
kubectl = kubectl
|
|
}
|
|
}
|
|
|
|
module "onlyoffice-service" {
|
|
count = var.apps.onlyoffice ? 1 : 0
|
|
source = "git::https://git.solidite.fr/vynil/kydah-modules.git//service"
|
|
component = "onlyoffice"
|
|
instance = var.instance
|
|
namespace = var.namespace
|
|
labels = local.onlyoffice-labels
|
|
targets = ["http"]
|
|
ports = [local.onlyoffice-service.port.number]
|
|
providers = {
|
|
kubectl = kubectl
|
|
}
|
|
}
|
|
|
|
module "onlyoffice-ingress" {
|
|
count = var.apps.onlyoffice ? 1 : 0
|
|
source = "git::https://git.solidite.fr/vynil/kydah-modules.git//ingress"
|
|
component = "onlyoffice"
|
|
instance = var.instance
|
|
namespace = var.namespace
|
|
issuer = var.issuer
|
|
ingress_class = var.ingress_class
|
|
labels = local.onlyoffice-labels
|
|
dns_names = [local.dns-onlyoffice]
|
|
middlewares = []
|
|
services = [local.onlyoffice-service]
|
|
providers = {
|
|
kubectl = kubectl
|
|
}
|
|
}
|
|
|