Operating system compatibility matrix
This page lists the systems supported by the Navin Manager server, the Navin agent and the managed hosts. The host table is read from navin_manager/os_support.py, the single definition applied by the agent preflight and by the SSH preflight; the package table is checked against the files of navin-manager/packaging. It is generated by navin-manager/docs/tools/generate_reference.py: do not edit it by hand.
Certified systems
The list the console shows on the System page (card Supported systems) and that GET /api/v1/system/supported-os returns:
RHEL 8/9/10, Rocky Linux 8/9/10, AlmaLinux 8/9/10, Oracle Linux 8/9, CentOS Stream 9/10, Ubuntu 22.04/24.04, Debian 12, Arch Linux (rolling)
Managed hosts
The family is read from ID of /etc/os-release, else from ID_LIKE (rocky, almalinux, ol, centos, fedora give rhel; ubuntu gives debian; arch gives arch). Ubuntu versions are compared on major.minor (22.04), the others on the major version (9.4 is 9). Architectures: x86_64 and aarch64 for the Go agent, any for the Python agent.
| Distribution | ID (os-release) | Family | Certified releases | End of life | Package manager | Notes |
|---|---|---|---|---|---|---|
| RHEL | rhel | RHEL | 8, 9, 10 | up to 7 | dnf | Python agent on RHEL 8: dnf install python39 first. |
| Rocky Linux | rocky | RHEL | 8, 9, 10 | up to 7 | dnf | Same packages as RHEL. |
| AlmaLinux | almalinux | RHEL | 8, 9, 10 | up to 7 | dnf | Same packages as RHEL. |
| Oracle Linux | ol | RHEL | 8, 9 | up to 7 | dnf | Oracle Linux 10 passes with a warning (not certified). |
| CentOS Stream | centos | RHEL | 9, 10 | up to 8 | dnf | CentOS 7 and 8 are end of life. |
| Ubuntu | ubuntu | Debian | 22.04, 24.04 | up to 25.10 | apt | Ubuntu 26.04 passes with a warning; 25.10 and older releases that are not certified are end of life. |
| Debian | debian | Debian | 12 | up to 11 | apt | Debian 13 passes with a warning. |
| Arch Linux | arch | Arch Linux | every version (rolling release) | never | pacman | Derivatives (Manjaro, EndeavourOS) pass with a warning. |
Verdicts of the preflight
Every host gets one verdict, the same in the agent preflight and in the SSH preflight:
| Verdict | Preflight outcome | Meaning |
|---|---|---|
certified | pass | A release the agent packages are built and tested for. |
uncertified | warning | A newer release of a known family, or another distribution of that family: allowed, with a warning. |
end_of_life | blocking | A release that no longer receives security fixes: every installation is blocked. |
unsupported | blocking | A family without Navin packages: every installation is blocked. |
Packages of the Navin Manager and of the agent
Packages built by navin-manager/packaging/build-packages.sh and os/build.sh, filed under os/<package>/<family>/.
| Product | Package | Format | Systems | Architectures | Python | Notes |
|---|---|---|---|---|---|---|
| Navin Manager server | navin-manager-<version>-1.el9.x86_64.rpm | RPM | RHEL family 8, 9 and 10: RHEL, Rocky Linux, AlmaLinux, Oracle Linux 8/9, CentOS Stream 9/10 (one RPM for every release) | x86_64 | python3.12 (dependency: AppStream on 8.10 and 9, BaseOS on 10) | Recommends postgresql-server for the local database. |
| Navin Manager server | navin-manager_<version>_amd64.deb | DEB | Ubuntu 24.04 | amd64 | python3.12, python3.12-venv (dependencies) | Recommends postgresql. |
| Navin Manager server | navin-manager-<version>-1-x86_64.pkg.tar.zst | pacman | Arch Linux | x86_64 | The Python of Arch Linux at build time (python>= and python< the next minor) | Optional postgresql for the local database. |
| Navin agent (Go, shipped) | navin-manager-agent-go-<version>-1.<arch>.rpm | RPM | RHEL family 8 to 10 | x86_64, aarch64 | none (static binary) | Provides and conflicts with navin-manager-agent; requires shadow-utils (useradd, usermod) and procps-ng (sysctl), recommends podman. |
| Navin agent (Go, shipped) | navin-manager-agent-go_<version>_<debarch>.deb | DEB | Ubuntu 22.04, 24.04, Debian 12 | amd64, arm64 | none (static binary) | Depends on systemd, passwd (useradd, usermod) and procps (sysctl); recommends podman and uidmap. |
| Navin agent (Go, shipped) | navin-manager-agent-go-<version>-1-<arch>.pkg.tar.zst | pacman | Arch Linux | x86_64, aarch64 | none (static binary) | Conflicts with navin-manager-agent; depends on systemd, shadow and procps-ng, podman optional. |
| Navin agent (Python, reference) | navin-manager-agent-<version>-1.noarch.rpm | RPM | RHEL family 8 to 10 | noarch | python3 >= 3.9 or python39 or python3.11 | Also needs openssl, tar, shadow-utils and procps-ng; recommends podman. |
| Navin agent (Python, reference) | navin-manager-agent_<version>_all.deb | DEB | Ubuntu 22.04, 24.04, Debian 12 | all | Python 3.9 or newer | Same command and unit as the Go agent. |
| Navin agent (Python, reference) | navin-manager-agent-<version>-1-any.pkg.tar.zst | pacman | Arch Linux | any | Python of Arch Linux | Same command and unit as the Go agent. |
Navin Manager server host
- RHEL family 8, 9 or 10 (RHEL, Rocky Linux, AlmaLinux, Oracle Linux 8/9, CentOS Stream 9/10) with
python3.12: one RPM for every release (Requires: python3.12, AppStream on 8.10 and 9, BaseOS on 10; RHEL 10 has nopython3.11package). - Ubuntu 24.04 with
python3.12andpython3.12-venv(DEB). - Ubuntu 22.04: managed host only (agents). It provides no maintained Python 3.11 or newer, which the server requires.
Python method of the services
With the python method, the interpreter of a service is chosen per host: the Python of the host when the service runs on it, else the first interpreter of the service (python.interpreter, then python.interpreters) that the release of the host provides from its maintained repositories. The table is read from navin_manager/os_support.py (PYTHONS):
| Systems | Interpreters provided |
|---|---|
| RHEL 8, 9 | python3.12, python3.11 |
| RHEL 10 | python3.12, python3.14 |
| Rocky Linux 8, 9 | python3.12, python3.11 |
| Rocky Linux 10 | python3.12, python3.14 |
| AlmaLinux 8, 9 | python3.12, python3.11 |
| AlmaLinux 10 | python3.12, python3.14 |
| Oracle Linux 8, 9 | python3.12, python3.11 |
| CentOS Stream 9 | python3.12, python3.11 |
| CentOS Stream 10 | python3.12, python3.14 |
| Ubuntu 22.04 | python3.10 |
| Ubuntu 24.04 | python3.12 |
| Debian 12 | python3.11 |
When a certified release provides none of the interpreters of a service and the Python of the host is not one of them, the installation is refused with HTTP 409 python_interpreter_unavailable: choose another method for that service (binary or podman), or another host. On a release that is not certified, and on Arch Linux (rolling), the preferred interpreter of the service (python.interpreter) is kept.
Prerequisites checked on each host
- Operating system: verdict of the table above (
oscheck). - Python: the
pythoncheck passes with Python 3.9 or later (navin_manager/preflight.py). With the Go agent, Python is needed only on hosts that run apython.venvcomponent. - Podman: the
podmancheck warns when Podman is missing; thepodmanmethod installs it as a host prerequisite (packages.install). - Tools:
opensslandtarfor the Python agent;taris installed as a prerequisite when an artifact must be extracted. - Clock synchronized (chronyd or systemd-timesyncd), systemd, SELinux, open files limit: checked by the preflight, as warnings in a sandbox cluster.