Files
domain-incoming/apps/nextcloud/presentation.tf
2024-01-26 16:44:44 +01:00

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