Commit Graph

6 Commits

Author SHA1 Message Date
Ciprian Hacman defcbe8151 protokube/pkg - fix static check 2019-12-20 20:17:19 +02:00
Justin SB feec6820fe
Avoid concurrent write corruption to /etc/hosts
When we have multiple writers racing to write /etc/hosts, we could
have file corruption where we see a mix of both files.

We can't use a traditional atomic file write, because we are bind-mounting /etc/hosts.

Instead we write to /etc/hosts, pause, then re-read the contents.  If
the contents don't match, we repeat.  This will not result in fair
queuing, but will avoid corruption.
2019-05-07 11:41:36 -04:00
Justin SB 68e975cc74
/etc/hosts (gossip): Stronger logic
* Add a mutex around /etc/hosts updates (for a little extra safety)
* Don't write unchanged files
* Recover from out-of-sequence guard lines
* Add tests

Thanks to granular-ryanbonham for the suggestions & finding the issue!
2019-05-06 22:09:07 -04:00
Justin SB 3e33ac7682
Change code from glog to klog
We don't call klog.InitFlags yet, because that will cause a flag
redefinition error until we get everyone to stop using glog.  That
will happen when we update to k8s 1.13.
2019-05-06 12:54:51 -04:00
xichengliudui 3cd5c71330 Using const() defines constants together (part:3) 2019-04-11 15:19:27 -04:00
Justin Santa Barbara 6d166a41dd Refactor protokube hosts file into its own package
So we can bring this in without our gossip layer

This supports an imminent implementation that uses DNS-SD
2017-12-15 01:22:51 -05:00