k8s-operator: reset service status before append (#17120)

This commit fixes an issue within the service reconciler where we end
up in a constant reconciliation loop. When reconciling, the loadbalancer
status is appended to but not reset between each reconciliation, leading
to an ever growing slice of duplicate statuses.

Fixes https://github.com/tailscale/tailscale/issues/17105
Fixes https://github.com/tailscale/tailscale/issues/17107

Signed-off-by: David Bond <davidsbond93@gmail.com>
This commit is contained in:
David Bond
2025-09-15 12:37:28 +01:00
committed by GitHub
parent 7d2101f352
commit 782c16c513
2 changed files with 10 additions and 4 deletions

View File

@@ -173,6 +173,10 @@ func TestLoadBalancerClass(t *testing.T) {
},
},
}
// Perform an additional reconciliation loop here to ensure resources don't change through side effects. Mainly
// to prevent infinite reconciliation
expectReconciled(t, sr, "default", "test")
expectEqual(t, fc, want)
// Turn the service back into a ClusterIP service, which should make the