| Tim Windelschmidt | a153f52 | 2025-02-21 03:00:20 +0100 | [diff] [blame] | 1 | From 922898cb67ccedc6f0b67af9b398895d7fb55e56 Mon Sep 17 00:00:00 2001 |
| Lorenz Brun | 6211e4d | 2023-11-14 19:09:40 +0100 | [diff] [blame] | 2 | From: Tim Windelschmidt <tim@monogon.tech> |
| 3 | Date: Sat, 9 Sep 2023 14:22:59 +0200 |
| Tim Windelschmidt | a153f52 | 2025-02-21 03:00:20 +0100 | [diff] [blame] | 4 | Subject: [PATCH] reserve metropolis system ports |
| Lorenz Brun | 6211e4d | 2023-11-14 19:09:40 +0100 | [diff] [blame] | 5 | |
| 6 | --- |
| Tim Windelschmidt | a153f52 | 2025-02-21 03:00:20 +0100 | [diff] [blame] | 7 | .../core/service/portallocator/controller/repair.go | 12 ++++++++++++ |
| 8 | 1 file changed, 12 insertions(+) |
| Lorenz Brun | 6211e4d | 2023-11-14 19:09:40 +0100 | [diff] [blame] | 9 | |
| Tim Windelschmidt | e95007b | 2023-07-17 19:05:30 +0200 | [diff] [blame] | 10 | diff --git a/pkg/registry/core/service/portallocator/controller/repair.go b/pkg/registry/core/service/portallocator/controller/repair.go |
| Tim Windelschmidt | a153f52 | 2025-02-21 03:00:20 +0100 | [diff] [blame] | 11 | index 0ec22c55a54..f890b9c133e 100644 |
| Lorenz Brun | 6211e4d | 2023-11-14 19:09:40 +0100 | [diff] [blame] | 12 | --- a/pkg/registry/core/service/portallocator/controller/repair.go |
| 13 | +++ b/pkg/registry/core/service/portallocator/controller/repair.go |
| 14 | @@ -22,6 +22,8 @@ import ( |
| 15 | "sync" |
| Tim Windelschmidt | e95007b | 2023-07-17 19:05:30 +0200 | [diff] [blame] | 16 | "time" |
| Tim Windelschmidt | a153f52 | 2025-02-21 03:00:20 +0100 | [diff] [blame] | 17 | |
| Tim Windelschmidt | e95007b | 2023-07-17 19:05:30 +0200 | [diff] [blame] | 18 | + "source.monogon.dev/metropolis/node" |
| 19 | + |
| 20 | corev1 "k8s.io/api/core/v1" |
| 21 | "k8s.io/apimachinery/pkg/api/errors" |
| 22 | metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" |
| Tim Windelschmidt | a153f52 | 2025-02-21 03:00:20 +0100 | [diff] [blame] | 23 | @@ -148,6 +150,16 @@ func (c *Repair) doRunOnce() error { |
| Tim Windelschmidt | e95007b | 2023-07-17 19:05:30 +0200 | [diff] [blame] | 24 | if err != nil { |
| Lorenz Brun | 6211e4d | 2023-11-14 19:09:40 +0100 | [diff] [blame] | 25 | return fmt.Errorf("unable to create port allocator: %v", err) |
| Tim Windelschmidt | a153f52 | 2025-02-21 03:00:20 +0100 | [diff] [blame] | 26 | } |
| 27 | + |
| 28 | + // pretend that metropolis system ports are in use by an actual service |
| 29 | + for _, p := range node.SystemPorts { |
| 30 | + if err := rebuilt.Allocate(int(p)); err != nil { |
| 31 | + return fmt.Errorf("unable to allocate metropolis port: %v", err) |
| 32 | + } |
| 33 | + // remove it from the old set, so it doesn't appear leaked |
| 34 | + stored.Release(int(p)) |
| 35 | + } |
| 36 | + |
| 37 | // Check every Service's ports, and rebuild the state as we think it should be. |
| 38 | for i := range list.Items { |
| 39 | svc := &list.Items[i] |
| Lorenz Brun | 6211e4d | 2023-11-14 19:09:40 +0100 | [diff] [blame] | 40 | -- |
| Tim Windelschmidt | a153f52 | 2025-02-21 03:00:20 +0100 | [diff] [blame] | 41 | 2.47.1 |
| Lorenz Brun | 6211e4d | 2023-11-14 19:09:40 +0100 | [diff] [blame] | 42 | |