DEVELOPMENT ENVIRONMENT

~liljamo/felu-ng

a01dbe90b91672fd00ed8fffddbb4d8656d33db5 — Jonni Liljamo a day ago bf813e6
docs: more initial planning
1 files changed, 27 insertions(+), 0 deletions(-)

M README.md
M README.md => README.md +27 -0
@@ 26,6 26,8 @@ Many, hosted as ns1, ns2, nsN, ns9.
Requires a static public IPv4, which is used as the DNS (At least Do53 (Port 53
over UDP and TCP). Possibly DoT, DoH and DoQ in the future) interface.

Don't start DNS servers until configuration from felu-mgmt is received.

Optionally the same interface used for DNS can be used as the interface that
felu-mgmt connects to for management.
Though ideally management is done via a VPN connection (e.g. Tailscale) and not


@@ 43,6 45,8 @@ Built-in HTTP server for things like Prometheus metrics at /metrics.
#### felu-common
Protobuf definitions and other shared structures.

* [prost](https://github.com/tokio-rs/prost) for protobufs

## Initial notes:
### Communication
Certs!


@@ 53,3 57,26 @@ Which is easier when we need a stream?
One-way stream? Mgmt sends data to ns, and ns can respond Results to received
messages, but not send messages to mgmt.

### Version control
Configuration version number.
Whole config hash?

### Health checks
Check if all available and on correct version of config.
Send config update if not.

5 second intervals.

### Atomic updates
Swap config after update in one operation.

## Scenarios
### New felu-ns
Receive whole config.

### Config updated
Existing felu-ns receive update.

#### felu-ns network flaky just as config was supposed to come
Health check will re-send if this happens.