GitLab Omnibus reconfigure fails on RHEL 10 due to semanage command not found

Summary

GitLab Omnibus reconfigure fails on RHEL 10 with semanage: command not found due to missing policycoreutils-python-utils dependency.

Environment

  • OS: Red Hat Enterprise Linux 10.0
  • GitLab Version: 18.6.0-ee
  • Installation Method: GitLab Omnibus (RPM package)
  • Configuration: Praefect PostgreSQL node

Steps to Reproduce

  1. Install RHEL 10 (minimal installation)
  2. Install GitLab Omnibus package on a node that installs PostgreSQL via the package
  3. Run gitlab-ctl reconfigure

Expected Behavior

According to the troubleshooting documentation:

The runtime dependency policycoreutils-python has been added to the RPM package for RHEL based operating systems in order to ensure the semanage command is available.

The semanage command should be available after GitLab installation.

Actual Behavior

GitLab reconfigure fails with a significantly long error trace but the pertinent part is as follows:

bash[Set proper security context on ssh files for selinux] (gitlab::selinux line 88) had an error: 
Mixlib::ShellOut::ShellCommandFailed: Expected process to exit with [0], but received '127'
---- Begin output of "bash"  ----
STDERR: bash: line 1: semanage: command not found

Root Cause

The omnibus-gitlab package does not declare policycoreutils-python-utils as a runtime dependency for RHEL 10. The dependency is missing from config/projects/gitlab.rb: https://gitlab.com/gitlab-org/omnibus-gitlab/-/blob/master/config/projects/gitlab.rb#L74

Workaround

dnf install policycoreutils-python-utils
gitlab-ctl reconfigure
Edited by Grant Young