Skip to main content

Herr Ober

PyPI version Python 3.12+ License: MIT Tests codecov

High-Performance S3 Ingress Controller (BGP/ECMP)

Herr Ober ("Head Waiter") is a lightweight, high-throughput (50GB/s+) ingress controller designed for Ceph RGW clusters. It uses HAProxy 3.3 (AWS-LC) for SSL offloading and ExaBGP for Layer 3 High Availability via ECMP.

Supported: Ubuntu, Debian, RHEL 10+ on Proxmox VMs (KVM)


Documentation

For deep internals, kernel tuning, and failure recovery logic, see architecture.md.


Quick Start

1. Proxmox VM Prerequisites

Before installing, ensure the VM is configured for 50GB/s throughput:

  • CPU: Type host (AES-NI passthrough)
  • Network: VirtIO with Multiqueue enabled (Queues = vCPUs)
  • Hardware Watchdog: Add device Intel 6300ESB → Action: Reset

2. Install

One-liner (recommended):

curl -fsSL https://raw.githubusercontent.com/dirkpetersen/ober/main/install.sh | sudo bash
sudo ober bootstrap

Manual install:

sudo su -
apt install -y pipx
pipx ensurepath
source ~/.bashrc
pipx install herr-ober
ober bootstrap

3. Configure

Interactive wizard to set up BGP, VIPs, backends, and certificates.

sudo ober config

4. Verify

# Check prerequisites and configuration
ober doctor

# View service status
ober status

Usage

CLI Commands

ober bootstrap [path]     # Install and set up everything
ober config [--dry-run]   # Interactive configuration wizard
ober sync                 # Update external system whitelists
ober status               # Show current state (--json for scripting)
ober start|stop|restart   # Service management (stop gracefully withdraws BGP)
ober logs [-f] [-n N]     # View logs (--service http|bgp to filter)
ober doctor               # Diagnostic checks
ober test                 # Test BGP connectivity without starting services
ober upgrade              # Check and install updates
ober uninstall            # Clean removal

Updating Whitelists

Update external system whitelists with Slurm hostlists or IP addresses:

# Update all whitelists (interactive prompts)
ober sync

# Update specific whitelist
ober sync --routers "switch[01-04]"
ober sync --frontend-http "weka[001-100]"
ober sync --backend-http "rgw[01-08].internal"

Checking Health

# Full status with systemd service info
ober status

# JSON output for monitoring integration
ober status --json

# Direct health endpoint
curl http://127.0.0.1:8404/health

Failure & Recovery

Event Recovery
Node Crash Traffic fails over via ECMP (instant)
OS Freeze Proxmox Watchdog hard-resets VM (10s)
HAProxy Crash BGP withdraws immediately (BindsTo=)
Network Cut BFD detects and tears down route (~150ms)

See architecture.md for detailed failure scenarios.


Development

# Clone and install dev dependencies
git clone https://github.com/dirkpetersen/ober.git
cd ober
pip install -e ".[dev]"

# Run tests
pytest

# Lint and format
ruff check .
ruff format .

# Type check
mypy ober/

License

MIT

Metadata

Release files for herr-ober 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for herr-ober 0.2.0
File Size Uploaded
herr_ober-0.2.0.tar.gz 50.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for herr-ober 0.2.0
File Interpreter ABI Platform
herr_ober-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 92.6 kB

Release files / herr_ober-0.2.0.tar.gz

Download URL herr_ober-0.2.0.tar.gz
Size 50.7 kB
Tags Source
SHA-256 checksum
How to use checksums
1e440c3ed489505db4181cf67aa68b8651a946b04348407b1c9e303c82c12080
BLAKE2b-256 checksum
How to use checksums
b63bf39d2c107e9d24e954b7c39bb369233971aa04d70262f360552114eca15f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Dec 19, 2025.

Transparency log

Release files / herr_ober-0.2.0-py3-none-any.whl

Download URL herr_ober-0.2.0-py3-none-any.whl
Size 41.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8a1abd08c55ac258f10ccf5a2fb42dda61e79d94a67af393602c12f09cfd4c0d
BLAKE2b-256 checksum
How to use checksums
018968c379450b01607e0520b8fb98dd49ed24f0ce44625d0da7757f0c189b69
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Dec 19, 2025.

Transparency log

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 release files

0.1.13

2 release files

0.1.12

2 release files

0.1.11

2 release files

0.1.10

2 release files

0.1.7

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page