pin internal/meta's hyperhive on the controller's rev and rebuild agents when it moves
The swarm controller offers its own running rev (services.hyperhive.c0re. hyperhiveRev) as the hyperhive pin of internal/meta and takes it only when the forge compare API shows it descends from the committed pin; merges to hyperhive main no longer move the pin, and the first commit pins main's head. When a commit moves the pin, every placed agent gets a TriggerDeploy. A deploy after a meta update no longer waits on it succeeding (after_any), so a down builder does not hold back hives that render locally.
This commit is contained in:
parent
5950363a10
commit
22e2d30581
1 changed files with 1027 additions and 148 deletions
|
|
@ -285,8 +285,9 @@ fn spawn_forge_workers(
|
|||
auth: Option<Arc<auth::AuthBridge>>,
|
||||
queue: Option<async_nats::Client>,
|
||||
) {
|
||||
// `internal/meta` appears, and catches up with every head that moved while
|
||||
// this daemon was down.
|
||||
// `internal/meta` appears, catches up with every config head that moved
|
||||
// while this daemon was down, and takes this daemon's rev as the hyperhive
|
||||
// pin when that is newer.
|
||||
if let Err(e) = crate::jobq::queue_meta_update(jobq) {
|
||||
tracing::warn!(error = %format!("{e:#}"), "update_meta: queueing failed");
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue