Skip to content

Deployment

Change Log September 11, 2026

Fairway services can now expose more than one port

A service that speaks gRPC to the cluster and HTTP to the world could not be expressed in a Fairway manifest. spec.listeners replaces spec.containerPort, and existing manifests keep working untouched.

Change Log September 10, 2026

Decision: database migrations ship as a forward/backward contract, run by an init container

Milestone 1 of Theseus database migrations is agreed: modular features supply paired forward and backward migrations as an API contract, an init container applies them, and Fairway deploys it automatically when a Postgres service opts in.

Change Log September 1, 2026

The feature-flags service is ready for production use

Feature flags for services outside the monolith are now available to all of GitLab engineering — define a flag in git, evaluate it with the LabKit client, and de-risk your next rollout.

Change Log August 31, 2026

Fairway v3.0.0: charts validate their own values

Every generated chart now ships a values.schema.json, so Helm rejects typo'd keys and out-of-range values before they reach a cluster — a breaking change worth reading before you regenerate.

Explanation

Platform bindings

One declarative interface, resolved per deployment target — and the rules for the Enterprise Platform Binding.

How-to guides

Deploy a service with Runway

From a Fairway manifest to a production deployment.

How-to guides

Pass application configuration via Fairway

Declare app config once in your Fairway manifest and let every environment deliver it — a ConfigMap in-cluster, a baked profile on Runway, per-cell values on Cells.

How-to guides

Get distributed tracing on Runway

From scaffold to spans in Google Cloud Trace with LabKit v2, Fairway, and Runway — the effort is deploying.

How-to guides

Get structured logging on Runway

From scaffold to queryable logs in Grafana — JSON on stderr is the whole contract, and the scaffold already honours it.

How-to guides

Get Prometheus metrics on Runway

Expose metrics with LabKit v2, declare the port in Fairway, flip one deploy-time switch — then query Mimir in Grafana.

Platform

Runway

Abstraction, artifact generation, and orchestration for GitLab services.

Platform

Fairway

Theseus's Helm chart generator.

Platform

Crete

A turnkey Self-Managed GitLab appliance.

Platform

GitLab Operator

Full lifecycle management of GitLab instances on Kubernetes and OpenShift.

Reference

Fairway manifest schema

Field reference for the FairwayManifest declarative service interface.

Reference

Go service template (exemplar)

A live, complete example of a Theseus service — read it alongside the docs when onboarding.

Strategies

The Observability Story

Instrument once with LabKit, collected by Runway with zero configuration, rendered on consistent dashboards — and, next, dashboards defined in the service repo and picked up automatically on deploy.

Strategies

Co-located Grafana dashboards

Dashboards are part of the service: jsonnet in the service repo, compiled in CI, shipped in the Helm chart, and discovered by whatever Grafana lives in the cell.

Tutorials

Get Started

Bootstrap a production-ready modular service with common-template-copier — LabKit baked in from the first commit.