F Forge DocsRepository ↗FeaturesUser manual

Infrastructure

How placement works

Strategies, constraints, and explainable scoring.

Repository-validated operator guidance View source ↗

#Strategies

StrategyPicks
least-loaded (default)Highest mean of available CPU/memory/disk ratios.
bin-packHighest utilization — pack workloads tightly.
spreadFewest existing servers — spread out.
randomUniform choice among eligible nodes.
FLOW

Placement evaluation

01Workload requestconstraints
02Filter ineligibleMaths
03Score candidatesreport
04Explaindurable
05Reserve

#Constraints

Requests carry CPU, memory, disk, preferred or required node, region, storage locality, and constraints. Constraint types are affinity, anti-affinity, region, node, and label, each with in, not-in, exists, or not-exists operators. Required constraints filter hard; soft ones add bounded bonuses. A preferred node adds +0.30, storage matches add +0.15, mismatches cost −0.50, and replicas of the same app repel at −0.1 each. Missing data fails closed: unknown totals, unknown operators, and unresolvable affinity all reject rather than guess.

#Explainability

Every evaluation can report which nodes were filtered and why, per-node score breakdowns, and replica-by-replica explanations. The dashboard surfaces this so a surprising placement is debuggable instead of mysterious. Reservations must be made durable before the next placement, or two schedulers can promise the same capacity twice.

Docker is not scheduled here

The k3s/nomad scheduler handles those runtimes. Docker workloads go through Beacon runtime adapters over panel-to-Beacon HTTP.

Made by Riyaz with love