@@ -12,6 +12,7 @@ import (
1212 "time"
1313
1414 "github.com/stretchr/testify/assert"
15+ "github.com/stretchr/testify/require"
1516 corev1 "k8s.io/api/core/v1"
1617 metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
1718 "k8s.io/apimachinery/pkg/util/wait"
@@ -25,12 +26,10 @@ import (
2526func TestNodeSetCorrectNodeLabelsAndIPAddresses (t * testing.T ) {
2627 t .Parallel ()
2728
28- ctx := context .Background ()
29-
30- node , err := testCluster .k8sClient .CoreV1 ().Nodes ().Get (ctx , testCluster .ControlNodeName (), metav1.GetOptions {})
29+ node , err := testCluster .k8sClient .CoreV1 ().Nodes ().Get (t .Context (), testCluster .ControlNodeName (), metav1.GetOptions {})
3130 assert .NoError (t , err )
3231
33- server , _ , err := testCluster .hcloud .Server .Get (ctx , testCluster .ControlNodeName ())
32+ server , _ , err := testCluster .hcloud .Server .Get (t . Context () , testCluster .ControlNodeName ())
3433 if err != nil {
3534 return
3635 }
@@ -77,52 +76,58 @@ func TestServiceLoadBalancersMinimalSetup(t *testing.T) {
7776 t : t ,
7877 podName : "loadbalancer-minimal" ,
7978 }
79+ t .Cleanup (func () {
80+ lbTest .TearDown ()
81+ })
8082
81- pod := lbTest .DeployTestPod ()
83+ pod , err := lbTest .DeployTestPod ()
84+ require .NoError (t , err )
8285
8386 lbSvc := lbTest .ServiceDefinition (pod , map [string ]string {
8487 string (annotation .LBLocation ): "nbg1" ,
8588 })
8689
87- lbSvc , err := lbTest .CreateService (lbSvc )
88- if assert .NoError (t , err , "deploying test svc" ) {
89- WaitForHTTPAvailable (t , lbSvc .Status .LoadBalancer .Ingress [0 ].IP , false )
90- }
90+ lbSvc , err = lbTest .CreateService (lbSvc )
91+ require .NoError (t , err )
9192
92- lbTest .TearDown ()
93+ err = lbTest .WaitForHTTPAvailable (lbSvc .Status .LoadBalancer .Ingress [0 ].IP , false )
94+ require .NoError (t , err )
9395}
9496
9597func TestServiceLoadBalancersHTTPS (t * testing.T ) {
9698 t .Parallel ()
9799
98- cert := testCluster .CreateTLSCertificate (t , "loadbalancer-https" )
99100 lbTest := lbTestHelper {
100101 t : t ,
101102 podName : "loadbalancer-https" ,
102103 port : 443 ,
103104 }
105+ t .Cleanup (func () {
106+ lbTest .TearDown ()
107+ })
108+
109+ cert , err := testCluster .CreateTLSCertificate (t , "loadbalancer-https" )
110+ require .NoError (t , err )
104111
105- pod := lbTest .DeployTestPod ()
112+ pod , err := lbTest .DeployTestPod ()
113+ require .NoError (t , err )
106114
107115 lbSvc := lbTest .ServiceDefinition (pod , map [string ]string {
108116 string (annotation .LBLocation ): "nbg1" ,
109117 string (annotation .LBSvcHTTPCertificates ): cert .Name ,
110118 string (annotation .LBSvcProtocol ): "https" ,
111119 })
112120
113- lbSvc , err := lbTest .CreateService (lbSvc )
114- if assert .NoError (t , err , "deploying test svc" ) {
115- WaitForHTTPAvailable (t , lbSvc .Status .LoadBalancer .Ingress [0 ].IP , true )
116- }
121+ lbSvc , err = lbTest .CreateService (lbSvc )
122+ require .NoError (t , err )
117123
118- lbTest .TearDown ()
124+ err = lbTest .WaitForHTTPAvailable (lbSvc .Status .LoadBalancer .Ingress [0 ].IP , false )
125+ require .NoError (t , err )
119126}
120127
121128func TestServiceLoadBalancersHTTPSWithManagedCertificate (t * testing.T ) {
122129 t .Parallel ()
123130
124- ctx := context .Background ()
125-
126131 if testCluster .certDomain == "" {
127132 t .Skip ("Skipping because CERT_DOMAIN is not set" )
128133 }
@@ -133,8 +138,12 @@ func TestServiceLoadBalancersHTTPSWithManagedCertificate(t *testing.T) {
133138 podName : "loadbalancer-https" ,
134139 port : 443 ,
135140 }
141+ t .Cleanup (func () {
142+ lbTest .TearDown ()
143+ })
136144
137- pod := lbTest .DeployTestPod ()
145+ pod , err := lbTest .DeployTestPod ()
146+ require .NoError (t , err )
138147
139148 lbSvc := lbTest .ServiceDefinition (pod , map [string ]string {
140149 string (annotation .LBLocation ): "nbg1" ,
@@ -144,62 +153,62 @@ func TestServiceLoadBalancersHTTPSWithManagedCertificate(t *testing.T) {
144153 string (annotation .LBSvcHTTPManagedCertificateUseACMEStaging ): "true" ,
145154 })
146155
147- lbSvc , err := lbTest .CreateService (lbSvc )
148- if assert .NoError (t , err , "deploying test svc" ) {
149- certs , err := testCluster .hcloud .Certificate .AllWithOpts (ctx , hcloud.CertificateListOpts {
150- ListOpts : hcloud.ListOpts {
151- LabelSelector : fmt .Sprintf ("%s=%s" , hcops .LabelServiceUID , lbSvc .ObjectMeta .UID ),
152- },
153- })
154- assert .NoError (t , err )
155- if assert .Len (t , certs , 1 ) {
156- testCluster .certificates .Add (certs [0 ].ID )
157- }
158- }
156+ lbSvc , err = lbTest .CreateService (lbSvc )
157+ require .NoError (t , err )
159158
160- lbTest .TearDown ()
159+ certs , err := testCluster .hcloud .Certificate .AllWithOpts (t .Context (), hcloud.CertificateListOpts {
160+ ListOpts : hcloud.ListOpts {
161+ LabelSelector : fmt .Sprintf ("%s=%s" , hcops .LabelServiceUID , lbSvc .ObjectMeta .UID ),
162+ },
163+ })
164+ assert .NoError (t , err )
165+ if assert .Len (t , certs , 1 ) {
166+ testCluster .certificates .Add (certs [0 ].ID )
167+ }
161168}
162169
163170func TestServiceLoadBalancersWithPrivateNetwork (t * testing.T ) {
164171 t .Parallel ()
165172
166173 lbTest := lbTestHelper {t : t , podName : "loadbalancer-private-network" }
174+ t .Cleanup (func () {
175+ lbTest .TearDown ()
176+ })
167177
168- pod := lbTest .DeployTestPod ()
178+ pod , err := lbTest .DeployTestPod ()
179+ require .NoError (t , err )
169180
170181 ipRange := & net.IPNet {
171182 IP : net .IPv4 (10 , 0 , 0 , 0 ),
172183 Mask : net .CIDRMask (24 , 32 ),
173184 }
174185
175- lbSvcDefinition := lbTest .ServiceDefinition (pod , map [string ]string {
186+ lbSvc := lbTest .ServiceDefinition (pod , map [string ]string {
176187 string (annotation .LBLocation ): "nbg1" ,
177188 string (annotation .LBUsePrivateIP ): "true" ,
178189 string (annotation .PrivateSubnetIPRange ): ipRange .String (),
179190 })
180191
181- lbSvc , err := lbTest .CreateService (lbSvcDefinition )
182- if assert .NoError (t , err , "deploying test svc" ) {
183- WaitForHTTPAvailable (t , lbSvc .Status .LoadBalancer .Ingress [0 ].IP , false )
192+ lbSvc , err = lbTest .CreateService (lbSvc )
193+ require .NoError (t , err )
184194
185- anyInIPRange := slices .ContainsFunc (lbSvc .Status .LoadBalancer .Ingress , func (ingress corev1.LoadBalancerIngress ) bool {
186- ip := net .ParseIP (ingress .IP )
187- if ip == nil {
188- return false
189- }
190- return ipRange .Contains (ip )
191- })
192-
193- assert .True (t , anyInIPRange )
194- }
195+ err = lbTest .WaitForHTTPAvailable (lbSvc .Status .LoadBalancer .Ingress [0 ].IP , false )
196+ require .NoError (t , err )
195197
196- lbTest .TearDown ()
198+ anyInIPRange := slices .ContainsFunc (lbSvc .Status .LoadBalancer .Ingress , func (ingress corev1.LoadBalancerIngress ) bool {
199+ ip := net .ParseIP (ingress .IP )
200+ if ip == nil {
201+ return false
202+ }
203+ return ipRange .Contains (ip )
204+ })
205+ assert .True (t , anyInIPRange )
197206}
198207
199208func TestRouteNetworksPodIPsAreAccessible (t * testing.T ) {
200209 t .Parallel ()
201210
202- err := wait .PollUntilContextTimeout (context . Background (), 1 * time .Second , 2 * time .Minute , true , func (ctx context.Context ) (bool , error ) {
211+ err := wait .PollUntilContextTimeout (t . Context (), 1 * time .Second , 2 * time .Minute , true , func (ctx context.Context ) (bool , error ) {
203212 node , err := testCluster .k8sClient .CoreV1 ().Nodes ().Get (ctx , testCluster .ControlNodeName (), metav1.GetOptions {})
204213 if err != nil {
205214 return false , err
@@ -222,6 +231,6 @@ func TestRouteNetworksPodIPsAreAccessible(t *testing.T) {
222231 return false , nil
223232 })
224233 if err != nil {
225- t .Fatal ( err )
234+ t .Errorf ( "error waiting for pod IPs being accessible: %v" , err )
226235 }
227236}
0 commit comments