OnLaunch

What the Manager does with a runtime that has failed, or whose node was lost. See §3.4. Formerly "priority bands" (gold/silver/bronze), renamed because the metals implied a ranking: these are three different behaviours, not better/ok/worse.

PREFER_SPARE re-place, biasing placement toward standby nodes. AVOID_SPARE re-place, penalising unconsumed standby nodes so a routine failure does not consume a reserve held for critical work. DROP do not re-place; the runtime is terminal.

NB the numbers are the wire contract and MUST NOT change: they are persisted inside JobRequirements by the daemon, so renumbering would silently reinterpret every bundle already on disk. Note also that PREFER_SPARE is the proto3 zero value, so a message that omits the field decodes as PREFER_SPARE — which is NOT the Manager’s default (that is AVOID_SPARE, applied when a bundle is composed). What a bundle may do with hot spares WHEN IT IS FIRST LAUNCHED. Distinct from OnRuntimeFailure, which governs the same question at recovery time — two different moments, two different controls.

The reserve exists so that work which asked for a spare can recover onto one immediately, and a launch is normally scheduled with time in hand. So the default is to leave spares alone. The exception is the emergency launch — something has to be on air NOW — where taking a warm node is the right trade.

ALLOW_SPARE means the spare stops being penalised and competes as an ordinary candidate. It deliberately does NOT bias toward spares: that would be prefer, and naming it so while merely un-penalising is the kind of misleading name the OnRuntimeFailure rename exists to remove.

AVOID_SPARE is the proto3 zero value AND the default, so a message that omits the field decodes to the intended behaviour — unlike OnRuntimeFailure, where the zero value is not the default.

Name

Number

Description

ON_LAUNCH_AVOID_SPARE

0

ON_LAUNCH_ALLOW_SPARE

1