fix(#970,#973): retry gateway reload on failure; always enable HIVE_WEB_SOCKET
This commit is contained in:
parent
5cf18ad7c7
commit
b83edc40c6
5 changed files with 88 additions and 82 deletions
|
|
@ -80,24 +80,9 @@ in
|
|||
default = false;
|
||||
example = true;
|
||||
description = ''
|
||||
When `true`, set `HIVE_WEB_SOCKET=/run/hive-agent/${userName}/web.sock`
|
||||
on the harness service env, which makes `web_ui::serve` bind a
|
||||
`UnixListener` at that path instead of the legacy TCP listener
|
||||
on `HIVE_PORT`.
|
||||
|
||||
Default `false` so an agent's web UI keeps binding TCP until
|
||||
the per-agent flip is explicit. Rollout shape:
|
||||
|
||||
1. flip one canary agent to `true` via its `agent.nix`;
|
||||
2. validate the gateway's `proxy_pass http://unix:.../web.sock`
|
||||
end-to-end against that canary;
|
||||
3. flip remaining agents per-agent as the gateway side soaks;
|
||||
4. eventually drop this option once every agent is on unix and
|
||||
the TCP fallback is removed from the harness.
|
||||
|
||||
Sub-agents only: the manager always has `HIVE_WEB_SOCKET` set
|
||||
unconditionally in the `isManager` env block, so this toggle
|
||||
has no effect when `hyperhive.role = "manager"`.
|
||||
Deprecated. Unix socket mode is now always enabled for all agents.
|
||||
Setting this option to `true` has no effect and the option will be
|
||||
removed in a future version. Safe to drop from agent configs.
|
||||
'';
|
||||
};
|
||||
|
||||
|
|
@ -1304,23 +1289,15 @@ in
|
|||
HIVE_STATIC_DIR = "${config.hyperhive.frontend.mergedDist}";
|
||||
HIVE_ASSETS_DIR = "${pkgs.hyperhive-assets}/share/hyperhive";
|
||||
HIVE_ROLE = config.hyperhive.role;
|
||||
}
|
||||
// lib.optionalAttrs config.hyperhive.web.useUnixSocket {
|
||||
# Per-agent unix-socket path for the web UI. When set,
|
||||
# the harness's `web_ui::serve` binds a `UnixListener`
|
||||
# at this path instead of TCP. Path matches
|
||||
# `hive_c0re::agent_sockets::socket_path_for(name)` so
|
||||
# the lifecycle bind-mount and the gateway's upstream
|
||||
# config all derive from the same canonical
|
||||
# `/run/hive-agent/<name>/web.sock` shape.
|
||||
# Unix-socket path for the harness web UI. All agents (sub-agents
|
||||
# and manager) always bind here; TCP fallback is removed. Path
|
||||
# matches `hive_c0re::agent_sockets::socket_path_for(name)` so
|
||||
# lifecycle bind-mounts and gateway upstream config stay in sync.
|
||||
HIVE_WEB_SOCKET = "/run/hive-agent/${userName}/web.sock";
|
||||
}
|
||||
// lib.optionalAttrs isManager {
|
||||
# Standalone-eval fallback; meta.rs overrides at deploy time.
|
||||
HIVE_LABEL = "root";
|
||||
# Manager always uses a unix socket so the gateway can route
|
||||
# /agent/<name>/ to it the same way it routes sub-agents.
|
||||
HIVE_WEB_SOCKET = "/run/hive-agent/${userName}/web.sock";
|
||||
};
|
||||
serviceConfig = {
|
||||
ExecStart = "${pkgs.hyperhive}/bin/${binary} serve";
|
||||
|
|
|
|||
Loading…
Reference in a new issue