diff --git a/apps/nextcloud/collabora.tf b/apps/nextcloud/collabora.tf index 03353d3..b0e39c8 100644 --- a/apps/nextcloud/collabora.tf +++ b/apps/nextcloud/collabora.tf @@ -98,7 +98,7 @@ resource "kubectl_manifest" "collabora_svc" { } resource "kubectl_manifest" "collabora_certificate" { - count = var.apps.collabora ? 0 : 0 + count = var.apps.collabora ? 1 : 0 yaml_body = <<-EOF apiVersion: "cert-manager.io/v1" kind: "Certificate" @@ -117,7 +117,7 @@ resource "kubectl_manifest" "collabora_certificate" { } resource "kubectl_manifest" "collabora_ing" { - count = var.apps.collabora ? 0 : 0 + count = var.apps.collabora ? 1 : 0 yaml_body = <<-EOF apiVersion: networking.k8s.io/v1 kind: Ingress diff --git a/apps/nextcloud/configs.tf b/apps/nextcloud/configs.tf index b966949..b1fb6dd 100644 --- a/apps/nextcloud/configs.tf +++ b/apps/nextcloud/configs.tf @@ -33,14 +33,14 @@ locals { var.apps.collabora?[ "run_as ./occ app:install richdocuments ||:", "run_as ./occ app:enable richdocuments ||:", - "run_as ./occ config:app:set richdocuments wopi_url --value=\"http://${var.instance}-collabora/\"", + "run_as ./occ config:app:set richdocuments wopi_url --value=\"https://collabora.${local.dns-name}/\"", "run_as ./occ config:app:set richdocuments federation_use_trusted_domains --value=yes", "run_as ./occ richdocuments:activate-config ||:", ]:["run_as ./occ app:disable richdocuments ||:"], var.apps.onlyoffice?[ "run_as ./occ app:install onlyoffice ||:", "run_as ./occ app:enable onlyoffice ||:", - "run_as ./occ --no-warnings config:system:set onlyoffice DocumentServerUrl --value=\"/ds-vpath/\"", + "run_as ./occ --no-warnings config:system:set onlyoffice DocumentServerUrl --value=\"https://onlyoffice.${local.dns-name}/ds-vpath/\"", "run_as ./occ --no-warnings config:system:set onlyoffice DocumentServerInternalUrl --value=\"http://${var.instance}-onlyoffice/\"", "run_as ./occ --no-warnings config:system:set onlyoffice StorageUrl --value=\"http://nextcloud/\"", "run_as ./occ --no-warnings config:system:set onlyoffice jwt_secret --value=\"$${ONLYOFFICE_JWT_SECRET}\"", diff --git a/apps/nextcloud/index.yaml b/apps/nextcloud/index.yaml index bc7a1dd..88692af 100644 --- a/apps/nextcloud/index.yaml +++ b/apps/nextcloud/index.yaml @@ -25,6 +25,51 @@ options: default: 10Gi type: string type: object + domain: + default: your-company + examples: + - your-company + type: string + postgres: + default: + replicas: 1 + storage: 5Gi + version: '14' + examples: + - replicas: 1 + storage: 5Gi + version: '14' + properties: + replicas: + default: 1 + type: integer + storage: + default: 5Gi + type: string + version: + default: '14' + type: string + type: object + hpa: + default: + avg-cpu: 50 + max-replicas: 5 + min-replicas: 1 + examples: + - avg-cpu: 50 + max-replicas: 5 + min-replicas: 1 + properties: + avg-cpu: + default: 50 + type: integer + max-replicas: + default: 5 + type: integer + min-replicas: + default: 1 + type: integer + type: object admin: default: name: nextcloud_admin @@ -35,6 +80,44 @@ options: default: nextcloud_admin type: string type: object + redis: + default: + exporter: + enabled: true + image: quay.io/opstree/redis-exporter:v1.44.0 + image: quay.io/opstree/redis:v7.0.5 + storage: 2Gi + examples: + - exporter: + enabled: true + image: quay.io/opstree/redis-exporter:v1.44.0 + image: quay.io/opstree/redis:v7.0.5 + storage: 2Gi + properties: + exporter: + default: + enabled: true + image: quay.io/opstree/redis-exporter:v1.44.0 + properties: + enabled: + default: true + type: boolean + image: + default: quay.io/opstree/redis-exporter:v1.44.0 + type: string + type: object + image: + default: quay.io/opstree/redis:v7.0.5 + type: string + storage: + default: 2Gi + type: string + type: object + ingress-class: + default: traefik + examples: + - traefik + type: string apps: default: calendar: false @@ -85,36 +168,6 @@ options: default: false type: boolean type: object - postgres: - default: - replicas: 1 - storage: 5Gi - version: '14' - examples: - - replicas: 1 - storage: 5Gi - version: '14' - properties: - replicas: - default: 1 - type: integer - storage: - default: 5Gi - type: string - version: - default: '14' - type: string - type: object - domain-name: - default: your_company.com - examples: - - your_company.com - type: string - domain: - default: your-company - examples: - - your-company - type: string images: default: collabora: @@ -278,79 +331,26 @@ options: type: string type: object type: object - hpa: - default: - avg-cpu: 50 - max-replicas: 5 - min-replicas: 1 - examples: - - avg-cpu: 50 - max-replicas: 5 - min-replicas: 1 - properties: - avg-cpu: - default: 50 - type: integer - max-replicas: - default: 5 - type: integer - min-replicas: - default: 1 - type: integer - type: object sub-domain: default: files examples: - files type: string - issuer: - default: letsencrypt-prod + domain-name: + default: your_company.com examples: - - letsencrypt-prod - type: string - ingress-class: - default: traefik - examples: - - traefik + - your_company.com type: string openid-name: default: vynil examples: - vynil type: string - redis: - default: - exporter: - enabled: true - image: quay.io/opstree/redis-exporter:v1.44.0 - image: quay.io/opstree/redis:v7.0.5 - storage: 2Gi + issuer: + default: letsencrypt-prod examples: - - exporter: - enabled: true - image: quay.io/opstree/redis-exporter:v1.44.0 - image: quay.io/opstree/redis:v7.0.5 - storage: 2Gi - properties: - exporter: - default: - enabled: true - image: quay.io/opstree/redis-exporter:v1.44.0 - properties: - enabled: - default: true - type: boolean - image: - default: quay.io/opstree/redis-exporter:v1.44.0 - type: string - type: object - image: - default: quay.io/opstree/redis:v7.0.5 - type: string - storage: - default: 2Gi - type: string - type: object + - letsencrypt-prod + type: string dependencies: [] providers: kubernetes: true diff --git a/apps/nextcloud/onlyoffice.tf b/apps/nextcloud/onlyoffice.tf index bd71379..e5254b7 100644 --- a/apps/nextcloud/onlyoffice.tf +++ b/apps/nextcloud/onlyoffice.tf @@ -54,7 +54,7 @@ resource "kubectl_manifest" "onlyoffice_deploy" { valueFrom: secretKeyRef: name: ${var.component} - key: collabora-password + key: onlyoffice-jwt-secret livenessProbe: httpGet: path: /healthcheck @@ -103,7 +103,7 @@ resource "kubectl_manifest" "onlyoffice_svc" { } resource "kubectl_manifest" "onlyoffice_certificate" { - count = var.apps.onlyoffice ? 0 : 0 + count = var.apps.onlyoffice ? 1 : 0 yaml_body = <<-EOF apiVersion: "cert-manager.io/v1" kind: "Certificate" @@ -122,7 +122,7 @@ resource "kubectl_manifest" "onlyoffice_certificate" { } resource "kubectl_manifest" "onlyoffice_ing" { - count = var.apps.onlyoffice ? 0 : 0 + count = var.apps.onlyoffice ? 1 : 0 yaml_body = <<-EOF apiVersion: networking.k8s.io/v1 kind: Ingress