Incorporating ActionCable support into CNG Images
Summary
As part of the work to deliver GitLab's first real-time feature we'd like to modify some existing Docker images and possibly produce a new one to run a Puma server equipped with ActionCable. The goal is to deploy these images with K8s to provide isolation from the main GitLab Web deployment while we test and iterate on the feature.
The issue in our tracker is gitlab-org/gitlab#213861 (closed).
An epic describing the decisions made so far is gitlab-org&3056.
Members of the devopsplan team are interested in owning this work but we lack some of the knowledge required to do so.
Proposal
We'd like help from the groupdistribution team to be successful. This could be in identifying documentation and resources, providing a DRI or async channel (or just this issue) for questions/advice or even short pairing sessions.
For example, some of the changes we're quite sure we need to make to CNG images are:
- Add a
cable.yml
config file togitlab-rails
; - Allow configuring
gitlab-workhorse
withcableBackend
/cableSocket
pointing to the ActionCable container, and - Modify
gitlab-webservice
or create a new container to run Puma with ActionCable support (based on gitlab-org/gitlab#213861 (comment 321288426)).
We want to keep it as non-disruptive as possible, leverage existing documentation where possible and contribute back to the documentation to help other teams who'd like to own this kind of work.
/cc @mendeni @WarheadsSE @egrieff @acroitor @gweaver @engwan