88 "sync"
99 "time"
1010
11+ hrobot "github.com/syself/hrobot-go"
1112 corev1 "k8s.io/api/core/v1"
1213 "k8s.io/client-go/tools/record"
1314 "k8s.io/klog/v2"
@@ -16,65 +17,19 @@ import (
1617 "github.com/hetznercloud/hcloud-cloud-controller-manager/internal/config"
1718 "github.com/hetznercloud/hcloud-cloud-controller-manager/internal/metrics"
1819 "github.com/hetznercloud/hcloud-cloud-controller-manager/internal/providerid"
19- "github.com/hetznercloud/hcloud-cloud-controller-manager/internal/robot"
2020 "github.com/hetznercloud/hcloud-go/v2/hcloud"
2121)
2222
2323// LabelServiceUID is a label added to the Hetzner Cloud backend to uniquely
2424// identify a load balancer managed by Hetzner Cloud Cloud Controller Manager.
2525const LabelServiceUID = "hcloud-ccm/service-uid"
2626
27- // HCloudLoadBalancerClient defines the hcloud-go functions required by the
28- // Load Balancer operations type.
29- type HCloudLoadBalancerClient interface {
30- GetByID (ctx context.Context , id int64 ) (* hcloud.LoadBalancer , * hcloud.Response , error )
31- GetByName (ctx context.Context , name string ) (* hcloud.LoadBalancer , * hcloud.Response , error )
32-
33- Create (ctx context.Context , opts hcloud.LoadBalancerCreateOpts ) (hcloud.LoadBalancerCreateResult , * hcloud.Response , error )
34- Update (
35- ctx context.Context , lb * hcloud.LoadBalancer , opts hcloud.LoadBalancerUpdateOpts ,
36- ) (* hcloud.LoadBalancer , * hcloud.Response , error )
37- Delete (ctx context.Context , lb * hcloud.LoadBalancer ) (* hcloud.Response , error )
38-
39- AddService (
40- ctx context.Context , lb * hcloud.LoadBalancer , opts hcloud.LoadBalancerAddServiceOpts ,
41- ) (* hcloud.Action , * hcloud.Response , error )
42- UpdateService (
43- ctx context.Context , lb * hcloud.LoadBalancer , listenPort int , opts hcloud.LoadBalancerUpdateServiceOpts ,
44- ) (* hcloud.Action , * hcloud.Response , error )
45- DeleteService (
46- ctx context.Context , lb * hcloud.LoadBalancer , listenPort int ,
47- ) (* hcloud.Action , * hcloud.Response , error )
48-
49- ChangeAlgorithm (ctx context.Context , lb * hcloud.LoadBalancer , opts hcloud.LoadBalancerChangeAlgorithmOpts ) (* hcloud.Action , * hcloud.Response , error )
50- ChangeType (ctx context.Context , lb * hcloud.LoadBalancer , opts hcloud.LoadBalancerChangeTypeOpts ) (* hcloud.Action , * hcloud.Response , error )
51- ChangeDNSPtr (ctx context.Context , lb * hcloud.LoadBalancer , ip string , ptr * string ) (* hcloud.Action , * hcloud.Response , error )
52-
53- AddServerTarget (ctx context.Context , lb * hcloud.LoadBalancer , opts hcloud.LoadBalancerAddServerTargetOpts ) (* hcloud.Action , * hcloud.Response , error )
54- RemoveServerTarget (ctx context.Context , lb * hcloud.LoadBalancer , server * hcloud.Server ) (* hcloud.Action , * hcloud.Response , error )
55-
56- AddIPTarget (ctx context.Context , lb * hcloud.LoadBalancer , opts hcloud.LoadBalancerAddIPTargetOpts ) (* hcloud.Action , * hcloud.Response , error )
57- RemoveIPTarget (ctx context.Context , lb * hcloud.LoadBalancer , server net.IP ) (* hcloud.Action , * hcloud.Response , error )
58-
59- AttachToNetwork (ctx context.Context , lb * hcloud.LoadBalancer , opts hcloud.LoadBalancerAttachToNetworkOpts ) (* hcloud.Action , * hcloud.Response , error )
60- DetachFromNetwork (ctx context.Context , lb * hcloud.LoadBalancer , opts hcloud.LoadBalancerDetachFromNetworkOpts ) (* hcloud.Action , * hcloud.Response , error )
61-
62- EnablePublicInterface (
63- ctx context.Context , loadBalancer * hcloud.LoadBalancer ,
64- ) (* hcloud.Action , * hcloud.Response , error )
65- DisablePublicInterface (
66- ctx context.Context , loadBalancer * hcloud.LoadBalancer ,
67- ) (* hcloud.Action , * hcloud.Response , error )
68-
69- AllWithOpts (ctx context.Context , opts hcloud.LoadBalancerListOpts ) ([]* hcloud.LoadBalancer , error )
70- }
71-
7227// LoadBalancerOps implements all operations regarding Hetzner Cloud Load Balancers.
7328type LoadBalancerOps struct {
74- LBClient HCloudLoadBalancerClient
75- ActionClient HCloudActionClient
76- NetworkClient HCloudNetworkClient
77- RobotClient robot. Client
29+ LBClient hcloud. ILoadBalancerClient
30+ ActionClient hcloud. IActionClient
31+ NetworkClient hcloud. INetworkClient
32+ RobotClient hrobot. RobotClient
7833 CertOps * CertificateOps
7934 RetryDelay time.Duration
8035 NetworkID int64
0 commit comments