Docs: Document Container Registry Feature Flags for Self-Managed Administrators

  • Start this issue's title with Docs: or Docs feedback:.

Problem to solve

Overview

Container registry feature flags are environment variable-based toggles that control experimental or transitional functionality in the GitLab Container Registry. Unlike GitLab application feature flags, these are managed through registry-specific environment variables and require registry reconfiguration to change.

This issue tracks the creation of comprehensive documentation for all currently active container registry feature flags, including how to enable/disable them across different deployment platforms.

Important: Container registry feature flags are distinct from GitLab application feature flags listed at https://docs.gitlab.com/administration/feature_flags/list/. They are defined in the container registry codebase and controlled via REGISTRY_FF_* environment variables.

Currently Active Feature Flags

Feature Flag Purpose Default State Introduced
REGISTRY_FF_ONGOING_RENAME_CHECK Check Redis for GitLab projects undergoing rename operations Disabled TBD
REGISTRY_FF_DYNAMIC_MEDIA_TYPES Allow creation of new media types during runtime Disabled TBD
REGISTRY_FF_BBM Control asynchronous batched background migration process Disabled TBD
REGISTRY_FF_ENFORCE_LOCKFILES Enable lockfile checking for database/filesystem metadata storage Disabled TBD

Documentation Requirements

For each feature flag, the documentation should include:

1. Feature Flag Details

  • Name: The environment variable name (e.g., REGISTRY_FF_ONGOING_RENAME_CHECK)
  • Purpose: Clear, user-facing explanation of what the feature does
  • Default state: Whether enabled or disabled by default
  • Introduction date: GitLab version/date when introduced
  • Enabled by default date: If applicable, when it was changed to enabled by default
  • Deprecation timeline: Planned removal date/version if known

2. Configuration Instructions by Platform

Linux Package (Omnibus) Installations

# /etc/gitlab/gitlab.rb
registry['env'] = {
  'REGISTRY_FF_FEATURE_NAME' => 'true'  # or 'false' to disable
}

Then reconfigure:

sudo gitlab-ctl reconfigure
sudo gitlab-ctl restart registry

Helm Chart (Kubernetes) Installations

# values.yaml
registry:
  extraEnv:
    REGISTRY_FF_FEATURE_NAME: "true"  # or "false" to disable

Then upgrade:

helm upgrade gitlab gitlab/gitlab -f values.yaml

Docker/Docker Compose Installations

Important: Setting environment variables directly in Docker Compose does NOT work. You must configure through gitlab.rb.

Create or edit gitlab.rb:

registry['env'] = {
  'REGISTRY_FF_FEATURE_NAME' => 'true'
}

Mount this configuration in your Docker Compose setup and ensure GitLab reconfigures on startup.

Further details

Proposal

Who can address the issue

Other links/references

Edited by Zachary Painter