Skip to content

Generate artifact/manifest from runway config for Self Managed & Dedicated users

Originally posted in gitlab-com/gl-infra/scalability#3395 (comment 1867506114).

We're seeing increased demand to package and deploy Runway services in a self-hosted manner. We run the risk of services building out parallel paths next to Runway (e.g. omnibus, docker-compose, helm). This fragments the solution space.

This is a proposal to create a stop-gap solution in Runway that can meet these use cases.

  • Introduce a new subcommand in runwayctl.
  • This subcommand will read runway.yml and related files and generate a static kubernetes manifest.
  • This kubernetes manifest can then be applied to get a limited deployment of the service.
  • It will likely be missing some features, such as load balancing, firewalling, multi-region, some o11y bits, etc.
  • It allows consumer to bring their own kubernetes cluster, and standardizes on kubernetes as the abstraction. We can migrate to helm, knative, etc. later if needed.
  • Consumers can also use something lightweight like k3s if needed.

It does mean we expand the scope of runway and will likely need to deal with some divergence and special requirements for these non-hosted deployments. But I think it would solve a real problem and allow us to unify on kubernetes, and that's worth a lot.