Skip to content

Commit b7accae

Browse files
committed
fix test
1 parent 957d0d8 commit b7accae

5 files changed

Lines changed: 59 additions & 92 deletions

File tree

internal/provider/api7ee/provider.go

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -262,20 +262,13 @@ func (d *api7eeProvider) Start(ctx context.Context) error {
262262
retrier := common.NewRetrier(common.NewExponentialBackoff(RetryBaseDelay, RetryMaxDelay))
263263

264264
for {
265-
synced := false
266265
select {
267266
case <-d.syncCh:
268-
synced = true
267+
case <-retrier.C():
269268
case <-ticker.C:
270-
synced = true
271269
case <-ctx.Done():
272270
return nil
273271
}
274-
if synced {
275-
if err := d.sync(ctx); err != nil {
276-
d.log.Error(err, "failed to sync for startup")
277-
}
278-
}
279272

280273
if err := d.sync(ctx); err != nil {
281274
d.log.Error(err, "failed to sync")

test/e2e/api7/route.go

Lines changed: 47 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -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

3330
var _ = 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 = `
5461
apiVersion: apisix.apache.org/v2
5562
kind: ApisixRoute
5663
metadata:
@@ -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 {

test/e2e/framework/api7_consts.go

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -36,12 +36,6 @@ const (
3636
DashboardEndpoint = "http://api7ee3-dashboard.api7-ee-e2e:7080"
3737
DashboardTLSEndpoint = "https://api7ee3-dashboard.api7-ee-e2e:7443"
3838
DPManagerTLSEndpoint = "https://api7ee3-dp-manager.api7-ee-e2e:7943"
39-
40-
DashboardServiceName = "api7ee3-dashboard"
41-
)
42-
43-
const (
44-
ProviderTypeAPI7EE = "api7ee"
4539
)
4640

4741
const (

test/e2e/scaffold/api7_deployer.go

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -193,20 +193,22 @@ func (s *API7Deployer) DeployIngress() {
193193
}
194194

195195
s.Framework.DeployIngress(framework.IngressDeployOpts{
196-
ProviderType: "api7ee",
197-
ControllerName: s.runtimeOpts.ControllerName,
198-
Namespace: s.namespace,
199-
Replicas: ptr.To(1),
200-
WebhookEnable: s.runtimeOpts.EnableWebhook,
196+
ProviderType: "api7ee",
197+
ControllerName: s.runtimeOpts.ControllerName,
198+
ProviderSyncPeriod: 1 * time.Hour,
199+
Namespace: s.namespace,
200+
Replicas: ptr.To(1),
201+
WebhookEnable: s.runtimeOpts.EnableWebhook,
201202
})
202203
}
203204

204205
func (s *API7Deployer) ScaleIngress(replicas int) {
205206
s.Framework.DeployIngress(framework.IngressDeployOpts{
206-
ProviderType: "api7ee",
207-
ControllerName: s.runtimeOpts.ControllerName,
208-
Namespace: s.namespace,
209-
Replicas: ptr.To(replicas),
207+
ProviderType: "api7ee",
208+
ControllerName: s.runtimeOpts.ControllerName,
209+
ProviderSyncPeriod: 1 * time.Hour,
210+
Namespace: s.namespace,
211+
Replicas: ptr.To(replicas),
210212
})
211213
}
212214

test/e2e/scaffold/k8s.go

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@ import (
2525
"fmt"
2626
"os"
2727
"os/exec"
28-
"reflect"
2928
"strings"
3029
"time"
3130

@@ -103,17 +102,6 @@ func (s *Scaffold) GetOutputFromString(shell ...string) (string, error) {
103102
return output, err
104103
}
105104

106-
func (s *Scaffold) GetOutputFromStringWithNamespace(ns string, shell ...string) (string, error) {
107-
cmdArgs := []string{}
108-
cmdArgs = append(cmdArgs, "get")
109-
cmdArgs = append(cmdArgs, shell...)
110-
var newOpts k8s.KubectlOptions
111-
reflect.Copy(reflect.ValueOf(newOpts), reflect.ValueOf(*s.kubectlOptions))
112-
newOpts.Namespace = ns
113-
output, err := k8s.RunKubectlAndGetOutputE(GinkgoT(), &newOpts, cmdArgs...)
114-
return output, err
115-
}
116-
117105
func (s *Scaffold) GetResourceYamlFromNamespace(resourceType, resourceName, namespace string) (string, error) {
118106
return s.GetOutputFromString(resourceType, resourceName, "-n", namespace, "-o", "yaml")
119107
}
@@ -133,11 +121,6 @@ func (s *Scaffold) GetServiceByName(name string) (*corev1.Service, error) {
133121
return k8s.GetServiceE(s.t, s.kubectlOptions, name)
134122
}
135123

136-
func (s *Scaffold) GetService(namespace, name string) (*corev1.Service, error) {
137-
kubectlOptions := k8s.NewKubectlOptions("", "", namespace)
138-
return k8s.GetServiceE(s.t, kubectlOptions, name)
139-
}
140-
141124
// ListPodsByLabels lists all pods which matching the label selector.
142125
func (s *Scaffold) ListPodsByLabels(labels string) ([]corev1.Pod, error) {
143126
return k8s.ListPodsE(s.t, s.kubectlOptions, metav1.ListOptions{

0 commit comments

Comments
 (0)