Skip to content

Commit 81d55bd

Browse files
committed
test: run conformance and e2e with debounce enabled
Add a debounce profile that turns on reconcile debouncing at the shipped defaults, and a conformance and an e2e matrix entry that run against it, so holding a burst of resource changes before reconciling is covered by the existing suites rather than only by unit tests. Conformance configures Envoy Gateway from the helm values profile, while e2e additionally applies the envoy-gateway-config ConfigMap, so both files are needed for the profile to take effect in both suites. Signed-off-by: Huabing (Robin) Zhao <zhaohuabing@gmail.com> Signed-off-by: Huabing (Robin) Zhao <huabing@tetrate.io>
1 parent c040ff3 commit 81d55bd

3 files changed

Lines changed: 64 additions & 0 deletions

File tree

.github/workflows/build_and_test.yaml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -190,6 +190,10 @@ jobs:
190190
ipFamily: ipv4
191191
profile: merge-backends
192192
gwapiChannel: experimental
193+
- version: v1.36.1
194+
ipFamily: ipv4
195+
profile: debounce
196+
gwapiChannel: experimental
193197
steps:
194198
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
195199
- uses: ./tools/github-actions/setup-deps
@@ -258,6 +262,9 @@ jobs:
258262
- version: v1.36.1
259263
ipFamily: ipv4
260264
profile: watch-namespaces
265+
- version: v1.36.1
266+
ipFamily: ipv4
267+
profile: debounce
261268

262269
steps:
263270
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
apiVersion: v1
2+
kind: ConfigMap
3+
metadata:
4+
name: envoy-gateway-config
5+
namespace: envoy-gateway-system
6+
data:
7+
envoy-gateway.yaml: |
8+
apiVersion: gateway.envoyproxy.io/v1alpha1
9+
kind: EnvoyGateway
10+
debounce:
11+
enable: true
12+
after: 100ms
13+
max: 10s
14+
provider:
15+
type: Kubernetes
16+
gateway:
17+
controllerName: gateway.envoyproxy.io/gatewayclass-controller
18+
extensionApis:
19+
enableEnvoyPatchPolicy: true
20+
enableBackend: true
21+
enableLua: true
22+
enableSDSSecretRef: true
23+
gatewayAPI:
24+
enabled: [XListenerSet]
25+
rateLimit:
26+
backend:
27+
type: Redis
28+
redis:
29+
url: redis.redis-system.svc.cluster.local:6379
30+
envoyProxy:
31+
provider:
32+
kubernetes:
33+
envoyDeployment:
34+
container:
35+
image: envoyproxy/envoy:invalid-tag
36+
telemetry:
37+
traces:
38+
sink:
39+
type: OpenTelemetry
40+
openTelemetry:
41+
host: otel-collector.monitoring.svc.cluster.local
42+
port: 4317
43+
protocol: grpc
44+
samplingRate:
45+
numerator: 100

test/config/helm/debounce.yaml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
# Runs the suite with reconcile debouncing enabled, to confirm that holding a
2+
# burst of resource changes before reconciling does not change the outcome of
3+
# any conformance or e2e case.
4+
#
5+
# after and max are the shipped defaults, set explicitly so the matrix documents
6+
# the configuration under test.
7+
config:
8+
envoyGateway:
9+
debounce:
10+
enable: true
11+
after: 100ms
12+
max: 10s

0 commit comments

Comments
 (0)