nextcloud / nextcloud/helm

Chart not working without persistence

Open
#726 9 comments 5 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Go Template
Stars
534
Forks
314
Avg merge
42m
Merged PRs (30d)
1

Description

Describe your Issue

If persistence is not enabled then the pod only works the first time, but on subsequent runs it won't find version.php and will attempt to install again.

Wouldn't it be possible to store the information found in version.php elsewhere, such as database or object storage?

Logs and Errors

See example log:

$ kubectl logs -f xxx-nc-nextcloud-bfb76c9c8-ds8gr
Defaulted container "nextcloud" out of: nextcloud, nextcloud-cron
Configuring Redis as session handler
Initializing nextcloud 30.0.6.2 ...
New nextcloud instance
Installing with PostgreSQL database
=> Searching for scripts (*.sh) to run, located in the folder: /docker-entrypoint-hooks.d/pre-installation
==> Running the script (cwd: /var/www/html): "/docker-entrypoint-hooks.d/pre-installation/helm.sh"
==> Finished the script: "/docker-entrypoint-hooks.d/pre-installation/helm.sh"
Starting nextcloud installation
The Login is already being used
Retrying install...
The Login is already being used
Retrying install...
The Login is already being used
Retrying install...
The Login is already being used
Retrying install...

Describe your Environment

  • Kubernetes distribution: k3s

  • Helm Version (or App that manages helm): v3.17.2

  • Helm Chart Version: 6.6.9

  • values.yaml:

replicaCount: 1

image:
  flavor: fpm
  tag: 31.0.2-fpm

nginx:
  enabled: true

nextcloud:
  host: xxx
  podSecurityContext:
    fsGroup: 33
  trustedDomains:
    - xxx
    - yy

  phpConfigs:
    zz-memory_limit.ini: |-
      upload_max_filesize=5G
      memory_limit=512M
  configs:
    proxy.config.php: |-
      <?php
      $CONFIG = array (
        'trusted_proxies' => array(
          0 => '127.0.0.1',
          1 => '10.0.0.0/8',
          2 => '1.2.3.4/24',
          3 => '5.6.7.8/24',
        ),
        'forwarded_for_headers' => array('HTTP_X_FORWARDED_FOR'),
      );

cronjob:
  enabled: true

redis:
  enabled: true
  auth:
    enabled: false

service:
  type: NodePort
  nodePort: 30850

internalDatabase:
  enabled: false

externalDatabase:
  enabled: true
  type: postgresql
  host: xxxxx
  database: nextcloud
  user: nextcloud
  password: xxxxx

objectStore:
  s3:
    enabled: false
    accessKey: xxxxx
    secretKey: xxxxxx
    host: xxxx.minio-nc.svc.cluster.local
    bucket: nextcloud-bucket
    ssl: false
    port: 9000


startupProbe:
  enabled: false
  initialDelaySeconds: 240

persistence:
  enabled: false

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the values.yaml persistence and objectStore settings, then trace the /docker-entrypoint-hooks.d/pre-installation/helm.sh step shown in the logs and its handling of version.php. Reproduce the behavior with persistence disabled and define how a subsequent pod run should locate the existing installation before evaluating storage options.

Written by the indexing model from the issue text.

Assessment

Tech stack
helm, kubernetes, postgresql, redis
Domain
cloud, databases, devops, infrastructure
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.