Parameters

The parent key for all of the following parameters is nextcloud.

namespace

type

dictionary

default
annotations: {}
labels: {}
name: app-${_instance}

The namespace in which to deploy this component.

resources

type

dictionary

default
nextcloud:
  requests:
    cpu: 500m
    memory: 3Gi
  limits:
    cpu: 4
    memory: 8Gi
nginx:
  requests:
    cpu: 10m
    memory: 16Mi
  limits:
    cpu: 50m
    memory: 128Mi
cronjob:
  requests:
    cpu: 150m
    memory: 256Mi
  limits:
    cpu: 1
    memory: 1Gi
postgresql:
  requests:
    cpu: 20m
    memory: 128Mi
  limits:
    cpu: 500m
    memory: 256Mi
redis:
  requests:
    cpu: 20m
    memory: 128Mi
  limits:
    cpu: 500m
    memory: 256Mi

Configure resource requests and limits.

config

type

dictionary

default
ingress: (1)
  enabled: true
  tls: true
  url: nextcloud.local (2)
  annotations: {}
persistence: (3)
  enabled: true
  accessMode: ReadWriteOnce
  storageClass: ''
  size: 10Gi
extra: (4)
  language.config.php: |-
    <?php
    $CONFIG = [
      'default_language' => 'de',
      'default_locale' => 'de_CH',
      'default_phone_region' => 'CH',
      'default_timezone' => 'Europe/Zurich',
    ];
  proxy.config.php: |-
    <?php
    $CONFIG = array (
      'trusted_proxies' =>
      array (
        0 => '127.0.0.1',
        1 => '10.128.0.0/14',
      ),
      'forwarded_for_headers' =>
      array (
        0 => 'HTTP_X_FORWARDED_FOR',
      ),
    );
1 Configure nextcloud ingress.
2 Enable tls for ingress.
3 Configure persistence for nextcloud.
4 Additional configuration files.

secrets

type

dictionary

default
postgresql: '?{vaultkv:${cluster:tenant}/${cluster:name}/nextcloud/${_instance}/postgresql}'
redis: '?{vaultkv:${cluster:tenant}/${cluster:name}/nextcloud/${_instance}/redis}'
nextcloud: '?{vaultkv:${cluster:tenant}/${cluster:name}/nextcloud/${_instance}/nextcloud}'
token: '?{vaultkv:${cluster:tenant}/${cluster:name}/nextcloud/${_instance}/token}'

See ProjectSyn Documentation for reference.

database

type

dictionary

default
enabled: true (1)
mode: standalone (2)
persistence: (3)
  enabled: true
  accessMode: ReadWriteOnce
  storageClass: ''
  size: 5Gi
1 Enable external postgresql database.
2 Configure postgresql mode.
3 Configure persistence for postgresql.

Enable/configure postgresql as database backend.

redis

type

dictionary

default
enabled: true (1)
mode: standalone (2)
persistence: (3)
  enabled: true
  accessMode: ReadWriteOnce
  storageClass: ''
  size: 1Gi
1 Enable redis for file locking.
2 Configure redis mode.
3 Configure persistence for redis.
Currently only standalone mode supported!

helmValues

type

dictionary

default

See component defaults

The Helm values to use when rendering the Helm charts.

backup

type

dictionary

default
enabled: true (1)
schedule: '30 4 * * *' (2)
bucket: my-backup-bucket (3)
password: ?{vaultkv:${cluster:tenant}/${cluster:name}/nextcloud/${_instance}/backup} (4)
keepFailed: 3
keepSuccess: 5
backend: (5)
  endpoint: null
  accessKey: null
  secretKey: null
check: (6)
  enabled: true
  schedule: '30 8 * * *'
prune: (7)
  enabled: true
  schedule: '30 13 * * *'
retention: (8)
  keepLast: 3
  keepWeekly: 3
spec: {} (9)
1 Enable backup.
2 Backup schedule.
3 Bucket name to use for backups.
4 Password K8up/restic uses to encrypt data.
5 Configure s3 backend.
6 Enable/Configure checking backups.
7 Enable/Configure prune backups.
8 Configure retention (prune needs to be enabled), see K8up retention spec.
9 Additional specifications, see K8up object spec.

Configure backups, using K8up operator.

Example

nextcloud:
  database:
    persistence:
      storageClass: ceph-block

  config:
    url: nextcloud.apps.tegridy.io
    persistence:
      accessMode: ReadWriteMany
      storageClass: ceph-file
      size: 100Gi