From bd344fd53ff5b74c7a9379bec00b33e5eb62879b Mon Sep 17 00:00:00 2001 From: Andrey Smirnov Date: Tue, 28 Apr 2026 19:18:16 +0400 Subject: [PATCH] fix: reset the ticker when the KubeSpan is disabled/enabled Fixes #13226 The issue was that that the ticker was stopped, but never set to `nil`, so that it was never re-created when the KubeSpan is enabled back again. Signed-off-by: Andrey Smirnov --- internal/app/machined/pkg/controllers/kubespan/manager.go | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/internal/app/machined/pkg/controllers/kubespan/manager.go b/internal/app/machined/pkg/controllers/kubespan/manager.go index f0518d707..1225920cb 100644 --- a/internal/app/machined/pkg/controllers/kubespan/manager.go +++ b/internal/app/machined/pkg/controllers/kubespan/manager.go @@ -119,6 +119,12 @@ func (ctrl *ManagerController) Run(ctx context.Context, r controller.Runtime, lo ticker *time.Ticker ) + defer func() { + if ticker != nil { + ticker.Stop() + } + }() + if ctrl.WireguardClientFactory == nil { ctrl.WireguardClientFactory = func() (WireguardClient, error) { return wgctrl.New() @@ -156,6 +162,7 @@ func (ctrl *ManagerController) Run(ctx context.Context, r controller.Runtime, lo if cfg == nil || !cfg.TypedSpec().Enabled { if ticker != nil { ticker.Stop() + ticker = nil tickerC = nil }