Skip to content

Commit 716e042

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 62f4543 commit 716e042

43 files changed

Lines changed: 19595 additions & 67 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

go.mod

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@ require (
1111
github.com/gocarina/gocsv v0.0.0-20190927101021-3ecffd272576
1212
github.com/google/go-cmp v0.7.0
1313
github.com/haproxytech/config-parser/v4 v4.0.0-rc1
14-
github.com/openshift/api v0.0.0-20251120145848-32e27fc232a9
15-
github.com/openshift/client-go v0.0.0-20251015124057-db0dee36e235
14+
github.com/openshift/api v0.0.0-20260212193555-c06ab675261f
15+
github.com/openshift/client-go v0.0.0-20260108185524-48f4ccfc4e13
1616
github.com/openshift/library-go v0.0.0-20251021141706-f489e811f030
1717
github.com/prometheus/client_golang v1.23.2
1818
github.com/prometheus/client_model v0.6.2
@@ -116,3 +116,5 @@ require (
116116
sigs.k8s.io/structured-merge-diff/v6 v6.3.0 // indirect
117117
sigs.k8s.io/yaml v1.6.0 // indirect
118118
)
119+
120+
replace github.com/openshift/library-go => github.com/bentito/library-go v0.0.0-20260316154701-200e1ee46963

go.sum

Lines changed: 6 additions & 6 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=
@@ -180,12 +182,10 @@ github.com/onsi/ginkgo/v2 v2.27.2 h1:LzwLj0b89qtIy6SSASkzlNvX6WktqurSHwkk2ipF/Ns
180182
github.com/onsi/ginkgo/v2 v2.27.2/go.mod h1:ArE1D/XhNXBXCBkKOLkbsb2c81dQHCRcF5zwn/ykDRo=
181183
github.com/onsi/gomega v1.38.2 h1:eZCjf2xjZAqe+LeWvKb5weQ+NcPwX84kqJ0cZNxok2A=
182184
github.com/onsi/gomega v1.38.2/go.mod h1:W2MJcYxRGV63b418Ai34Ud0hEdTVXq9NW9+Sx6uXf3k=
183-
github.com/openshift/api v0.0.0-20251120145848-32e27fc232a9 h1:oof7rtwtidp0ktq759ahPvuexk7nppGWTJo0ubXuupo=
184-
github.com/openshift/api v0.0.0-20251120145848-32e27fc232a9/go.mod h1:d5uzF0YN2nQQFA0jIEWzzOZ+edmo6wzlGLvx5Fhz4uY=
185-
github.com/openshift/client-go v0.0.0-20251015124057-db0dee36e235 h1:9JBeIXmnHlpXTQPi7LPmu1jdxznBhAE7bb1K+3D8gxY=
186-
github.com/openshift/client-go v0.0.0-20251015124057-db0dee36e235/go.mod h1:L49W6pfrZkfOE5iC1PqEkuLkXG4W0BX4w8b+L2Bv7fM=
187-
github.com/openshift/library-go v0.0.0-20251021141706-f489e811f030 h1:dbv8ZYDWIl22A5WBjQJTKeENM08f8HwMBuv8glDXO/0=
188-
github.com/openshift/library-go v0.0.0-20251021141706-f489e811f030/go.mod h1:OlFFws1AO51uzfc48MsStGE4SFMWlMZD0+f5a/zCtKI=
185+
github.com/openshift/api v0.0.0-20260212193555-c06ab675261f h1:l1IgsK48Ym/nED30yfaCTF4MtswO1eOoyfXgh2rEmdw=
186+
github.com/openshift/api v0.0.0-20260212193555-c06ab675261f/go.mod h1:d5uzF0YN2nQQFA0jIEWzzOZ+edmo6wzlGLvx5Fhz4uY=
187+
github.com/openshift/client-go v0.0.0-20260108185524-48f4ccfc4e13 h1:6rd4zSo2UaWQcAPZfHK9yzKVqH0BnMv1hqMzqXZyTds=
188+
github.com/openshift/client-go v0.0.0-20260108185524-48f4ccfc4e13/go.mod h1:YvOmPmV7wcJxpfhTDuFqqs2Xpb3M3ovsM6Qs/i2ptq4=
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
@@ -38,7 +38,7 @@ type fakeHAProxy struct {
3838
}
3939

4040
func startFakeHAProxyServer(prefix string) (*fakeHAProxy, error) {
41-
f, err := ioutil.TempFile(os.TempDir(), prefix)
41+
f, err := ioutil.TempFile("/tmp", prefix)
4242
if err != nil {
4343
return nil, err
4444
}
@@ -96,10 +96,10 @@ func (p *fakeHAProxy) Commands() []string {
9696

9797
func (p *fakeHAProxy) Start() {
9898
started := make(chan bool)
99-
go func() error {
99+
go func() {
100100
listener, err := net.Listen("unix", p.socketFile)
101101
if err != nil {
102-
return err
102+
panic(fmt.Sprintf("fakeHAProxy Start failed to listen on %s: %v", p.socketFile, err))
103103
}
104104

105105
started <- true
@@ -108,11 +108,11 @@ func (p *fakeHAProxy) Start() {
108108
shutdown := p.shutdown
109109
p.lock.Unlock()
110110
if shutdown {
111-
return nil
111+
return
112112
}
113113
conn, err := listener.Accept()
114114
if err != nil {
115-
return err
115+
return
116116
}
117117
go p.process(conn)
118118
}

vendor/github.com/openshift/api/config/v1/Makefile

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

vendor/github.com/openshift/api/config/v1/doc.go

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

vendor/github.com/openshift/api/config/v1/register.go

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

vendor/github.com/openshift/api/config/v1/stringsource.go

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

0 commit comments

Comments
 (0)