
I deployed a stock Rails app with Kamal, and the "server" was a managed Kubernetes cluster
Hi,
I want to share something that I think might work for you. I work on Miget PaaS, where we added Kamal deploy as a deployment channel alongside GitHub, git push, and the container registry a while ago.
As a Rails developer and old sysadmin guy, I really like the way Kamal works. What I don't like is the sys part. Deploying to Hetzner or OVH is fine as long as the node isn't dead. So I was thinking: "How to make it possible to deploy it to a managed service?"
Normally, Kamal SSHes into a server and runs Docker commands over the Docker Engine API. We did something similar, but a bit different: we put a shim on the other end of that API. It speaks Docker to Kamal and creates Kubernetes objects underneath. So `kamal deploy` runs unchanged, with the same deploy.yml, and the "server" it deploys to is a managed cluster instead of a VPS.
Full walkthrough: https://miget.com/blog/deploy-rails-with-kamal
One note: This is not for everyone. If owning your servers is the point for you, Kamal on a VPS is great, and you do not need this. It is for the Rails dev who likes the Kamal workflow but not the sysadmin half. Happy to answer anything about how the shim works.
To mods: I wrote it by myself; no AI involved here. Only Grammarly to fix my English ;)