refactor(nix): move the matrix host options under services.hyperhive.swarm
Second slice of the swarm-global service consolidation, same shape as
the forge move: the operator-facing host options become
services.hyperhive.swarm.matrix.*, and one mkRenamedOptionModule on the
namespace carries the whole subtree (nested gui.* included), so there is
no leaf list to forget an entry from.
The rename lives in hive-matrix.nix, the module that declares the
options, so each service's migration stays independent of its siblings.
The per-agent hyperhive.matrix.{enable,url} and hyperhive.matrixAccounts
are a different namespace -- a client pointer at the service, not the
service -- and deliberately do not move.
This commit is contained in:
parent
1a0cb0fb44
commit
fcdff04b23
5 changed files with 33 additions and 19 deletions
|
|
@ -102,7 +102,10 @@ in
|
|||
}
|
||||
//
|
||||
lib.optionalAttrs
|
||||
(config.services.hyperhive.matrix.enable && config.services.hyperhive.matrix.gatewayHost != null)
|
||||
(
|
||||
config.services.hyperhive.swarm.matrix.enable
|
||||
&& config.services.hyperhive.swarm.matrix.gatewayHost != null
|
||||
)
|
||||
{
|
||||
# In-cluster matrix homeserver URL for each agent's
|
||||
# hive-matrix-daemon — the gateway vhost (`matrix.<domain>`).
|
||||
|
|
@ -117,12 +120,12 @@ in
|
|||
# forward leaves `hyperhive.matrix.url` null and the daemon no-ops;
|
||||
# that is the honest answer when the hive has no matrix vhost to point
|
||||
# at.
|
||||
HIVE_MATRIX_URL = "http://${config.services.hyperhive.matrix.gatewayHost}";
|
||||
HIVE_MATRIX_URL = "http://${config.services.hyperhive.swarm.matrix.gatewayHost}";
|
||||
}
|
||||
// lib.optionalAttrs (config.services.hyperhive.matrix.apiUrl != null) {
|
||||
// lib.optionalAttrs (config.services.hyperhive.swarm.matrix.apiUrl != null) {
|
||||
# Client-server API base hive-c0re uses to provision matrix (register
|
||||
# agent users, create the hive space + chat room, invite members).
|
||||
# Supplied by `services.hyperhive.matrix.apiUrl`, which the matrix
|
||||
# Supplied by `services.hyperhive.swarm.matrix.apiUrl`, which the matrix
|
||||
# module fills in with its own loopback listener when it is the thing
|
||||
# running tuwunel — and which the operator sets by hand when the
|
||||
# homeserver lives on another machine.
|
||||
|
|
@ -131,9 +134,9 @@ in
|
|||
# vhost, and it is absent whenever there is no vhost. Reusing it here
|
||||
# would silently stop provisioning on a hive that runs matrix without
|
||||
# one.
|
||||
HIVE_MATRIX_API_URL = config.services.hyperhive.matrix.apiUrl;
|
||||
HIVE_MATRIX_API_URL = config.services.hyperhive.swarm.matrix.apiUrl;
|
||||
}
|
||||
// lib.optionalAttrs config.services.hyperhive.matrix.gui.enable {
|
||||
// lib.optionalAttrs config.services.hyperhive.swarm.matrix.gui.enable {
|
||||
# Availability flags read by the dashboard's `/api/state`.
|
||||
# Matrix GUI lives entirely on the gateway nginx (matrix tab
|
||||
# only shows when both flags are on). Gateway routing detail:
|
||||
|
|
@ -162,14 +165,15 @@ in
|
|||
//
|
||||
lib.optionalAttrs
|
||||
(
|
||||
config.services.hyperhive.matrix.gui.enable && config.services.hyperhive.matrix.gatewayHost != null
|
||||
config.services.hyperhive.swarm.matrix.gui.enable
|
||||
&& config.services.hyperhive.swarm.matrix.gatewayHost != null
|
||||
)
|
||||
{
|
||||
# Browser-facing matrix GUI (fluffychat) URL — the gateway
|
||||
# vhost (`matrix.<domain>`). Surfaced via the daemon's `Urls`
|
||||
# request for `hivectl open matrix`. Absent when the GUI is off
|
||||
# or no gatewayHost is set (no browser-reachable matrix vhost).
|
||||
HIVE_MATRIX_PUBLIC_URL = "https://${config.services.hyperhive.matrix.gatewayHost}/";
|
||||
HIVE_MATRIX_PUBLIC_URL = "https://${config.services.hyperhive.swarm.matrix.gatewayHost}/";
|
||||
}
|
||||
// lib.optionalAttrs (config.services.hyperhive.swarm.snapshotStore.address != null) {
|
||||
# `host:port` of the swarm's single snapshot store, for pushing agent
|
||||
|
|
|
|||
Loading…
Reference in a new issue