Helm Chart to deploy a frappe-bench-like environment on Kubernetes. It adds following resources:
ConfigMaps:
nginx-config
is used to override default.conf for nginx reverse proxy and static assets container.
Deployments:
gunicorn
deployment contains frappe/erpnext gunicorn.nginx
deployment contains frappe/erpnext static assets and nginx reverse proxy.scheduler
deployment contains frappe/erpnext scheduler.socketio
deployment contains frappe/erpnext socketio.worker-d
deployment contains frappe/erpnext default worker.worker-l
deployment contains frappe/erpnext long worker.worker-s
deployment contains frappe/erpnext short worker.
HorizontalPodAutoscalers:
gunicorn
hpa scales frappe/erpnext gunicorn deployment.nginx
hpa scales frappe/erpnext nginx deployment.socketio
hpa scales frappe/erpnext socketio deployment.worker-d
hpa scales frappe/erpnext default worker deployment.worker-l
hpa scales frappe/erpnext long worker deployment.worker-s
hpa scales frappe/erpnext short worker deployment.
Ingresses:
ingress
with custom name can be dynamically generated usinghelm template
and configured values.
Jobs:
vol-fix
job to fix volume permissions, changes theuid
andgid
to1000:1000
.bench-conf
job to configure db host, redis hosts and socketio port.create-site
job to create new site.drop-site
job to drop existing site.backup-push
job to backup and optionally push backup to S3 for existing site.migrate
job to migrate existing site.custom
job to run custom additional commands and configuration.
PVC:
erpnext
persistent volume claim is used to allocate volume for sites and config deployed with this releaseerpnext-logs
persistent volume claim is used to allocate volume for logs
Secrets:
secret
is used to storedb-root-password
for external db host
Services:
gunicorn
service exposes pods from gunicorn deployment.nginx
service exposes pods from nginx deployment.socketio
service exposes pods from socketio deployment.
ServiceAccounts:
erpnext
service account is used by all deployments.
This is a release script for maintainers. It does the following:
- Checks latest tag for given major release for frappe and erpnext using git.
- Validates that release always bumps up.
- Bumps values.yaml and Chart.yaml for release changes
- Adds git tag for chart version
- Push to selected remote
This will trigger workflow to publish new version of helm chart.