Skip to content

Commit 7495902

Browse files
authored
🌱 Fix flaky tests 2 (#1466)
1 parent 72736bf commit 7495902

10 files changed

+34
-76
lines changed

controllers/controllers_suite_test.go

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ import (
3434
"sigs.k8s.io/controller-runtime/pkg/controller"
3535

3636
infrav1 "github.com/syself/cluster-api-provider-hetzner/api/v1beta1"
37+
hcloudclient "github.com/syself/cluster-api-provider-hetzner/pkg/services/hcloud/client"
3738
"github.com/syself/cluster-api-provider-hetzner/test/helpers"
3839
)
3940

@@ -44,10 +45,10 @@ const (
4445
)
4546

4647
var (
47-
testEnv *helpers.TestEnvironment
48-
ctx = ctrl.SetupSignalHandler()
49-
wg sync.WaitGroup
50-
48+
testEnv *helpers.TestEnvironment
49+
hcloudClient hcloudclient.Client
50+
ctx = ctrl.SetupSignalHandler()
51+
wg sync.WaitGroup
5152
defaultPlacementGroupName = "caph-placement-group"
5253
defaultFailureDomain = "fsn1"
5354
)
@@ -62,7 +63,7 @@ var _ = BeforeSuite(func() {
6263
utilruntime.Must(clusterv1.AddToScheme(scheme.Scheme))
6364

6465
testEnv = helpers.NewTestEnvironment()
65-
66+
hcloudClient = testEnv.HCloudClientFactory.NewClient("")
6667
wg.Add(1)
6768

6869
Expect((&HetznerClusterReconciler{

controllers/hcloudmachine_controller_test.go

Lines changed: 7 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,6 @@ import (
3434
"sigs.k8s.io/controller-runtime/pkg/predicate"
3535

3636
infrav1 "github.com/syself/cluster-api-provider-hetzner/api/v1beta1"
37-
hcloudclient "github.com/syself/cluster-api-provider-hetzner/pkg/services/hcloud/client"
3837
"github.com/syself/cluster-api-provider-hetzner/pkg/utils"
3938
)
4039

@@ -241,6 +240,8 @@ var _ = Describe("HCloudMachineReconciler", func() {
241240
)
242241

243242
BeforeEach(func() {
243+
hcloudClient.Reset()
244+
244245
var err error
245246
testNs, err = testEnv.CreateNamespace(ctx, "hcloudmachine-reconciler")
246247
Expect(err).NotTo(HaveOccurred())
@@ -319,10 +320,7 @@ var _ = Describe("HCloudMachineReconciler", func() {
319320

320321
Context("Basic test", func() {
321322
Context("correct server", func() {
322-
var hcloudClient hcloudclient.Client
323-
324323
BeforeEach(func() {
325-
hcloudClient = testEnv.ResetAndGetGlobalHCloudClient()
326324
// remove bootstrap infos
327325
capiMachine.Spec.Bootstrap = clusterv1.Bootstrap{}
328326
Expect(testEnv.Create(ctx, capiMachine)).To(Succeed())
@@ -516,10 +514,7 @@ var _ = Describe("HCloudMachineReconciler", func() {
516514
})
517515

518516
Context("without network", func() {
519-
var hcloudClient hcloudclient.Client
520-
521517
BeforeEach(func() {
522-
hcloudClient = testEnv.ResetAndGetGlobalHCloudClient()
523518
hetznerCluster.Spec.HCloudNetwork.Enabled = false
524519
Expect(testEnv.Create(ctx, hetznerCluster)).To(Succeed())
525520
Expect(testEnv.Create(ctx, hcloudMachine)).To(Succeed())
@@ -545,10 +540,7 @@ var _ = Describe("HCloudMachineReconciler", func() {
545540
})
546541

547542
Context("without placement groups", func() {
548-
var hcloudClient hcloudclient.Client
549-
550543
BeforeEach(func() {
551-
hcloudClient = testEnv.ResetAndGetGlobalHCloudClient()
552544
hetznerCluster.Spec.HCloudPlacementGroups = nil
553545
Expect(testEnv.Create(ctx, hetznerCluster)).To(Succeed())
554546

@@ -595,9 +587,7 @@ var _ = Describe("HCloudMachineReconciler", func() {
595587
})
596588

597589
Context("with public network specs", func() {
598-
var hcloudClient hcloudclient.Client
599590
BeforeEach(func() {
600-
hcloudClient = testEnv.ResetAndGetGlobalHCloudClient()
601591
hcloudMachine.Spec.PublicNetwork = &infrav1.PublicNetworkSpec{
602592
EnableIPv4: false,
603593
EnableIPv6: false,
@@ -645,6 +635,7 @@ var _ = Describe("Hetzner secret", func() {
645635
)
646636

647637
BeforeEach(func() {
638+
hcloudClient.Reset()
648639
var err error
649640
testNs, err = testEnv.CreateNamespace(ctx, "hcloudmachine-validation")
650641
Expect(err).NotTo(HaveOccurred())
@@ -794,6 +785,8 @@ var _ = Describe("HCloudMachine validation", func() {
794785
)
795786

796787
BeforeEach(func() {
788+
hcloudClient.Reset()
789+
797790
var err error
798791
testNs, err = testEnv.CreateNamespace(ctx, "hcloudmachine-validation")
799792
Expect(err).NotTo(HaveOccurred())
@@ -851,6 +844,8 @@ var _ = Describe("IgnoreInsignificantHetznerClusterUpdates Predicate", func() {
851844
)
852845

853846
BeforeEach(func() {
847+
hcloudClient.Reset()
848+
854849
predicate = IgnoreInsignificantHetznerClusterUpdates(klog.Background())
855850

856851
oldCluster = &infrav1.HetznerCluster{

controllers/hcloudmachinetemplate_controller_test.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ var _ = Describe("HCloudMachineTemplateReconciler", func() {
3838
)
3939

4040
BeforeEach(func() {
41+
hcloudClient.Reset()
4142
var err error
4243
testNs, err = testEnv.CreateNamespace(ctx, "hcloudmachinetemplate-reconciler")
4344
Expect(err).NotTo(HaveOccurred())

controllers/hcloudremediation_controller_test.go

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@ import (
3030
"sigs.k8s.io/controller-runtime/pkg/client"
3131

3232
infrav1 "github.com/syself/cluster-api-provider-hetzner/api/v1beta1"
33-
hcloudclient "github.com/syself/cluster-api-provider-hetzner/pkg/services/hcloud/client"
3433
hcloudutil "github.com/syself/cluster-api-provider-hetzner/pkg/services/hcloud/util"
3534
"github.com/syself/cluster-api-provider-hetzner/pkg/utils"
3635
)
@@ -55,6 +54,7 @@ var _ = Describe("HCloudRemediationReconciler", func() {
5554
)
5655

5756
BeforeEach(func() {
57+
hcloudClient.Reset()
5858
var err error
5959
testNs, err = testEnv.CreateNamespace(ctx, "hcloudmachinetemplate-reconciler")
6060
Expect(err).NotTo(HaveOccurred())
@@ -187,11 +187,6 @@ var _ = Describe("HCloudRemediationReconciler", func() {
187187
})
188188

189189
Context("Basic test", func() {
190-
var hcloudClient hcloudclient.Client
191-
BeforeEach(func() {
192-
hcloudClient = testEnv.ResetAndGetGlobalHCloudClient()
193-
})
194-
195190
It("creates the hcloudRemediation successfully", func() {
196191
Expect(testEnv.Create(ctx, hcloudRemediation)).To(Succeed())
197192

controllers/hetznercluster_controller_test.go

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,6 @@ import (
3535
"sigs.k8s.io/controller-runtime/pkg/event"
3636

3737
infrav1 "github.com/syself/cluster-api-provider-hetzner/api/v1beta1"
38-
hcloudclient "github.com/syself/cluster-api-provider-hetzner/pkg/services/hcloud/client"
3938
"github.com/syself/cluster-api-provider-hetzner/pkg/utils"
4039
"github.com/syself/cluster-api-provider-hetzner/test/helpers"
4140
)
@@ -271,6 +270,7 @@ var _ = Describe("Hetzner ClusterReconciler", func() {
271270
hetznerClusterName string
272271
)
273272
BeforeEach(func() {
273+
hcloudClient.Reset()
274274
testNs, err = testEnv.CreateNamespace(ctx, "cluster-tests")
275275
Expect(err).NotTo(HaveOccurred())
276276
namespace = testNs.Name
@@ -334,12 +334,6 @@ var _ = Describe("Hetzner ClusterReconciler", func() {
334334
})
335335

336336
Context("load balancer", func() {
337-
var hcloudClient hcloudclient.Client
338-
339-
BeforeEach(func() {
340-
hcloudClient = testEnv.ResetAndGetGlobalHCloudClient()
341-
})
342-
343337
It("should create load balancer and update it accordingly", func() {
344338
Expect(testEnv.Create(ctx, instance)).To(Succeed())
345339

@@ -742,10 +736,7 @@ var _ = Describe("Hetzner ClusterReconciler", func() {
742736

743737
Context("HetznerMachines belonging to the cluster", func() {
744738
var bootstrapSecret *corev1.Secret
745-
var hcloudClient hcloudclient.Client
746-
747739
BeforeEach(func() {
748-
hcloudClient = testEnv.ResetAndGetGlobalHCloudClient()
749740
bootstrapSecret = getDefaultBootstrapSecret(namespace)
750741
Expect(testEnv.Create(ctx, bootstrapSecret)).To(Succeed())
751742
})
@@ -782,10 +773,8 @@ var _ = Describe("Hetzner ClusterReconciler", func() {
782773

783774
Context("Placement groups", func() {
784775
var bootstrapSecret *corev1.Secret
785-
var hcloudClient hcloudclient.Client
786776

787777
BeforeEach(func() {
788-
hcloudClient = testEnv.ResetAndGetGlobalHCloudClient()
789778
// Create the bootstrap secret
790779
bootstrapSecret = getDefaultBootstrapSecret(namespace)
791780
Expect(testEnv.Create(ctx, bootstrapSecret)).To(Succeed())
@@ -957,6 +946,7 @@ var _ = Describe("Hetzner secret", func() {
957946
)
958947

959948
BeforeEach(func() {
949+
hcloudClient.Reset()
960950
var err error
961951
testNs, err = testEnv.CreateNamespace(ctx, "hetzner-secret")
962952
Expect(err).NotTo(HaveOccurred())
@@ -1054,6 +1044,7 @@ var _ = Describe("HetznerCluster validation", func() {
10541044
testNs *corev1.Namespace
10551045
)
10561046
BeforeEach(func() {
1047+
hcloudClient.Reset()
10571048
var err error
10581049
testNs, err = testEnv.CreateNamespace(ctx, "hcloudmachine-validation")
10591050
Expect(err).NotTo(HaveOccurred())
@@ -1139,6 +1130,7 @@ var _ = Describe("HetznerCluster validation", func() {
11391130
var _ = Describe("reconcileRateLimit", func() {
11401131
var hetznerCluster *infrav1.HetznerCluster
11411132
BeforeEach(func() {
1133+
hcloudClient.Reset()
11421134
hetznerCluster = &infrav1.HetznerCluster{
11431135
ObjectMeta: metav1.ObjectMeta{
11441136
Name: "rate-limit-cluster",

pkg/services/hcloud/client/client.go

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ var ErrUnauthorized = fmt.Errorf("unauthorized")
4141
// Client collects all methods used by the controller in the hcloud cloud API.
4242
type Client interface {
4343
// Reset resets the local cache. Only implemented in the fake client.
44-
Reset() Client
44+
Reset()
4545

4646
CreateLoadBalancer(context.Context, hcloud.LoadBalancerCreateOpts) (*hcloud.LoadBalancer, error)
4747
DeleteLoadBalancer(context.Context, int64) error
@@ -144,8 +144,7 @@ type realClient struct {
144144
}
145145

146146
// Reset implements the Reset method of the HCloudClient interface.
147-
func (c *realClient) Reset() Client {
148-
return c
147+
func (c *realClient) Reset() {
149148
}
150149

151150
func (c *realClient) CreateLoadBalancer(ctx context.Context, opts hcloud.LoadBalancerCreateOpts) (*hcloud.LoadBalancer, error) {

pkg/services/hcloud/client/fake/hcloud_client.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ func (f *cacheHCloudClientFactory) NewClient(string) hcloudclient.Client {
5656
}
5757

5858
// Reset implements Reset method of hcloud client interface.
59-
func (c *cacheHCloudClient) Reset() hcloudclient.Client {
59+
func (c *cacheHCloudClient) Reset() {
6060
c.counterMutex.Lock()
6161
defer c.counterMutex.Unlock()
6262

@@ -86,7 +86,6 @@ func (c *cacheHCloudClient) Reset() hcloudclient.Client {
8686
cacheHCloudClientInstance.placementGroupIDCounter = 0
8787
cacheHCloudClientInstance.loadBalancerIDCounter = 0
8888
cacheHCloudClientInstance.networkIDCounter = 0
89-
return c
9089
}
9190

9291
type cacheHCloudClientFactory struct{}

pkg/services/hcloud/client/fake/hcloud_client_test.go

Lines changed: 10 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@ import (
2525
. "github.com/onsi/ginkgo/v2"
2626
. "github.com/onsi/gomega"
2727

28-
hcloudclient "github.com/syself/cluster-api-provider-hetzner/pkg/services/hcloud/client"
2928
"github.com/syself/cluster-api-provider-hetzner/pkg/services/hcloud/client/fake"
3029
)
3130

@@ -76,13 +75,13 @@ var _ = Describe("Load balancer", func() {
7675
Subnets: []hcloud.NetworkSubnet{{IPRange: &net.IPNet{IP: net.IP("1.2.3.6")}}},
7776
}
7877

79-
var client hcloudclient.Client
78+
client := factory.NewClient("")
8079

8180
var lb *hcloud.LoadBalancer
8281
var network *hcloud.Network
8382

8483
BeforeEach(func() {
85-
client = factory.NewClient("").Reset()
84+
client.Reset()
8685
_, err := client.CreateLoadBalancer(ctx, opts)
8786
Expect(err).To(Succeed())
8887

@@ -424,11 +423,10 @@ var _ = Describe("Load balancer", func() {
424423

425424
var _ = Describe("Images", func() {
426425
var listOpts hcloud.ImageListOpts
427-
var client hcloudclient.Client
426+
client := factory.NewClient("")
428427

429428
BeforeEach(func() {
430-
client = factory.NewClient("").Reset()
431-
429+
client.Reset()
432430
listOpts.LabelSelector = "caph-image-name==fedora-control-plane"
433431
})
434432
It("lists at least one image", func() {
@@ -442,7 +440,7 @@ var _ = Describe("Server", func() {
442440
var listOpts hcloud.ServerListOpts
443441
listOpts.LabelSelector = labelSelector
444442

445-
var client hcloudclient.Client
443+
client := factory.NewClient("")
446444

447445
opts := hcloud.ServerCreateOpts{
448446
Name: "test-server",
@@ -465,9 +463,8 @@ var _ = Describe("Server", func() {
465463
var network *hcloud.Network
466464

467465
BeforeEach(func() {
466+
client.Reset()
468467
var err error
469-
client = factory.NewClient("").Reset()
470-
471468
server, err = client.CreateServer(ctx, opts)
472469
Expect(err).To(Succeed())
473470

@@ -610,7 +607,7 @@ var _ = Describe("Network", func() {
610607
var listOpts hcloud.NetworkListOpts
611608
listOpts.LabelSelector = labelSelector
612609

613-
var client hcloudclient.Client
610+
client := factory.NewClient("")
614611

615612
opts := hcloud.NetworkCreateOpts{
616613
Name: "test-network",
@@ -625,8 +622,8 @@ var _ = Describe("Network", func() {
625622
var network *hcloud.Network
626623

627624
BeforeEach(func() {
625+
client.Reset()
628626
var err error
629-
client = factory.NewClient("").Reset()
630627
network, err = client.CreateNetwork(ctx, opts)
631628
Expect(err).To(Succeed())
632629
})
@@ -674,13 +671,13 @@ var _ = Describe("Placement groups", func() {
674671
Type: "stream",
675672
}
676673

677-
var client hcloudclient.Client
674+
client := factory.NewClient("")
678675
var server *hcloud.Server
679676
var placementGroup *hcloud.PlacementGroup
680677

681678
BeforeEach(func() {
679+
client.Reset()
682680
var err error
683-
client = factory.NewClient("").Reset()
684681
server, err = client.CreateServer(ctx, hcloud.ServerCreateOpts{
685682
Name: "test-server",
686683
Labels: map[string]string{

pkg/services/hcloud/client/mocks/Client.go

Lines changed: 2 additions & 18 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)