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 } } } 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"] 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 = [module.collabora-service[0].default_definition] 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"] 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 = [module.onlyoffice-service[0].default_definition] providers = { kubectl = kubectl } }