mirror of
https://github.com/juanfont/headscale.git
synced 2024-11-30 13:35:23 +00:00
Remove kv-namespace-worker
This commit removes the namespace kv worker and related code, now that we talk over gRPC to the server, and not directly to the DB, we should not need this anymore.
This commit is contained in:
parent
c794f32f58
commit
2bc8051ae5
16
app.go
16
app.go
@ -269,20 +269,6 @@ func (h *Headscale) expireEphemeralNodesWorker() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// WatchForKVUpdates checks the KV DB table for requests to perform tailnet upgrades
|
|
||||||
// This is a way to communitate the CLI with the headscale server.
|
|
||||||
func (h *Headscale) watchForKVUpdates(milliSeconds int64) {
|
|
||||||
ticker := time.NewTicker(time.Duration(milliSeconds) * time.Millisecond)
|
|
||||||
for range ticker.C {
|
|
||||||
h.watchForKVUpdatesWorker()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (h *Headscale) watchForKVUpdatesWorker() {
|
|
||||||
h.checkForNamespacesPendingUpdates()
|
|
||||||
// more functions will come here in the future
|
|
||||||
}
|
|
||||||
|
|
||||||
func (h *Headscale) grpcAuthenticationInterceptor(ctx context.Context,
|
func (h *Headscale) grpcAuthenticationInterceptor(ctx context.Context,
|
||||||
req interface{},
|
req interface{},
|
||||||
info *grpc.UnaryServerInfo,
|
info *grpc.UnaryServerInfo,
|
||||||
@ -521,8 +507,6 @@ func (h *Headscale) Serve() error {
|
|||||||
go h.scheduledDERPMapUpdateWorker(derpMapCancelChannel)
|
go h.scheduledDERPMapUpdateWorker(derpMapCancelChannel)
|
||||||
}
|
}
|
||||||
|
|
||||||
// I HATE THIS
|
|
||||||
go h.watchForKVUpdates(updateInterval)
|
|
||||||
go h.expireEphemeralNodes(updateInterval)
|
go h.expireEphemeralNodes(updateInterval)
|
||||||
|
|
||||||
httpServer := &http.Server{
|
httpServer := &http.Server{
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
package headscale
|
package headscale
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"encoding/json"
|
|
||||||
"strconv"
|
"strconv"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
@ -88,18 +87,6 @@ func (s *Suite) TestDeleteMachine(c *check.C) {
|
|||||||
err = app.DeleteMachine(&machine)
|
err = app.DeleteMachine(&machine)
|
||||||
c.Assert(err, check.IsNil)
|
c.Assert(err, check.IsNil)
|
||||||
|
|
||||||
namespacesPendingUpdates, err := app.getValue("namespaces_pending_updates")
|
|
||||||
c.Assert(err, check.IsNil)
|
|
||||||
|
|
||||||
names := []string{}
|
|
||||||
err = json.Unmarshal([]byte(namespacesPendingUpdates), &names)
|
|
||||||
c.Assert(err, check.IsNil)
|
|
||||||
c.Assert(names, check.DeepEquals, []string{namespace.Name})
|
|
||||||
|
|
||||||
app.checkForNamespacesPendingUpdates()
|
|
||||||
|
|
||||||
namespacesPendingUpdates, _ = app.getValue("namespaces_pending_updates")
|
|
||||||
c.Assert(namespacesPendingUpdates, check.Equals, "")
|
|
||||||
_, err = app.GetMachine(namespace.Name, "testmachine")
|
_, err = app.GetMachine(namespace.Name, "testmachine")
|
||||||
c.Assert(err, check.NotNil)
|
c.Assert(err, check.NotNil)
|
||||||
}
|
}
|
||||||
|
@ -235,44 +235,6 @@ func (h *Headscale) RequestMapUpdates(namespaceID uint) error {
|
|||||||
return h.setValue("namespaces_pending_updates", string(data))
|
return h.setValue("namespaces_pending_updates", string(data))
|
||||||
}
|
}
|
||||||
|
|
||||||
func (h *Headscale) checkForNamespacesPendingUpdates() {
|
|
||||||
namespacesPendingUpdates, err := h.getValue("namespaces_pending_updates")
|
|
||||||
if err != nil {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
if namespacesPendingUpdates == "" {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
namespaces := []string{}
|
|
||||||
err = json.Unmarshal([]byte(namespacesPendingUpdates), &namespaces)
|
|
||||||
if err != nil {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
for _, namespace := range namespaces {
|
|
||||||
log.Trace().
|
|
||||||
Str("func", "RequestMapUpdates").
|
|
||||||
Str("machine", namespace).
|
|
||||||
Msg("Sending updates to nodes in namespacespace")
|
|
||||||
h.setLastStateChangeToNow(namespace)
|
|
||||||
}
|
|
||||||
newPendingUpdateValue, err := h.getValue("namespaces_pending_updates")
|
|
||||||
if err != nil {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
if namespacesPendingUpdates == newPendingUpdateValue { // only clear when no changes, so we notified everybody
|
|
||||||
err = h.setValue("namespaces_pending_updates", "")
|
|
||||||
if err != nil {
|
|
||||||
log.Error().
|
|
||||||
Str("func", "checkForNamespacesPendingUpdates").
|
|
||||||
Err(err).
|
|
||||||
Msg("Could not save to KV")
|
|
||||||
|
|
||||||
return
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (n *Namespace) toUser() *tailcfg.User {
|
func (n *Namespace) toUser() *tailcfg.User {
|
||||||
user := tailcfg.User{
|
user := tailcfg.User{
|
||||||
ID: tailcfg.UserID(n.ID),
|
ID: tailcfg.UserID(n.ID),
|
||||||
|
Loading…
Reference in New Issue
Block a user