@@ -5,10 +5,11 @@ import (
55 "context"
66 "errors"
77 "fmt"
8- "github.com/rs/zerolog/log"
98 "io/ioutil"
109 "net/http"
1110
11+
12+ "github.com/rs/zerolog/log"
1213 "github.com/resmoio/kubernetes-event-exporter/pkg/kube"
1314)
1415
@@ -20,15 +21,23 @@ type WebhookConfig struct {
2021}
2122
2223func NewWebhook (cfg * WebhookConfig ) (Sink , error ) {
23- return & Webhook {cfg : cfg }, nil
24+ tlsClientConfig , err := setupTLS (& cfg .TLS )
25+ if err != nil {
26+ return nil , fmt .Errorf ("failed to setup TLS: %w" , err )
27+ }
28+ return & Webhook {cfg : cfg , transport : & http.Transport {
29+ Proxy : http .ProxyFromEnvironment ,
30+ TLSClientConfig : tlsClientConfig ,
31+ }}, nil
2432}
2533
2634type Webhook struct {
27- cfg * WebhookConfig
35+ cfg * WebhookConfig
36+ transport * http.Transport
2837}
2938
3039func (w * Webhook ) Close () {
31- // No-op
40+ w . transport . CloseIdleConnections ()
3241}
3342
3443func (w * Webhook ) Send (ctx context.Context , ev * kube.EnhancedEvent ) error {
@@ -54,15 +63,8 @@ func (w *Webhook) Send(ctx context.Context, ev *kube.EnhancedEvent) error {
5463 }
5564 }
5665
57- tlsClientConfig , err := setupTLS (& w .cfg .TLS )
58- if err != nil {
59- return fmt .Errorf ("failed to setup TLS: %w" , err )
60- }
6166 client := http .DefaultClient
62- client .Transport = & http.Transport {
63- Proxy : http .ProxyFromEnvironment ,
64- TLSClientConfig : tlsClientConfig ,
65- }
67+ client .Transport = w .transport
6668 resp , err := client .Do (req )
6769 if err != nil {
6870 return err
0 commit comments