Skip to content
Snippets Groups Projects
nextcloud-values-configmap.yaml 5.32 KiB
Newer Older
---
apiVersion: v1
kind: ConfigMap
metadata:
  name: oas-nextcloud-values
data:
  values.yaml: |
    nextcloud:
      nextcloud:
        host: "files.${domain}"
        password: "${nextcloud_password}"
        mail:
          enabled: ${outgoing_mail_enabled}
          fromAddress: "${outgoing_mail_from_local_part}"
          domain: "${outgoing_mail_domain}"
          smtp:
            host: "${outgoing_mail_smtp_host}"
            secure: "tls"
            port: "${outgoing_mail_smtp_port}"
            name: "${outgoing_mail_smtp_user}"
            password: "${outgoing_mail_smtp_password}"
            authtype: "${outgoing_mail_smtp_authtype}"

      # Cronjob by default requests the same as nextcloud app, but that's not
      # necessary
      cronjob:
        resources:
          requests:
      ingress:
        enabled: true
        annotations:
          # Tell cert-manager to automatically get a TLS certificate
          kubernetes.io/tls-acme: "true"
          # Set max body size high to allow big NextCloud uploads
          nginx.ingress.kubernetes.io/proxy-body-size: 1G
          nginx.ingress.kubernetes.io/server-snippet: |-
            server_tokens off;
            proxy_hide_header X-Powered-By;
            rewrite ^/.well-known/webfinger /public.php?service=webfinger last;
            rewrite ^/.well-known/host-meta /public.php?service=host-meta last;
            rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json;
            location = /.well-known/carddav {
              return 301 $scheme://$host/remote.php/dav;
            }
            location = /.well-known/caldav {
              return 301 $scheme://$host/remote.php/dav;
            }
            location = /robots.txt {
              allow all;
              log_not_found off;
              access_log off;
            }
        hosts:
          - "files.${domain}"
        tls:
          - hosts:
              - "files.${domain}"
            secretName: oas-nextcloud-files

      # Use 2 GB of storage for NC storage (maybe make configurable later?)
      persistence:
        enabled: true
        existingClaim: "nextcloud-files"

      podAnnotations:
        # Let the backup system include nextcloud data.
        backup.velero.io/backup-volumes: "nextcloud-data"

      # Explicitly disable use of internal database
      internalDatabase:
        enabled: false

      startupProbe:
        enabled: true
        failureThreshold: 60

      resources:
        limits:
          cpu: 700m
Varac's avatar
Varac committed
          memory: 1024Mi
Varac's avatar
Varac committed
          memory: 512Mi

      # Enable and configure MariaDB chart
      mariadb:
        db:
          password: "${nextcloud_mariadb_password}"
        enabled: true
        master:
          annotations:
            # Let the backup system include nextcloud database data.
            backup.velero.io/backup-volumes: "data"
          persistence:
            ## Enable PostgreSQL persistence using Persistent Volume Claims.
            enabled: true
            existingClaim: "nextcloud-mariadb"
          resources:
            limits:
              cpu: 200m
              memory: 512Mi
            requests:
              cpu: 100m
              memory: 256Mi
        replication:
          enabled: false
        rootUser:
          password: "${nextcloud_mariadb_root_password}"

    apps:
      - name: sociallogin
        enabled: true
      - name: onlyoffice
        enabled: true
      - name: calendar
        enabled: true
      - name: passwords
        enabled: true

    setupApps:
      backoffLimit: 20

    onlyoffice:
      resources:
        limits:
          cpu: 800m
          memory: 2Gi
        requests:
          cpu: 200m
          memory: 1Gi
      server_name: "office.${domain}"
      ingress:
        enabled: true
        annotations:
          # Tell cert-manager to automatically get a TLS certificate
          kubernetes.io/tls-acme: "true"
        paths:
          - "/"
        hosts:
          - "office.${domain}"
        tls:
          - hosts:
              - "office.${domain}"
            secretName: oas-nextcloud-office
      jwtSecret: "${onlyoffice_jwt_secret}"

      persistence:
        enabled: true
        existingClaim: "nextcloud-onlyoffice-data"

    postgresql:
      postgresqlPassword: "${onlyoffice_postgresql_password}"
      resources:
        limits:
          cpu: 400m
          memory: 256Mi
        requests:
          cpu: 200m
          memory: 128Mi
      persistence:
        enabled: true
        existingClaim: "nextcloud-postgresql"

    rabbitmq:
      rabbitmq:
        password: "${onlyoffice_rabbitmq_password}"
      persistence:
        enabled: false
      resources:
        limits:
          cpu: 500m
          memory: 512Mi
        requests:
          cpu: 200m
          memory: 256Mi
      livenessProbe:
        initialDelaySeconds: 180
        failureThreshold: 10

    redis:
      cluster:
        enabled: false
      master:
        persistence:
          enabled: false
        resources:
          limits:
            cpu: 100m
            memory: 64Mi
          requests:
            cpu: 50m
            memory: 32Mi

    sociallogin:
      server_name: "sso.${domain}"
      client_id: nextcloud
      client_secret: "${nextcloud_oauth_client_secret}"
      wordpressgroups_claim: "openappstack_roles"