nextcloud / nextcloud/helm

Changing nextcloud.host vars results in crashloopbackoff

Open
#617 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

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

Description

Describe your Issue

Changing the helm value responsible for the ingress hostname and the nextcloud internal host results in crashloopbackoff.

After changing back the nextcloud.host to the old value the deployment come back online. But this help in this case because I and I'm sure many other needs to change the hostname sometimes because of a migration to a other network etc.

Changing

nextcloud:
  host: mycoolserver.example.com

to

nextcloud:
  host: mycoolserver.newnetwork.com

I need to change this because I want to use my other ingress controller which can be accessed from the WAN.

Logs and Errors

crashloopbackoff in the nexcloud container inside the nextcloud pod. Nothing helpfull inside the log. The log shows no indicator about this issue. It looks simply like a exit code 1

Describe your Environment

  • Kubernetes distribution: v1.30.2+rke2r1

  • Helm Version: ArgoCD version 2.11.7

  • Helm Chart Version: 5.5.2

  • values.yaml:

---
{{- if .Values.spec.nextcloud.enabled }}
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
  name: nextcloud
  namespace: {{ .Values.spec.argocdNamespace }}
  finalizers:
  - resources-finalizer.argocd.argoproj.io
spec:
  destination:
    namespace: nextcloud
    server: 'https://kubernetes.default.svc'
  project: default
  source:
    chart: nextcloud
    path: '.'
    repoURL: {{ .Values.spec.nextcloud.repoURL }}
    targetRevision: {{ .Values.spec.nextcloud.targetRevision }}
    helm:
      values: |
        nextcloud:
          host: {{ .Values.spec.nextcloud.host }}
          username: admin
          password: {{ .Values.spec.nextcloud.nextcloudAdminPW }}
          containerPort: 80
          datadir: /var/www/html/data
          configs:
            custom-overwrite.config.php: |-
              <?php
              $CONFIG = array (
                'overwrite.cli.url' => 'https://nextcloud.nextcloud.svc.cluster.local',
                'overwriteprotocol' => 'https',
              );
            proxy.config.php: |-
              <?php
              $CONFIG = array (
                'trusted_proxies' => array(
                  0 => '127.0.0.1',
                  1 => '10.0.0.0/8',
                ),
                'forwarded_for_headers' => array('HTTP_X_FORWARDED_FOR'),
              );


        cronjob:
          enabled: true

        persistence:
          enabled: true
          size: 150Gi
          storageClass: "{{ .Values.spec.nextcloud.storageClass }}"

        image:
          flavor: fpm

        nginx:
          enabled: true

        externalDatabase:
          enabled: true
          type: mysql
          host: nextcloud-mariadb.svc
          user: nextcloud
          password: "{{ .Values.spec.nextcloud.mariadbPW }}"
          database: nextcloud

        internalDatabase:
          enabled: false
          
        mariadb:
          enabled: true
          primary:
            persistence:
              enabled: true
              storageClass: "{{ .Values.spec.nextcloud.storageClass }}"
          auth:
            database: nextcloud
            username: nextcloud
            password: "{{ .Values.spec.nextcloud.mariadbPW }}"
            existingSecret: ""

        ingress:
          enabled: true
          labels: {}
          path: /
          pathType: Prefix
          className: nginx
          annotations:
            # cert-manager.io/cluster-issuer: letsencrypt-prod
            cert-manager.io/cluster-issuer: selfsigned-issuer
            nginx.ingress.kubernetes.io/enable-cors: "true"
            nginx.ingress.kubernetes.io/cors-allow-headers: "X-Forwarded-For"
            nginx.ingress.kubernetes.io/server-snippet: |-
              server_tokens off;
              proxy_hide_header X-Powered-By;
              rewrite ^/.well-known/webfinger /index.php/.well-known/webfinger last;
              rewrite ^/.well-known/nodeinfo /index.php/.well-known/nodeinfo 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;
              }
              location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)/ {
                deny all;
              }
              location ~ ^/(?:autotest|occ|issue|indie|db_|console) {
                deny all;
              }

          tls:
            - secretName: nextcloud-tls
              hosts:
                - {{ .Values.spec.nextcloud.host }}

  syncPolicy:
    automated:
      selfHeal: true
      allowEmpty: true
    syncOptions:
    - CreateNamespace=true
{{- end }}

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 supplied values.yaml and reproduce the change on Helm chart version 5.5.2, comparing the rendered configuration and the Nextcloud container's startup behavior before and after changing nextcloud.host. Check the chart's host-related templates and deployment logs; the issue is done when changing the hostname no longer causes CrashLoopBackOff.

Written by the indexing model from the issue text.

Assessment

Tech stack
helm, kubernetes, yaml
Domain
devops, infrastructure
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.