Loading…
Loading…
As chart version 8 lays it out for ERPNext 16.
namespace: erpnext
PersistentVolumeClaim · default: 8Gi, RWX
sites volume
Site files, config and uploads, shared by every Frappe pod at once — so it must be ReadWriteMany (NFS or similar).
templates/pvc.yaml
Click any box. The expand icon marks parts the chart can autoscale.
From nothing to a running site
helm repo add frappe https://helm.erpnext.com
kubectl create namespace erpnext helm upgrade --install frappe-bench --namespace erpnext frappe/erpnext \ --set persistence.worker.storageClass=nfs --set mariadb-sts.enabled=true
helm template frappe-bench -n erpnext frappe/erpnext -f custom-values.yaml \ -s templates/job-create-site.yaml > create-new-site-job.yaml kubectl apply -f create-new-site-job.yaml
# ingress.enabled: true (or httproute.enabled) in custom-values.yaml, then helm upgrade
helm template frappe-bench -n erpnext frappe/erpnext -f custom-values.yaml \ -s templates/job-migrate-site.yaml > job-migrate-site.yaml kubectl apply -f job-migrate-site.yaml
Worth it when…
You already run Kubernetes, host many sites, or need workers that scale with load.
Not worth it when…
You run one company’s ERPNext. A single server is far simpler to back up, upgrade and debug.
The part people miss
The sites volume must be ReadWriteMany. Without a storage class that allows it, the pods cannot share files.
Yes. Frappe publishes one at github.com/frappe/helm; add it with helm repo add frappe https://helm.erpnext.com. Chart version 8 installs ERPNext 16.
A storage class with ReadWriteMany access for the sites volume, because nginx, gunicorn, the workers and the scheduler all read and write it at once. The chart’s README uses an in-cluster NFS provisioner for evaluation.
By default it expects an external MariaDB. You can enable an in-cluster MariaDB StatefulSet instead. Valkey runs in the cluster for the cache and queue unless you point it elsewhere.
Render the create-site job with helm template and the job’s template file, then kubectl apply it. After each upgrade, do the same with the migrate job.
The chart includes autoscalers for nginx, gunicorn, socketio and the three worker types, all off by default. The scheduler runs as a single replica.
We plan and run larger ERPNext deployments — on Kubernetes where it earns its keep, on simpler servers where it doesn’t. Talk to a consultant.
or write to info@acube.co
Kochi (Kadavanthra & Infopark) · Thiruvananthapuram · across India & overseas · In business since 2011