Roll a deployment
On Runway you do not “roll” a deployment by hand. A release commit starts a chain that ends with Flux applying new manifests. Your levers are which commits release, whether production waits for a human, and the change lock.
Today, on Runway
1. Make a release
A commit on the default branch whose message starts feat: or fix: (or
carries a breaking-change footer) is released by semantic-release. Fairway
builds and pushes the chart, then the 📦 Trigger deployment pipeline job
starts the deployment project’s pipeline with the new chart and app versions.
chore: and docs: commits do not release and so do not deploy. Source:
Runway Kubernetes getting started.
2. Watch it land
In the deployment project, the pipeline runs 🚧 Preflight Check,
⌚ Change Lock Check, then renders and uploads manifests for staging and
production. By default production deploys automatically once staging
succeeds. Flux picks up the new deploy:production artifact within five
minutes. Follow with
See what is running.
3. Hold production for a human
Set runway_manual_production_deploy: true in your release-platform CI
inputs. The production 📤 Upload Resource Manifests job then needs a manual
play; staging is unaffected. Source: the release-platform template README in
common-ci-tasks
and
Runway Kubernetes getting started.
# .gitlab-ci.yml, in your release-platform include
inputs:
runway_manual_production_deploy: trueTo promote, play that job. There is no separate soak or canary step on the Kubernetes runtime; staging-before-production and this manual play are the only gates. See Roll out new code safely.
4. Re-deploy the same version
5. Stop deploys
runway_manual_production_deploy: true(section 3) is the one hold the Kubernetes v2 deployment pipeline honours. Merge it as achore:commit so the change does not itself release; every later production upload then waits for a manual play ( deployment template).- The
⌚ Change Lock Checkjob enforces the Production Change Lock. Override only withCHANGE_LOCK_OVERRIDEand Senior Director approval ( Production change lock). - For a hard stop on a running service, ask Runway in #g_runway to suspend the Flux kustomization ( incident response).
RUNWAY_DEPLOYMENT_ACTION=manual and a GitLab Deploy Freeze as ways to
pause deploys. At the time of writing both are implemented only in the Cloud
Run deployment template; the Kubernetes v2 template reads neither. Do not
rely on them for a Kubernetes service until Runway confirms otherwise in
#g_runway.On Cells
Rolling out to cells is Release Managers’ work, not yours. Cells are
organised in rings: ring 0 is the QA cell, ring 1 the first user cells, ring
-1 quarantine. “Release Managers own continuous deployment to rings 0 and 1”
(
ADR 022),
driven by ringctl against the tenant model in tissue, through Amp and
Instrumentor
(
Cells deployments design).
A package cannot proceed to the next ring until it has installed in the
current one.