move the small per-service host options to deploy.<service>
This commit is contained in:
parent
400fdd7f0e
commit
525de62b06
1 changed files with 407 additions and 251 deletions
|
|
@ -60,69 +60,13 @@ in
|
|||
`wg-hive` when this host is on the mesh, for other hives. Never
|
||||
host-wide. TLS only: a client that does not speak it is refused.
|
||||
|
||||
Unlike {option}`monitorPort` and {option}`metricsPort`, the
|
||||
Unlike {option}`services.hyperhive.deploy.nats.monitorPort` and
|
||||
{option}`services.hyperhive.deploy.nats.metricsPort`, the
|
||||
address is not what bounds who may use this port: the queue's
|
||||
`auth_callout` refuses every client it cannot identify.
|
||||
'';
|
||||
};
|
||||
|
||||
monitorPort = lib.mkOption {
|
||||
type = lib.types.port;
|
||||
default = 8222;
|
||||
description = ''
|
||||
Port NATS serves its **monitoring** endpoint on, bound to
|
||||
loopback.
|
||||
|
||||
Not a metrics endpoint: the server has no Prometheus format of its
|
||||
own. This serves `/varz`, `/connz`, `/routez` as JSON, and the
|
||||
exporter below is what translates it — which is why enabling the
|
||||
exporter without this produces a process that starts cleanly and
|
||||
scrapes nothing.
|
||||
|
||||
⚠️ Loopback, and the exporter is the only intended reader. The
|
||||
endpoint is unauthenticated and `/connz` names every connected
|
||||
client, so the address it binds is the whole access control. Do
|
||||
not widen it, and do not put it behind a gateway vhost expecting
|
||||
that to add one.
|
||||
'';
|
||||
};
|
||||
|
||||
metricsPort = lib.mkOption {
|
||||
type = lib.types.port;
|
||||
default = 7777;
|
||||
description = ''
|
||||
Port the Prometheus exporter serves NATS's metrics on, bound to
|
||||
loopback. The gateway's `= /metrics` location on
|
||||
{option}`services.hyperhive.swarm.nats.domain` proxies it, behind
|
||||
the swarm collector's authelia check.
|
||||
|
||||
⚠️ This and {option}`monitorPort` are two more claims on a port
|
||||
space every swarm container shares — they run in this container but
|
||||
`privateNetwork = false`, so a collision with any other hyperhive
|
||||
service is a runtime coin toss over which process gets the port,
|
||||
with nothing in any log saying so. Both defaults are upstream's
|
||||
own (`nats-server` 8222, `prometheus-nats-exporter` 7777) and
|
||||
neither is claimed elsewhere in this repo, checked when they were
|
||||
added.
|
||||
'';
|
||||
};
|
||||
|
||||
otel.telemetryPort = lib.mkOption {
|
||||
type = lib.types.port;
|
||||
default = 8891;
|
||||
description = ''
|
||||
Loopback port the journal forwarder inside the queue's container
|
||||
serves its own metrics on (refused and dropped records, exporter
|
||||
failures).
|
||||
|
||||
⚠️ Not 8888 or 8890: the hive collector and the store's forwarder
|
||||
bind those ({option}`services.hyperhive.otel.telemetryPort`,
|
||||
{option}`services.hyperhive.swarm.bao.otel.telemetryPort`), and this
|
||||
container shares the host netns with them when co-located. The second
|
||||
collector to bind a port dies with `bind: address already in use`.
|
||||
'';
|
||||
};
|
||||
|
||||
clientId = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "swarm-nats";
|
||||
|
|
|
|||
Loading…
Reference in a new issue