Add WatchEvents, enable/disable/weight RPCs, and config check
gRPC / proto - Rename WatchBackendEvents → WatchEvents; return a stream of Event oneof (LogEvent, BackendEvent, FrontendEvent) with optional filter flags (log, log_level, backend, frontend) - Add EnableBackend, DisableBackend, SetFrontendPoolBackendWeight RPCs - Rename PauseResumeRequest → BackendRequest - Add CheckConfig RPC returning ok/parse_error/semantic_error maglevd - Route slog through a LogBroadcaster (slog.Handler) so WatchEvents subscribers can receive structured log records independently of the daemon's own --log-level - Add --reflection flag (default true) to toggle gRPC server reflection - Add --check flag: validates config file and exits 0/1/2 - SIGHUP: use config.Check before applying reload; log parse vs semantic error separately; refuse reload on any error - Rename default config path /etc/maglev → /etc/vpp-maglev maglevc - Add 'watch events [num <n>] [log [level <level>]] [backend] [frontend]' command; prints compact protojson, stops on any keypress or Ctrl-C; uses cbreak mode (not raw) so output post-processing is preserved - Add 'set backend <name> enable|disable' - Add 'set frontend <name> pool <pool> backend <name> weight <0-100>' - Add 'config check' command Debian packaging - Rename service unit to vpp-maglevd.service - Rename conffiles to /etc/default/vpp-maglev and /etc/vpp-maglev/ - Create maglevd system user/group in postinst; add to vpp group if present - Add postrm; add adduser to Depends
This commit is contained in:
@@ -11,7 +11,7 @@ in two stages:
|
||||
ensuring that every backend referenced by a frontend exists, that address families are
|
||||
consistent within a frontend, and that IP source addresses are the correct family.
|
||||
|
||||
If you want to get started quickly, take a look at the [example config](#example).
|
||||
If you want to get started quickly, take a look at the [[example config](../debian/mavleg.yaml)].
|
||||
|
||||
## Basic structure
|
||||
|
||||
@@ -277,109 +277,7 @@ frontends:
|
||||
|
||||
---
|
||||
|
||||
## Example
|
||||
For a detailed description of the health state machine, probe intervals, and all transition events,
|
||||
see [[healthchecks.md](healthchecks.md)]. For a user guide on how to use the maglev daemon and client,
|
||||
see the [[user-guide.md](user-guide.md)].
|
||||
|
||||
A complete configuration tying all sections together:
|
||||
|
||||
```yaml
|
||||
maglev:
|
||||
healthchecker:
|
||||
transition-history: 5
|
||||
netns: dataplane
|
||||
|
||||
healthchecks:
|
||||
nginx:
|
||||
type: http
|
||||
port: 80
|
||||
params:
|
||||
path: /healthz
|
||||
host: nginx.example.com
|
||||
response-code: "200"
|
||||
interval: 2s
|
||||
fast-interval: 500ms
|
||||
down-interval: 30s
|
||||
timeout: 3s
|
||||
rise: 2
|
||||
fall: 3
|
||||
|
||||
dovecot:
|
||||
type: tcp
|
||||
port: 993
|
||||
params:
|
||||
ssl: true
|
||||
server-name: imaps.example.com
|
||||
interval: 5s
|
||||
fast-interval: 1s
|
||||
down-interval: 30s
|
||||
timeout: 3s
|
||||
rise: 2
|
||||
fall: 3
|
||||
|
||||
ping6:
|
||||
type: icmp
|
||||
probe-ipv6-src: 2001:db8:probe::1
|
||||
interval: 2s
|
||||
timeout: 1s
|
||||
|
||||
backends:
|
||||
nginx0-ams:
|
||||
address: 198.51.100.10
|
||||
healthcheck: nginx
|
||||
nginx0-lon:
|
||||
address: 198.51.100.11
|
||||
healthcheck: nginx
|
||||
nginx0-fra:
|
||||
address: 198.51.100.12
|
||||
healthcheck: nginx
|
||||
maildrop0-ams:
|
||||
address: 2001:db8:1::10
|
||||
healthcheck: dovecot
|
||||
maildrop0-lon:
|
||||
address: 2001:db8:1::11
|
||||
healthcheck: dovecot
|
||||
|
||||
frontends:
|
||||
nginx-http:
|
||||
description: "HTTP VIP with fallback"
|
||||
address: 198.51.100.1
|
||||
protocol: tcp
|
||||
port: 80
|
||||
pools:
|
||||
- name: primary
|
||||
backends:
|
||||
nginx0-ams: { weight: 10 }
|
||||
nginx0-lon: {}
|
||||
- name: fallback
|
||||
backends:
|
||||
nginx0-fra: {}
|
||||
|
||||
nginx-https:
|
||||
description: "HTTPS VIP — same backends, different port"
|
||||
address: 198.51.100.1
|
||||
protocol: tcp
|
||||
port: 443
|
||||
pools:
|
||||
- name: primary
|
||||
backends:
|
||||
nginx0-ams: { weight: 10 }
|
||||
nginx0-lon: {}
|
||||
- name: fallback
|
||||
backends:
|
||||
nginx0-fra: {}
|
||||
|
||||
maildrop-imaps:
|
||||
description: "IMAPS VIP"
|
||||
address: 2001:db8::1
|
||||
protocol: tcp
|
||||
port: 993
|
||||
pools:
|
||||
- name: primary
|
||||
backends:
|
||||
maildrop0-ams: {}
|
||||
maildrop0-lon: {}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
For a detailed description of the health state machine, probe intervals, and all
|
||||
transition events, see [healthchecks.md](healthchecks.md).
|
||||
|
||||
Reference in New Issue
Block a user