Best practices for horizontal scaling of OpenRemote Manager and Keycloak on Kubernetes?

Hi OpenRemote community,

I’m building a smart agriculture IoT platform using OpenRemote deployed on a K3s Kubernetes cluster. My business model is hardware + SaaS, serving multiple tenants (individual farmers, cooperatives, and agricultural enterprises).

I’m trying to design the right architecture from the beginning to avoid painful migrations later, and I have some questions about horizontal scaling.

Current stack:

  • K3s Kubernetes cluster
  • OpenRemote Manager (single pod currently)
  • Keycloak (bundled)
  • PostgreSQL HA (CloudNativePG)
  • Redis HA
  • Longhorn distributed storage
  • MinIO

Questions:

  1. Multiple Manager pods — Is it possible to run multiple Manager pods serving the same tenant simultaneously? I understand Manager is stateful and keeps asset states in RAM. Is there any clustering or shared-state mechanism (e.g., via Redis or database) that would allow this?

  2. Sticky sessions — If true horizontal scaling is not supported, would sticky sessions via Nginx Ingress be a recommended workaround? What are the limitations?

  3. Multiple Manager instances (multi-tenant) — Is the recommended production approach to run one Manager instance per tenant? If so, are there official Helm charts or automation tools to provision new tenant instances automatically?

  4. Keycloak scaling — What is the recommended way to run multiple Keycloak pods in cluster mode with OpenRemote? Does OpenRemote have any specific configuration requirements for Keycloak clustering?

  5. Roadmap — Is horizontal scaling of a single Manager instance on the roadmap for future releases?

Any guidance, real-world experience, or architectural recommendations would be greatly appreciated. Thank you!