Description
Doing my best to dupe helm/charts#22920 over to the new repo as I am experiencing this issue as well. I have refined the details a bit, as this issue appears to be specifically related to NFS-based storage.
Describe the bug
When bringing up the nextcloud pod via the helm chart, the logs show the pod as being stuck at:
2020-08-31T19:00:42.054297154Z Configuring Redis as session handler
2020-08-31T19:00:42.098305129Z Initializing nextcloud 19.0.1.1 ...
Even backing out the liveness/readiness probes to over 5 minutes does not give
If I instead switch the PVC to my storageClass for Rancher Longhorn (iSCSI) for example, the nextcloud install initializes in seconds.
Version of Helm and Kubernetes:
helm: v3.3.0
kubernetes: v1.18.6
Which chart:
nextcloud/helm
What happened:
- Namespace is created.
- Helm creates NFS PVC, or it is created manually
- Helm instantiates Nextcloud pod
- Nextcloud pod attaches PVC, and starts
- Nextcloud container is stuck at the above line
What you expected to happen:
Nextcloud finishes initialization
Nextcloud files appear with correct permissions on NFS volume
How to reproduce it (as minimally and precisely as possible):
Set up an NFS provisioner:
helm install stable/nfs-client-provisioner nfs \
--set nfs.server=x.x.x.x --set nfs.path=<path>
OR
Configure an NFS PV and PVC manually
apiVersion: v1
kind: PersistentVolume
metadata:
name: nextcloud-data
labels:
app: cloud
type: data
spec:
capacity:
storage: 100Ti
nfs:
path: <path>
server: <server>
mountOptions:
- async
- nfsvers=4.2
- noatime
accessModes:
- ReadWriteMany
persistentVolumeReclaimPolicy: Retain
storageClassName: nfs-manual
volumeMode: Filesystem
---
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: nextcloud-data
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 100Ti
storageClassName: nfs-manual
volumeMode: Filesystem
selector:
matchLabels:
app: cloud
type: data
Install nextcloud
helm install -f values.yaml nextcloud/helm nextcloud --namespace=nextcloud
values.yaml:
image:
repository: nextcloud
tag: 19
readinessProbe:
initialDelaySeconds: 560
livenessProbe:
initialDelaySeconds: 560
resources:
requests:
cpu: 200m
memory: 500Mi
limits:
cpu: 2
memory: 1Gi
ingress:
enabled: true
annotations:
cert-manager.io/cluster-issuer: acme
kubernetes.io/ingress.class: nginx
# nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"
hosts:
- "cloud.myhost.com"
tls:
- hosts:
- "cloud.myhost.com"
secretName: prod-cert
path: /
nextcloud:
username: admin
password: admin1
# datadir: /mnt/data
host: "cloud.myhost.com"
internalDatabase:
enabled: true
externalDatabase:
enabled: false
persistence:
enabled: true
# accessMode: ReadWriteMany
# storageClass: nfs-client if creating via provisioner
existingClaim: nextcloud-data # comment out if creating new PVC via provisioner