diff --git a/hcloud/cloud.go b/hcloud/cloud.go index 09f0dc19..2c3a7c22 100644 --- a/hcloud/cloud.go +++ b/hcloud/cloud.go @@ -195,7 +195,7 @@ func (c *cloud) LoadBalancer() (cloudprovider.LoadBalancer, bool) { Recorder: c.recorder, } - return newLoadBalancers(lbOps, c.cfg.LoadBalancer.PrivateIngressEnabled, c.cfg.LoadBalancer.IPv6Enabled), true + return newLoadBalancers(lbOps, &c.cfg.LoadBalancer), true } func (c *cloud) Clusters() (cloudprovider.Clusters, bool) { diff --git a/hcloud/load_balancers.go b/hcloud/load_balancers.go index dd405b60..64d8767f 100644 --- a/hcloud/load_balancers.go +++ b/hcloud/load_balancers.go @@ -11,6 +11,7 @@ import ( "k8s.io/klog/v2" "github.com/hetznercloud/hcloud-cloud-controller-manager/internal/annotation" + "github.com/hetznercloud/hcloud-cloud-controller-manager/internal/config" "github.com/hetznercloud/hcloud-cloud-controller-manager/internal/hcops" "github.com/hetznercloud/hcloud-cloud-controller-manager/internal/metrics" "github.com/hetznercloud/hcloud-go/v2/hcloud" @@ -30,17 +31,14 @@ type LoadBalancerOps interface { } type loadBalancers struct { - lbOps LoadBalancerOps - ipv6EnabledDefault bool - proxyProtocolEnabledDefault bool - privateIngressEnabledDefault bool + lbOps LoadBalancerOps + cfg *config.LoadBalancerConfiguration } -func newLoadBalancers(lbOps LoadBalancerOps, privateIngressEnabledDefault bool, ipv6EnabledDefault bool) *loadBalancers { +func newLoadBalancers(lbOps LoadBalancerOps, lbCfg *config.LoadBalancerConfiguration) *loadBalancers { return &loadBalancers{ - lbOps: lbOps, - ipv6EnabledDefault: ipv6EnabledDefault, - privateIngressEnabledDefault: privateIngressEnabledDefault, + lbOps: lbOps, + cfg: lbCfg, } } @@ -269,7 +267,7 @@ func (l *loadBalancers) getPrivateIngressEnabled(svc *corev1.Service) (bool, err return !disable, nil } if errors.Is(err, annotation.ErrNotSet) { - return l.privateIngressEnabledDefault, nil + return l.cfg.PrivateIngressEnabled, nil } return true, err } @@ -280,7 +278,10 @@ func (l *loadBalancers) getProxyProtocolEnabled(svc *corev1.Service) (bool, erro return enable, nil } if errors.Is(err, annotation.ErrNotSet) { - return l.proxyProtocolEnabledDefault, nil + if l.cfg.ProxyProtocolEnabled == nil { + return false, nil + } + return *l.cfg.ProxyProtocolEnabled, nil } return false, err } @@ -291,7 +292,7 @@ func (l *loadBalancers) getIPv6Enabled(svc *corev1.Service) (bool, error) { return !disable, nil } if errors.Is(err, annotation.ErrNotSet) { - return l.ipv6EnabledDefault, nil + return l.cfg.IPv6Enabled, nil } return true, err } diff --git a/hcloud/testing.go b/hcloud/testing.go index c57949e2..3337b0e4 100644 --- a/hcloud/testing.go +++ b/hcloud/testing.go @@ -9,6 +9,7 @@ import ( "k8s.io/apimachinery/pkg/types" "github.com/hetznercloud/hcloud-cloud-controller-manager/internal/annotation" + "github.com/hetznercloud/hcloud-cloud-controller-manager/internal/config" "github.com/hetznercloud/hcloud-cloud-controller-manager/internal/hcops" "github.com/hetznercloud/hcloud-cloud-controller-manager/internal/mocks" "github.com/hetznercloud/hcloud-go/v2/hcloud" @@ -78,7 +79,12 @@ func (tt *LoadBalancerTestCase) run(t *testing.T) { tt.Mock(t, tt) } - tt.LoadBalancers = newLoadBalancers(tt.LBOps, *tt.UsePrivateIngressDefault, *tt.UseIPv6Default) + lbConfig := &config.LoadBalancerConfiguration{ + PrivateIngressEnabled: *tt.UsePrivateIngressDefault, + IPv6Enabled: *tt.UseIPv6Default, + } + + tt.LoadBalancers = newLoadBalancers(tt.LBOps, lbConfig) tt.Perform(t, tt) tt.LBOps.AssertExpectations(t)