pass registerer via controller option
This commit is contained in:
parent
ccea18b5c3
commit
c50a688b58
@ -221,6 +221,7 @@ type Controller struct {
|
||||
errors chan error
|
||||
logger log.Logger
|
||||
resyncPeriod time.Duration
|
||||
registerer prometheus.Registerer
|
||||
|
||||
sync.Mutex
|
||||
rules []Rule
|
||||
@ -252,10 +253,16 @@ func WithClients(v4, v6 Client) ControllerOption {
|
||||
}
|
||||
}
|
||||
|
||||
func WithRegisterer(registerer prometheus.Registerer) ControllerOption {
|
||||
return func(c *Controller) {
|
||||
c.registerer = registerer
|
||||
}
|
||||
}
|
||||
|
||||
// New generates a new iptables rules controller.
|
||||
// If no options are given, IPv4 and IPv6 clients
|
||||
// will be instantiated using the regular iptables backend.
|
||||
func New(registerer prometheus.Registerer, opts ...ControllerOption) (*Controller, error) {
|
||||
func New(opts ...ControllerOption) (*Controller, error) {
|
||||
c := &Controller{
|
||||
errors: make(chan error),
|
||||
logger: log.NewNopLogger(),
|
||||
@ -268,7 +275,11 @@ func New(registerer prometheus.Registerer, opts ...ControllerOption) (*Controlle
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("failed to create iptables IPv4 client: %v", err)
|
||||
}
|
||||
c.v4 = wrapWithMetrics(v4, "IPv4", registerer)
|
||||
if c.registerer != nil {
|
||||
c.v4 = wrapWithMetrics(v4, "IPv4", c.registerer)
|
||||
} else {
|
||||
c.v4 = v4
|
||||
}
|
||||
}
|
||||
if c.v6 == nil {
|
||||
disabled, err := ipv6Disabled()
|
||||
@ -283,7 +294,11 @@ func New(registerer prometheus.Registerer, opts ...ControllerOption) (*Controlle
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("failed to create iptables IPv6 client: %v", err)
|
||||
}
|
||||
c.v6 = wrapWithMetrics(v6, "IPv6", registerer)
|
||||
if c.registerer != nil {
|
||||
c.v6 = wrapWithMetrics(v6, "IPv6", c.registerer)
|
||||
} else {
|
||||
c.v6 = v6
|
||||
}
|
||||
}
|
||||
}
|
||||
return c, nil
|
||||
|
@ -15,7 +15,6 @@
|
||||
package iptables
|
||||
|
||||
import (
|
||||
"github.com/prometheus/client_golang/prometheus"
|
||||
"testing"
|
||||
)
|
||||
|
||||
@ -85,7 +84,7 @@ func TestSet(t *testing.T) {
|
||||
},
|
||||
} {
|
||||
client := &fakeClient{}
|
||||
controller, err := New(prometheus.NewRegistry(), WithClients(client, client))
|
||||
controller, err := New(WithClients(client, client))
|
||||
if err != nil {
|
||||
t.Fatalf("test case %q: got unexpected error instantiating controller: %v", tc.name, err)
|
||||
}
|
||||
@ -142,7 +141,7 @@ func TestCleanUp(t *testing.T) {
|
||||
},
|
||||
} {
|
||||
client := &fakeClient{}
|
||||
controller, err := New(prometheus.NewRegistry(), WithClients(client, client))
|
||||
controller, err := New(WithClients(client, client))
|
||||
if err != nil {
|
||||
t.Fatalf("test case %q: got unexpected error instantiating controller: %v", tc.name, err)
|
||||
}
|
||||
|
@ -156,7 +156,7 @@ func New(backend Backend, enc encapsulation.Encapsulator, granularity Granularit
|
||||
externalIP = publicIP
|
||||
}
|
||||
level.Debug(logger).Log("msg", fmt.Sprintf("using %s as the public IP address", publicIP.String()))
|
||||
ipTables, err := iptables.New(registerer, iptables.WithLogger(log.With(logger, "component", "iptables")), iptables.WithResyncPeriod(resyncPeriod))
|
||||
ipTables, err := iptables.New(iptables.WithRegisterer(registerer), iptables.WithLogger(log.With(logger, "component", "iptables")), iptables.WithResyncPeriod(resyncPeriod))
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("failed to IP tables controller: %v", err)
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user