- We use weave mesh's gossip functionality, which supports gossip of a CRDT
- protokube listens on 0.0.0.0:3999
- dns-controller listens on 0.0.0.0:3998
- The seed for dns-controller is protokube, discovered on 127.0.0.1:3999
- The real seeding is done by protokube, which currently finds peers by querying the cloud provider
- We implement a dnsprovider backed by our local gossip state
- We write to
/etc/hosts
; this is sort of hacky but avoids the need for a custom local resolver