New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Make it possible to run Zammad stateless #1601
Comments
… cache store. To activate this, simply specify MEMCACHE_SERVERS=your.server and Zammad will use that as Rails cache store. See also #1601
Running Zammad in a clustered environment will be much easier with Zammad 5:
The following areas are also relevant for this topic, but don't require changes at present:
Therefore we believe Zammad is now "stateless" enough for smooth operation in cluster/swarm environments. 🚀 Please feel free to reopen this issue with more information, in case we have overlooked something. |
Thanks! :) Stuff like upload store was what i had in mind too. Where are gravatar avatars stored by the way? Would be cool one could disable the possibility to change the storage option in the frontend, via some rails command in the init step of the container, so the enduser can't change it via the frontend, because he might not even now, that his instance runs clustered at all. |
The avatars are handled by the Store backend and therefore are stored in the DB as well ✅
Unfortunately the storage configuration is hard coded at the moment: zammad/app/assets/javascripts/app/controllers/_manage/system.coffee Lines 12 to 13 in fe93104
I think a dedicated Setting for storing if cluster mode is active or not would be great, like |
What would be the goal of the setting? Only to not allow to changes certain settings? And what if certain setting are already changed before enable IMO we need two things:
What do you thing? IMO it is also another issue. |
@monotek @martini @thorsteneckel new issue created, please let me know if something needs to be improved there. |
Still nothing, right? V6 didn't include anything for this and/or to allow kubernetes to scale stateless, right? |
See the state of this in issue Please don't bump issues as it won't speed up things. |
@lucacri Zammad 6 does have some improvements in this regard, for example a changed location of unprocessable/oversized emails. Also, the docker image no longer uses rsync to transfer the Zammad files to their final directory. Note that zammad-docker-compose was not yet released for 6.0. You can expect more improvements in this direction. |
When running Zammad in container environments, with single container for railsserver, websocket and scheduler, we need shared storage as tmp dir needs to be written and read by all containers. This is a problem when using Zammad in Kubernetes as only one container can mount a shared directory writeable, if PV is ReadWriteOnce.
As discussed earlier with @martini it would be possible to use memcached to store all tmp files. Rails already supports writing the cache to memcached ( http://guides.rubyonrails.org/v3.2/caching_with_rails.html#activesupport-cache-memcachestore ).
At least the websockets server would need some modification to also use memcached.
Check also if scheduler needs modifications.
With this option one would not need to create shared storage solution like NFS, Ceph, GlusterFS and so on inside Kubernetes and it would be possible to just spin up an additional memcached container, which would be much easier.
Infos:
Expected behavior:
Actual behavior:
Steps to reproduce the behavior:
The text was updated successfully, but these errors were encountered: