@@ -18,32 +18,38 @@ import (
18
18
"fmt"
19
19
"time"
20
20
21
+ v1 "k8s.io/api/core/v1"
21
22
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
23
+ "k8s.io/apimachinery/pkg/util/intstr"
22
24
"k8s.io/client-go/kubernetes"
23
25
"k8s.io/kubernetes/test/e2e/framework"
24
26
e2epod "k8s.io/kubernetes/test/e2e/framework/pod"
27
+ e2eservice "k8s.io/kubernetes/test/e2e/framework/service"
25
28
admissionapi "k8s.io/pod-security-admission/api"
26
29
27
30
. "github.com/onsi/ginkgo/v2"
28
- . "github.com/onsi/gomega"
29
31
)
30
32
31
33
const (
32
34
externalDNSAnnotation = "external-dns.alpha.kubernetes.io/hostname"
35
+ serviceName = "external-dns-test"
36
+ timeout = 10 * time .Minute
33
37
)
34
38
35
39
var _ = describe ("External DNS creation" , func () {
36
40
f := framework .NewDefaultFramework ("external-dns" )
37
41
f .NamespacePodSecurityEnforceLevel = admissionapi .LevelBaseline
38
- var cs kubernetes.Interface
42
+ var (
43
+ cs kubernetes.Interface
44
+ jig * e2eservice.TestJig
45
+ )
39
46
40
47
BeforeEach (func () {
41
48
cs = f .ClientSet
49
+ jig = e2eservice .NewTestJig (cs , f .Namespace .Name , serviceName )
42
50
})
43
51
44
52
f .It ("Should create DNS entry [Zalando]" , f .WithSlow (), func (ctx context.Context ) {
45
- // TODO: use the ServiceTestJig here
46
- serviceName := "external-dns-test"
47
53
nameprefix := serviceName + "-"
48
54
ns := f .Namespace .Name
49
55
labels := map [string ]string {
@@ -55,14 +61,27 @@ var _ = describe("External DNS creation", func() {
55
61
By ("Creating service " + serviceName + " in namespace " + ns )
56
62
defer func () {
57
63
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 )
59
65
}()
60
66
61
67
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 )
66
85
67
86
By ("Submitting the pod to kubernetes" )
68
87
route := fmt .Sprintf (`* -> inlineContent("%s") -> <shunt>` , "OK" )
@@ -71,18 +90,18 @@ var _ = describe("External DNS creation", func() {
71
90
By ("deleting the pod" )
72
91
defer GinkgoRecover ()
73
92
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 )
75
94
}()
76
95
77
96
_ , 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 )
79
98
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 )
81
101
82
- timeout := 10 * time .Minute
83
102
// wait for DNS and for pod to be reachable.
84
103
By ("Waiting up to " + timeout .String () + " for " + hostName + " to be reachable" )
85
104
err = waitForSuccessfulResponse (hostName , timeout )
86
- framework .ExpectNoError (err )
105
+ framework .ExpectNoError (err , "failed to wait for %s to be reachable" , hostName )
87
106
})
88
107
})
0 commit comments