@@ -23,34 +23,41 @@ import (
2323
2424 . "github.com/onsi/ginkgo/v2"
2525 . "github.com/onsi/gomega"
26- corev1 "k8s.io/api/core/v1"
27- "sigs.k8s.io/yaml"
2826
29- "github.com/apache/apisix-ingress-controller/test/e2e/framework"
3027 "github.com/apache/apisix-ingress-controller/test/e2e/scaffold"
3128)
3229
3330var _ = Describe ("Test apisix.apache.org/v2 Status" , Label ("apisix.apache.org" , "v2" , "apisixroute" ), func () {
34- var (
35- s = scaffold .NewScaffold (scaffold.Options {
36- // for triggering the sync
37- SyncPeriod : 3 * time .Second ,
38- })
39- )
31+ s := scaffold .NewDefaultScaffold ()
4032
4133 Context ("Test ApisixRoute Sync Status" , func () {
42- BeforeEach (func () {
43- By ("create GatewayProxy" )
44- err := s .CreateResourceFromString (s .GetGatewayProxySpec ())
45- Expect (err ).NotTo (HaveOccurred (), "creating GatewayProxy" )
46- time .Sleep (5 * time .Second )
47-
48- By ("create IngressClass" )
49- err = s .CreateResourceFromStringWithNamespace (s .GetIngressClassYaml (), "" )
50- Expect (err ).NotTo (HaveOccurred (), "creating IngressClass" )
51- time .Sleep (5 * time .Second )
52- })
53- const ar = `
34+ const (
35+ serviceSpec = `
36+ apiVersion: v1
37+ kind: Service
38+ metadata:
39+ name: api7ee3-dashboard
40+ spec:
41+ type: ExternalName
42+ externalName: %s
43+ `
44+ gatewayProxyYaml = `
45+ apiVersion: apisix.apache.org/v1alpha1
46+ kind: GatewayProxy
47+ metadata:
48+ name: apisix-proxy-config
49+ spec:
50+ provider:
51+ type: ControlPlane
52+ controlPlane:
53+ endpoints:
54+ - https://api7ee3-dashboard:7443
55+ auth:
56+ type: AdminKey
57+ adminKey:
58+ value: "%s"
59+ `
60+ ar = `
5461apiVersion: apisix.apache.org/v2
5562kind: ApisixRoute
5663metadata:
@@ -69,55 +76,43 @@ spec:
6976 - serviceName: httpbin-service-e2e-test
7077 servicePort: 80
7178`
79+ )
7280
73- FIt ("dataplane unavailable" , func () {
81+ It ("dataplane unavailable" , func () {
7482 s .Deployer .ScaleIngress (0 )
83+ By ("create GatewayProxy" )
84+ err := s .CreateResourceFromString (fmt .Sprintf (gatewayProxyYaml , s .AdminKey ()))
85+ Expect (err ).NotTo (HaveOccurred (), "creating GatewayProxy" )
86+
87+ By ("create IngressClass" )
88+ err = s .CreateResourceFromStringWithNamespace (s .GetIngressClassYaml (), "" )
89+ Expect (err ).NotTo (HaveOccurred (), "creating IngressClass" )
90+
91+ By ("create Service with invalid host" )
92+ err = s .CreateResourceFromString (fmt .Sprintf (serviceSpec , "invalid.host" ))
93+ Expect (err ).NotTo (HaveOccurred (), "creating Service" )
94+
7595 By ("apply ApisixRoute" )
76- err : = s .CreateResourceFromString (fmt .Sprintf (ar , s .Namespace (), s .Namespace ()))
96+ err = s .CreateResourceFromString (fmt .Sprintf (ar , s .Namespace (), s .Namespace ()))
7797 Expect (err ).NotTo (HaveOccurred (), "creating ApisixRoute" )
7898
79- By ("update service to invalid host" )
80- k8sservice , err := s .GetService (framework .Namespace , framework .DashboardServiceName )
81- Expect (err ).NotTo (HaveOccurred (), "getting service" )
82- oldSpec := k8sservice .Spec
83- k8sservice .Spec = corev1.ServiceSpec {
84- Type : corev1 .ServiceTypeExternalName ,
85- ExternalName : "invalid.host" ,
86- }
87- newServiceYaml , err := yaml .Marshal (k8sservice )
88- Expect (err ).NotTo (HaveOccurred (), "marshalling service" )
89- err = s .CreateResourceFromString (string (newServiceYaml ))
90- Expect (err ).NotTo (HaveOccurred (), "creating service" )
91-
9299 s .Deployer .ScaleIngress (1 )
93100
94- By ("check route in APISIX" )
95- s .RequestAssert (& scaffold.RequestAssert {
96- Method : "GET" ,
97- Path : "/get" ,
98- Headers : map [string ]string {"Host" : "httpbin" },
99- Check : scaffold .WithExpectedStatus (404 ),
100- })
101-
102101 By ("check ApisixRoute status" )
103102 s .RetryAssertion (func () string {
104103 output , _ := s .GetOutputFromString ("ar" , "default" , "-o" , "yaml" , "-n" , s .Namespace ())
105104 return output
106- }).WithTimeout (60 * time .Second ).
105+ }).WithTimeout (5 * time .Minute ).
107106 Should (
108107 And (
109108 ContainSubstring (`status: "False"` ),
110109 ContainSubstring (`reason: SyncFailed` ),
111110 ),
112111 )
113112
114- By ("update service to original spec" )
115- k8sservice , err = s .GetService (framework .Namespace , framework .DashboardServiceName )
116- k8sservice .Spec = oldSpec
117- newServiceYaml , err = yaml .Marshal (k8sservice )
118- Expect (err ).NotTo (HaveOccurred (), "marshalling service" )
119- err = s .CreateResourceFromString (string (newServiceYaml ))
120- Expect (err ).NotTo (HaveOccurred (), "creating service" )
113+ By ("update service to dashboard" )
114+ err = s .CreateResourceFromString (fmt .Sprintf (serviceSpec , "api7ee3-dashboard.api7-ee-e2e.svc.cluster.local" ))
115+ Expect (err ).NotTo (HaveOccurred (), "updating Service" )
121116
122117 By ("check ApisixRoute status after scaling up" )
123118 s .RetryAssertion (func () string {
0 commit comments