The setting persistence.accessModes is marked as "only to be used by Octopus Developers", and is supposed to be "ignored" but it is not, and its default value does not match the default value in persistence.backingVolume.accessModes. In fact, the persistence.backingVolume.accessModes is not used in the template at all.
from the templates/tentacle-deployment.yml template:
persistence:
<...>
nfs:
<...>
backingVolume:
# -- The storage class name to use for the NFS Server's backing storage - if left as an empty string, an emptyDir will be used
# @section -- Persistence
storageClassName: ""
# -- The access modes to use for the NFS Server's backing storage
# @section -- Persistence
accessModes: ["ReadWriteOnce"]
<...>
# DO NOT USE THIS, it is not a supported configuration for customers and is only to be used by Octopus Developers
# @ignored
accessModes: ["ReadWriteMany"]
and templates/nfs-pvc.yml
{{- if not (include "kubernetes-agent.useCustomPvc" .) }}
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: {{ include "nfs.pvcName" . }}
spec:
accessModes:
{{- .Values.persistence.accessModes | toYaml | nindent 4 }}
resources:
requests:
storage: {{ .Values.persistence.size}}
volumeName: {{ include "nfs.pvName" . }}
storageClassName: {{ include "nfs.storageClassName" . }}
{{- end }}
As seen here, with a default install of the agent using the wizard in the Octopus WebUI, the volume shows as RWX. The only way to use a volume in RWO mode is by overriding persistence.accessModes despite its labels.
In my case, my team and I are using an on-prem kubernetes cluster that does not support RWX mode, so the helm install times out and eventually gets a mounting error for the octopus-agent-nfs-<name>-pvc volume because the volume itself cannot be bound to the pod.
The setting
persistence.accessModesis marked as "only to be used by Octopus Developers", and is supposed to be "ignored" but it is not, and its default value does not match the default value inpersistence.backingVolume.accessModes. In fact, thepersistence.backingVolume.accessModesis not used in the template at all.from the templates/tentacle-deployment.yml template:
and templates/nfs-pvc.yml
As seen here, with a default install of the agent using the wizard in the Octopus WebUI, the volume shows as
RWX. The only way to use a volume inRWOmode is by overridingpersistence.accessModesdespite its labels.In my case, my team and I are using an on-prem kubernetes cluster that does not support
RWXmode, so the helm install times out and eventually gets a mounting error for theoctopus-agent-nfs-<name>-pvcvolume because the volume itself cannot be bound to the pod.