Skip to content

Deployment

Change Log October 12, 2026

Decision: AutoFlow onboards to Theseus within today's platform constraints

The initial version of AutoFlow builds on Theseus, accepting Kubernetes-only delivery, a single database instance, and no remote modules for now. Theseus is not a blocker for AutoFlow reaching production.

Change Log September 28, 2026

Database migrations have a paved path: migrator

Theseus services now define schema migrations as a forward/backward SQL contract and run them from a migrator hook before each release starts, with validation, a rollback path, and one pass/fail signal. Agreed with Data Engineering; ready to adopt in every new service.

Change Log September 16, 2026

Decision: GATE does not need platform multi-port for the multi-tenant deployment of iam-auth today

The Auth team has agreed GATE's HTTP/gRPC split is served by two single-listener charts today: no outstanding Theseus work is necessary to facilitate GATE's iam-auth deployment to gitlab.com. The one-chart, two-listener shape remains the direction to converge on, without a deadline attached.

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

Run database migrations with migrator

Task recipes for migrator: author and validate migrations, build the derived image in CI, run them as a migration hook in your chart, adopt an existing database, roll back, and read the result.

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.

How-to guides

Ship service metrics with Metropolis

Declare your SLIs once in a GitLabServiceMetrics resource, review the generated rules and dashboards in CI, and ship them with your chart.

Operate

See what is running in production

Find the chart version and image running for your service on Runway, and where that answer lives for Cells.

Operate

Operate

Running a modular feature in production: what is deployed, pod health, rolling and rolling back, safe rollout, configuration, and knowing which cell is affected. Built for the middle of an incident.

Operate

Roll a deployment

How a release reaches production on Runway, how to hold or release the production step, and who rolls a Cell.

Operate

Roll back a deployment

The fastest ways to get production back to the last good version on Runway, in order of speed, and what rollback means on a Cell.

Operate

Roll out new code safely

What the Runway Kubernetes runtime does and does not offer for progressive delivery, and how feature flags are the de-risking tool Theseus gives you.

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.

Strategies

Metropolis: Monitoring as Part of the Service

SLIs, alerts, and dashboards declared as resources in the service repo, shipped with the chart, and compiled in-cluster by the GitLab Metrics Operator.

Tutorials

Scaffold a service

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

Tutorials

Add database migrations to your service

Take a scaffolded service from schema-at-startup to versioned, reversible migrations run by migrator: author, validate, apply, roll back, package, and run them before each release.