Skip to content

Commit 73519a9

Browse files
✨ Add ListenerConfig for metrics server options (#2519)
* Add ListenerConfig for metrics * Address feedback on backwards compatibility and full cross feature functionality. * Address feedback * Add error handling * Update pkg/metrics/server/server.go Co-authored-by: Stefan Büringer <[email protected]> --------- Co-authored-by: Stefan Büringer <[email protected]>
1 parent 8475c55 commit 73519a9

File tree

1 file changed

+10
-2
lines changed

1 file changed

+10
-2
lines changed

pkg/metrics/server/server.go

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,9 @@ type Options struct {
101101
// TLSOpts is used to allow configuring the TLS config used for the server.
102102
// This also allows providing a certificate via GetCertificate.
103103
TLSOpts []func(*tls.Config)
104+
105+
// ListenConfig contains options for listening to an address on the metric server.
106+
ListenConfig net.ListenConfig
104107
}
105108

106109
// Filter is a func that is added around metrics and extra handlers on the metrics server.
@@ -249,7 +252,7 @@ func (s *defaultServer) Start(ctx context.Context) error {
249252

250253
func (s *defaultServer) createListener(ctx context.Context, log logr.Logger) (net.Listener, error) {
251254
if !s.options.SecureServing {
252-
return net.Listen("tcp", s.options.BindAddress)
255+
return s.options.ListenConfig.Listen(ctx, "tcp", s.options.BindAddress)
253256
}
254257

255258
cfg := &tls.Config{ //nolint:gosec
@@ -302,7 +305,12 @@ func (s *defaultServer) createListener(ctx context.Context, log logr.Logger) (ne
302305
cfg.Certificates = []tls.Certificate{keyPair}
303306
}
304307

305-
return tls.Listen("tcp", s.options.BindAddress, cfg)
308+
l, err := s.options.ListenConfig.Listen(ctx, "tcp", s.options.BindAddress)
309+
if err != nil {
310+
return nil, err
311+
}
312+
313+
return tls.NewListener(l, cfg), nil
306314
}
307315

308316
func (s *defaultServer) GetBindAddr() string {

0 commit comments

Comments
 (0)