ActionCable support
Closes #29 (closed)
This is supposed to be an MVC to get some very basic ActionCable support in compose-kit.
The setup is as follows:
- define new
cable
compose service; this is just apuma
instance running on a different port, with a different rackup file - emit default
cable.yml
configuringredis
to hold subscription state - wire up the
cable
backend to workhorse viacableBackend
That's it.
I cut some complexity to make this as simple as possible:
Puma only. The cable server can only run on puma for now; we can look into adding unicorn support later (I would prefer to first drop thin
support from web
, and then look to consolidate cable.sh
and web.sh
)
No auto-config or gck.yml integration. We do not support generating valid puma.rb
configs currently. For simplicity I currently rely on a working puma_actioncable.rb
config to exist and fail fast if it doesn't. We already have an example file so it should be fairly easy to set this up yourself. An alternative could be to perform a cp
of that example file in configure-gitlab-rails.sh
, but it would result in broken config, so I'd rather make it explicit that this is a manual step for now.
Side-note to the last comment:
The reason we need a custom puma_actioncable.rb
at all is that we need to swap out the rackup
script. However, due to a bug in Puma, we cannot currently pass that via the CLI as long as there is an existing config/puma.rb
which also defines a rackup script (which we do.)