Skip to content

Production Change Lock

Runway provides two mechanisms for pausing releases for a limited time:

  • Production Change Lock (PCL): intended to halt changes to production during certain events such as GitLab Summit and major global holidays. PCL applies to an entire department or group.
  • Deploy Freeze: intended to halt deployments of a specific service, for example to stop automation from overwriting a manual rollback.

Production Change Lock

Runway deployments adhere to Production Change Lock (PCL) process for change management. PCL uses “tags” to limit which department or group to lock. By default, Runway uses the delivery tag. To set use another tag, set the SOURCE_PROJECT_DEPLOY_FREEZE CI variable in the service project. Multiple tags must be comma separated, e.g. deployment,infrastructure.

How it works

Runway relies on change-lock tooling to check for PCL in deployment pipelines. When a deployment is outside the changelock window, the check passes and deployment proceeds:

Production Change Lock Check

When a deployment is within the changelock window, the check fails and deployment is halted.

Overriding an active change lock

Runway supports overriding the production change lock check by setting CHANGE_LOCK_OVERRIDE CI variable in deployment project:

Production Change Lock Check Override

The ability for service owners to override for production services is not considered an exemption to hard PCL. As per handbook, exemption requires approval of Sr. Director of Infrastructure Platforms or their designee.

Deploy Freeze

Runway honors the Deploy Freeze GitLab feature. This feature allows pausing deployments for individual projects, e.g. to prevent Runway from overwriting a manual incident mitigation.

The deploy freeze can be configured in the service project as well as the deployment project. We recommend to configure the deploy freeze in the service project, since it may stop other deployment tooling that might exist there. Configure a deploy freeze in the deployment project only if you require other deployemnt tooling in the service project to run.

Deploy freezes can be configured in the Settings → CI/CD UI under the point Deploy freezes.