feat(nix): move the forge host options under services.hyperhive.swarm
Forgejo is a swarm-global service, so its operator-facing host options move to services.hyperhive.swarm.forge (and .swarm.forge.ci) as the first of the namespace consolidation. Existing hive configs keep evaluating: swarm-renames.nix maps every moved leaf with mkRenamedOptionModule, which also emits a deprecation warning naming both the old and new path, so an operator is told what to rename rather than discovering it from a failed eval. The per-agent hyperhive.forge.url does NOT move. It is a client pointer at whatever forge an agent talks to - it shares a word with the service and nothing else, and the two are already documented as separate option surfaces. Verified by evaluating the host module, since no Rust gate evaluates nix: setting the old paths and reading the new ones yields the values (httpPort 3999, ci.concurrency 7), and config.warnings carries the rename notice.
This commit is contained in:
parent
7a726d1e4e
commit
38c222fadd
8 changed files with 78 additions and 24 deletions
|
|
@ -31,7 +31,7 @@ let
|
|||
safeDirGitconfig = pkgs.writeText "hyperhive-safe-gitconfig" ''
|
||||
[safe]
|
||||
directory = *
|
||||
[credential "http://${config.services.hyperhive.forge.domain}"]
|
||||
[credential "http://${config.services.hyperhive.swarm.forge.domain}"]
|
||||
helper = hive-forge
|
||||
username = core
|
||||
[http]
|
||||
|
|
|
|||
|
|
@ -98,7 +98,7 @@ in
|
|||
# agents via meta.rs for their forge-notify client. The forge is
|
||||
# mandatory, so this is unconditional (the whole env block is already
|
||||
# gated on hyperhive being enabled). See `docs/gateway.md::HIVE_FORGE_URL`.
|
||||
HIVE_FORGE_URL = "http://${config.services.hyperhive.forge.domain}";
|
||||
HIVE_FORGE_URL = "http://${config.services.hyperhive.swarm.forge.domain}";
|
||||
}
|
||||
//
|
||||
lib.optionalAttrs
|
||||
|
|
@ -147,17 +147,17 @@ in
|
|||
# dashboard doesn't need to learn the gateway is unconditional.
|
||||
HIVE_GATEWAY_ENABLED = "1";
|
||||
}
|
||||
// lib.optionalAttrs (config.services.hyperhive.forge.publicUrl != null) {
|
||||
// lib.optionalAttrs (config.services.hyperhive.swarm.forge.publicUrl != null) {
|
||||
# Public URL of the forge, for the dashboard to build browser-facing
|
||||
# forge links from instead of guessing `<hostname>:3000` (which
|
||||
# breaks the moment the operator's browser hostname isn't the forge
|
||||
# host, e.g. through the gateway or a reverse proxy). Sourced from
|
||||
# `services.hyperhive.forge.publicUrl`, which itself defaults to the
|
||||
# `services.hyperhive.swarm.forge.publicUrl`, which itself defaults to the
|
||||
# gateway vhost URL when `behindGateway = true` and `null` otherwise
|
||||
# — see that option's doc for the "hide, don't guess" rationale.
|
||||
# Absent here whenever `publicUrl` is `null`; the dashboard hides
|
||||
# forge links rather than emitting one it can't justify.
|
||||
HIVE_FORGE_PUBLIC_URL = config.services.hyperhive.forge.publicUrl;
|
||||
HIVE_FORGE_PUBLIC_URL = config.services.hyperhive.swarm.forge.publicUrl;
|
||||
}
|
||||
//
|
||||
lib.optionalAttrs
|
||||
|
|
|
|||
Loading…
Reference in a new issue