K8s n8n installation best practice/best method


I just installed n8n very basically on my Openshift 4.11 cluster and all is well. We have created some processes that work for our business. My question is mainly related to documentation I suppose:

Where is (or should there be) an official documentation on how this works on K8s? The documentation for instance mentions that you do not need persistent storage if the encryption key is in the ENV and using Postgres (which I am), and I would prefer to avoid persistent storage. So why have the option at all if it is not needed? What am I missing out on?

Are there any gotchas with sessions or scaling or when doing a rollout from one set of pods to a new set of pods?

I assume that websocket based workflows will run fine when scaled, but not cron as there would need to be some sort of “cluster” to know which instance is going to run the cron. There is queue-mode but this still bottlenecks everything down to one pod. I regularly need to update the cluster, and I rely on our applications to be able to seamlessly survive pod destruction.

I did find this repo GitHub - 8gears/n8n-helm-chart: A Kubernetes Helm chart for n8n a Workflow Automation Tool. Easily automate tasks across different services. but the last commit is over a year ago. I can already see this is before the days of having proper authentication implemented in n8n. I also found this from another thread which again references the basic auth, and is heavily opinionated with traefik which I do not use, and does not seem to allude to any scalability.

I would be willing to help with an effort to get this working, particularly in a production-friendly manner like using all non-root containers and perhaps with an operator or new Helm chart. This app is a gem and I would love to support the development.

At the very least I would like to understand how best I should set up this cluster for my use case and faithfully document that so that the next searcher has a thread to go to.