Skip to content

Commit 4e1eae4

Browse files
committed
Fix RouteSecretManager panic and update library-go dependency
- Handle DeletedFinalStateUnknown tombstones in secret manager to prevent panics during namespace deletion - Update library-go dependency to include async secret registration fix (library-go PR #2132) - Use /tmp for fake haproxy unix sockets to avoid macOS path length limits in tests
1 parent e17092f commit 4e1eae4

7 files changed

Lines changed: 78 additions & 33 deletions

File tree

go.mod

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,3 +117,5 @@ require (
117117
sigs.k8s.io/structured-merge-diff/v6 v6.3.0 // indirect
118118
sigs.k8s.io/yaml v1.6.0 // indirect
119119
)
120+
121+
replace github.com/openshift/library-go => github.com/bentito/library-go v0.0.0-20260316154701-200e1ee46963

go.sum

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@ github.com/antlr4-go/antlr/v4 v4.13.0 h1:lxCg3LAv+EUK6t1i0y1V6/SLeUi0eKEKdhQAlS8
1313
github.com/antlr4-go/antlr/v4 v4.13.0/go.mod h1:pfChB/xh/Unjila75QW7+VU4TSnWnnk9UTnmpPaOR2g=
1414
github.com/bcicen/go-haproxy v0.0.0-20180203142132-ff5824fe38be h1:7b8/p7wJ3N/OjXbZmwJdyR9eOoCla5SbUIe18WHio5s=
1515
github.com/bcicen/go-haproxy v0.0.0-20180203142132-ff5824fe38be/go.mod h1:MxVpaKTkNjZu5awzzr6mk6CIKaZYUFGxbmNwMvyVfeM=
16+
github.com/bentito/library-go v0.0.0-20260316154701-200e1ee46963 h1:jhARqaZphAvzRd1htPKPSLHAMEg01p9/CgmrNvqLLxM=
17+
github.com/bentito/library-go v0.0.0-20260316154701-200e1ee46963/go.mod h1:K3FoNLgNBFYbFuG+Kr8usAnQxj1w84XogyUp2M8rK8k=
1618
github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=
1719
github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw=
1820
github.com/blang/semver/v4 v4.0.0 h1:1PFHFE6yCCTv8C1TeyNNarDzntLi7wMI5i/pzqYIsAM=
@@ -184,8 +186,6 @@ github.com/openshift/api v0.0.0-20260212193555-c06ab675261f h1:l1IgsK48Ym/nED30y
184186
github.com/openshift/api v0.0.0-20260212193555-c06ab675261f/go.mod h1:d5uzF0YN2nQQFA0jIEWzzOZ+edmo6wzlGLvx5Fhz4uY=
185187
github.com/openshift/client-go v0.0.0-20260108185524-48f4ccfc4e13 h1:6rd4zSo2UaWQcAPZfHK9yzKVqH0BnMv1hqMzqXZyTds=
186188
github.com/openshift/client-go v0.0.0-20260108185524-48f4ccfc4e13/go.mod h1:YvOmPmV7wcJxpfhTDuFqqs2Xpb3M3ovsM6Qs/i2ptq4=
187-
github.com/openshift/library-go v0.0.0-20260223145824-7b234b47a906 h1:PkG3CmlU8+HtlW1rspnhwhbKki8rrwYN+L26aH11t2E=
188-
github.com/openshift/library-go v0.0.0-20260223145824-7b234b47a906/go.mod h1:K3FoNLgNBFYbFuG+Kr8usAnQxj1w84XogyUp2M8rK8k=
189189
github.com/orisano/pixelmatch v0.0.0-20220722002657-fb0b55479cde/go.mod h1:nZgzbfBr3hhjoZnS66nKrHmduYNpc34ny7RK4z5/HM0=
190190
github.com/pkg/profile v1.7.0 h1:hnbDkaNWPCLMO9wGLdBFTIZvzDrDfBM2072E1S9gJkA=
191191
github.com/pkg/profile v1.7.0/go.mod h1:8Uer0jas47ZQMJ7VD+OHknK4YDY07LPUC6dEvqDjvNo=

pkg/router/controller/route_secret_manager.go

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -330,7 +330,19 @@ func (p *RouteSecretManager) generateSecretHandler(namespace, routeName string)
330330
},
331331

332332
DeleteFunc: func(obj interface{}) {
333-
secret := obj.(*kapi.Secret)
333+
secret, ok := obj.(*kapi.Secret)
334+
if !ok {
335+
tombstone, ok := obj.(cache.DeletedFinalStateUnknown)
336+
if !ok {
337+
log.Error(nil, "Couldn't get object from tombstone", "obj", obj)
338+
return
339+
}
340+
secret, ok = tombstone.Obj.(*kapi.Secret)
341+
if !ok {
342+
log.Error(nil, "Tombstone contained object that is not a secret", "obj", tombstone.Obj)
343+
return
344+
}
345+
}
334346
key := generateKey(namespace, routeName)
335347
msg := fmt.Sprintf("secret %q deleted for route %q", secret.Name, key)
336348
log.V(4).Info(msg)

pkg/router/template/configmanager/haproxy/testing/haproxy.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ type fakeHAProxy struct {
4646
}
4747

4848
func startFakeHAProxyServer(prefix string) (*fakeHAProxy, error) {
49-
f, err := os.CreateTemp(os.TempDir(), prefix)
49+
f, err := os.CreateTemp("/tmp", prefix)
5050
if err != nil {
5151
return nil, err
5252
}
@@ -107,10 +107,10 @@ func (p *fakeHAProxy) Commands() []string {
107107

108108
func (p *fakeHAProxy) Start() {
109109
started := make(chan bool)
110-
go func() error {
110+
go func() {
111111
listener, err := net.Listen("unix", p.socketFile)
112112
if err != nil {
113-
return err
113+
panic(fmt.Sprintf("fakeHAProxy Start failed to listen on %s: %v", p.socketFile, err))
114114
}
115115

116116
started <- true
@@ -119,11 +119,11 @@ func (p *fakeHAProxy) Start() {
119119
shutdown := p.shutdown
120120
p.lock.Unlock()
121121
if shutdown {
122-
return nil
122+
return
123123
}
124124
conn, err := listener.Accept()
125125
if err != nil {
126-
return err
126+
return
127127
}
128128
go p.process(conn)
129129
}

vendor/github.com/openshift/library-go/pkg/route/secretmanager/manager.go

Lines changed: 35 additions & 11 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

vendor/github.com/openshift/library-go/pkg/secret/secret_monitor.go

Lines changed: 19 additions & 13 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

vendor/modules.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -221,7 +221,7 @@ github.com/openshift/client-go/route/clientset/versioned/scheme
221221
github.com/openshift/client-go/route/clientset/versioned/typed/route/v1
222222
github.com/openshift/client-go/route/clientset/versioned/typed/route/v1/fake
223223
github.com/openshift/client-go/route/listers/route/v1
224-
# github.com/openshift/library-go v0.0.0-20260223145824-7b234b47a906
224+
# github.com/openshift/library-go v0.0.0-20260223145824-7b234b47a906 => github.com/bentito/library-go v0.0.0-20260316154701-200e1ee46963
225225
## explicit; go 1.24.0
226226
github.com/openshift/library-go/pkg/crypto
227227
github.com/openshift/library-go/pkg/proc
@@ -1324,3 +1324,4 @@ sigs.k8s.io/structured-merge-diff/v6/value
13241324
# sigs.k8s.io/yaml v1.6.0
13251325
## explicit; go 1.22
13261326
sigs.k8s.io/yaml
1327+
# github.com/openshift/library-go => github.com/bentito/library-go v0.0.0-20260316154701-200e1ee46963

0 commit comments

Comments
 (0)