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