Skip to content

Commit c7d2308

Browse files
authored
Merge pull request #8034 from zalando-incubator/use-servicetestjig
[e2] refactor external-dns test to use `service.TestJig`
2 parents bdaf5d5 + 092adcb commit c7d2308

File tree

2 files changed

+33
-33
lines changed

2 files changed

+33
-33
lines changed

test/e2e/external_dns.go

Lines changed: 33 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -18,32 +18,38 @@ import (
1818
"fmt"
1919
"time"
2020

21+
v1 "k8s.io/api/core/v1"
2122
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
23+
"k8s.io/apimachinery/pkg/util/intstr"
2224
"k8s.io/client-go/kubernetes"
2325
"k8s.io/kubernetes/test/e2e/framework"
2426
e2epod "k8s.io/kubernetes/test/e2e/framework/pod"
27+
e2eservice "k8s.io/kubernetes/test/e2e/framework/service"
2528
admissionapi "k8s.io/pod-security-admission/api"
2629

2730
. "github.com/onsi/ginkgo/v2"
28-
. "github.com/onsi/gomega"
2931
)
3032

3133
const (
3234
externalDNSAnnotation = "external-dns.alpha.kubernetes.io/hostname"
35+
serviceName = "external-dns-test"
36+
timeout = 10 * time.Minute
3337
)
3438

3539
var _ = describe("External DNS creation", func() {
3640
f := framework.NewDefaultFramework("external-dns")
3741
f.NamespacePodSecurityEnforceLevel = admissionapi.LevelBaseline
38-
var cs kubernetes.Interface
42+
var (
43+
cs kubernetes.Interface
44+
jig *e2eservice.TestJig
45+
)
3946

4047
BeforeEach(func() {
4148
cs = f.ClientSet
49+
jig = e2eservice.NewTestJig(cs, f.Namespace.Name, serviceName)
4250
})
4351

4452
f.It("Should create DNS entry [Zalando]", f.WithSlow(), func(ctx context.Context) {
45-
// TODO: use the ServiceTestJig here
46-
serviceName := "external-dns-test"
4753
nameprefix := serviceName + "-"
4854
ns := f.Namespace.Name
4955
labels := map[string]string{
@@ -55,14 +61,27 @@ var _ = describe("External DNS creation", func() {
5561
By("Creating service " + serviceName + " in namespace " + ns)
5662
defer func() {
5763
err := cs.CoreV1().Services(ns).Delete(ctx, serviceName, metav1.DeleteOptions{})
58-
framework.ExpectNoError(err)
64+
framework.ExpectNoError(err, "failed to delete service: %s in namespace: %s", serviceName, ns)
5965
}()
6066

6167
hostName := fmt.Sprintf("%s-%d.%s", serviceName, time.Now().UTC().Unix(), E2EHostedZone())
62-
service := createServiceTypeLoadbalancer(serviceName, hostName, labels, port)
63-
64-
_, err := cs.CoreV1().Services(ns).Create(ctx, service, metav1.CreateOptions{})
65-
framework.ExpectNoError(err)
68+
_, err := jig.CreateLoadBalancerService(ctx, timeout, func(svc *v1.Service) {
69+
svc.ObjectMeta = metav1.ObjectMeta{
70+
Name: serviceName,
71+
Annotations: map[string]string{
72+
externalDNSAnnotation: hostName,
73+
},
74+
}
75+
svc.Spec.Type = v1.ServiceTypeLoadBalancer
76+
svc.Spec.Selector = labels
77+
svc.Spec.Ports = []v1.ServicePort{
78+
{
79+
Port: int32(port),
80+
TargetPort: intstr.FromInt(port),
81+
},
82+
}
83+
})
84+
framework.ExpectNoError(err, "failed to create service: %s in namespace: %s", serviceName, ns)
6685

6786
By("Submitting the pod to kubernetes")
6887
route := fmt.Sprintf(`* -> inlineContent("%s") -> <shunt>`, "OK")
@@ -71,18 +90,18 @@ var _ = describe("External DNS creation", func() {
7190
By("deleting the pod")
7291
defer GinkgoRecover()
7392
err2 := cs.CoreV1().Pods(ns).Delete(ctx, pod.Name, metav1.DeleteOptions{})
74-
Expect(err2).NotTo(HaveOccurred())
93+
framework.ExpectNoError(err2, "failed to delete pod: %s in namespace: %s", pod.Name, ns)
7594
}()
7695

7796
_, err = cs.CoreV1().Pods(ns).Create(ctx, pod, metav1.CreateOptions{})
78-
framework.ExpectNoError(err)
97+
framework.ExpectNoError(err, "failed to create pod: %s in namespace: %s", pod.Name, ns)
7998

80-
framework.ExpectNoError(e2epod.WaitForPodNameRunningInNamespace(ctx, f.ClientSet, pod.Name, pod.Namespace))
99+
framework.ExpectNoError(e2epod.WaitForPodNameRunningInNamespace(ctx, f.ClientSet, pod.Name, pod.Namespace),
100+
"failed to wait for pod: %s in namespace: %s", pod.Name, ns)
81101

82-
timeout := 10 * time.Minute
83102
// wait for DNS and for pod to be reachable.
84103
By("Waiting up to " + timeout.String() + " for " + hostName + " to be reachable")
85104
err = waitForSuccessfulResponse(hostName, timeout)
86-
framework.ExpectNoError(err)
105+
framework.ExpectNoError(err, "failed to wait for %s to be reachable", hostName)
87106
})
88107
})

test/e2e/util.go

Lines changed: 0 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -558,25 +558,6 @@ func createServiceTypeClusterIP(serviceName string, labels map[string]string, po
558558
}
559559
}
560560

561-
func createServiceTypeLoadbalancer(serviceName, hostName string, labels map[string]string, port int) *v1.Service {
562-
return &v1.Service{
563-
ObjectMeta: metav1.ObjectMeta{
564-
Name: serviceName,
565-
Annotations: map[string]string{
566-
externalDNSAnnotation: hostName,
567-
},
568-
},
569-
Spec: v1.ServiceSpec{
570-
Type: v1.ServiceTypeLoadBalancer,
571-
Selector: labels,
572-
Ports: []v1.ServicePort{{
573-
Port: int32(port),
574-
TargetPort: intstr.FromInt(port),
575-
}},
576-
},
577-
}
578-
}
579-
580561
func waitForSuccessfulResponse(hostname string, timeout time.Duration) error {
581562
client := http.Client{
582563
Transport: &http.Transport{},

0 commit comments

Comments
 (0)