Skip to content

Commit 1a57daf

Browse files
authored
Set ignore_health_on_host_removal to true for static clusters (#4612)
Removes the endpoint from the pool faster instead of waiting for the result of the active health. Since the control plane already has definitive endpoint health info from the EndpointSlice API, its safe to set this. Fixes: #4564 Signed-off-by: Arko Dasgupta <[email protected]>
1 parent 26a63e1 commit 1a57daf

File tree

136 files changed

+282
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

136 files changed

+282
-0
lines changed

internal/cmd/egctl/testdata/translate/out/default-resources.all.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -778,6 +778,7 @@ xds:
778778
ads: {}
779779
resourceApiVersion: V3
780780
serviceName: httproute/default/backend/rule/0
781+
ignoreHealthOnHostRemoval: true
781782
lbPolicy: LEAST_REQUEST
782783
name: httproute/default/backend/rule/0
783784
outlierDetection: {}
@@ -797,6 +798,7 @@ xds:
797798
ads: {}
798799
resourceApiVersion: V3
799800
serviceName: grpcroute/default/backend/rule/0
801+
ignoreHealthOnHostRemoval: true
800802
lbPolicy: LEAST_REQUEST
801803
name: grpcroute/default/backend/rule/0
802804
outlierDetection: {}
@@ -823,6 +825,7 @@ xds:
823825
ads: {}
824826
resourceApiVersion: V3
825827
serviceName: tcproute/default/backend/rule/-1
828+
ignoreHealthOnHostRemoval: true
826829
lbPolicy: LEAST_REQUEST
827830
name: tcproute/default/backend/rule/-1
828831
outlierDetection: {}
@@ -842,6 +845,7 @@ xds:
842845
ads: {}
843846
resourceApiVersion: V3
844847
serviceName: tlsroute/default/backend/rule/-1
848+
ignoreHealthOnHostRemoval: true
845849
lbPolicy: LEAST_REQUEST
846850
name: tlsroute/default/backend/rule/-1
847851
outlierDetection: {}
@@ -861,6 +865,7 @@ xds:
861865
ads: {}
862866
resourceApiVersion: V3
863867
serviceName: udproute/default/backend/rule/-1
868+
ignoreHealthOnHostRemoval: true
864869
lbPolicy: LEAST_REQUEST
865870
name: udproute/default/backend/rule/-1
866871
outlierDetection: {}

internal/cmd/egctl/testdata/translate/out/echo-gateway-api.cluster.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,7 @@ xds:
106106
ads: {}
107107
resourceApiVersion: V3
108108
serviceName: httproute/envoy-gateway-system/backend/rule/0
109+
ignoreHealthOnHostRemoval: true
109110
lbPolicy: LEAST_REQUEST
110111
name: httproute/envoy-gateway-system/backend/rule/0
111112
outlierDetection: {}

internal/cmd/egctl/testdata/translate/out/from-gateway-api-to-xds.all.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -466,6 +466,7 @@
466466
},
467467
"serviceName": "httproute/default/backend/rule/0"
468468
},
469+
"ignoreHealthOnHostRemoval": true,
469470
"lbPolicy": "LEAST_REQUEST",
470471
"name": "httproute/default/backend/rule/0",
471472
"outlierDetection": {},
@@ -495,6 +496,7 @@
495496
},
496497
"serviceName": "grpcroute/default/backend/rule/0"
497498
},
499+
"ignoreHealthOnHostRemoval": true,
498500
"lbPolicy": "LEAST_REQUEST",
499501
"name": "grpcroute/default/backend/rule/0",
500502
"outlierDetection": {},
@@ -535,6 +537,7 @@
535537
},
536538
"serviceName": "tcproute/default/backend/rule/-1"
537539
},
540+
"ignoreHealthOnHostRemoval": true,
538541
"lbPolicy": "LEAST_REQUEST",
539542
"name": "tcproute/default/backend/rule/-1",
540543
"outlierDetection": {},
@@ -564,6 +567,7 @@
564567
},
565568
"serviceName": "tlsroute/default/backend/rule/-1"
566569
},
570+
"ignoreHealthOnHostRemoval": true,
567571
"lbPolicy": "LEAST_REQUEST",
568572
"name": "tlsroute/default/backend/rule/-1",
569573
"outlierDetection": {},
@@ -593,6 +597,7 @@
593597
},
594598
"serviceName": "udproute/default/backend/rule/-1"
595599
},
600+
"ignoreHealthOnHostRemoval": true,
596601
"lbPolicy": "LEAST_REQUEST",
597602
"name": "udproute/default/backend/rule/-1",
598603
"outlierDetection": {},

internal/cmd/egctl/testdata/translate/out/from-gateway-api-to-xds.all.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -257,6 +257,7 @@ xds:
257257
ads: {}
258258
resourceApiVersion: V3
259259
serviceName: httproute/default/backend/rule/0
260+
ignoreHealthOnHostRemoval: true
260261
lbPolicy: LEAST_REQUEST
261262
name: httproute/default/backend/rule/0
262263
outlierDetection: {}
@@ -276,6 +277,7 @@ xds:
276277
ads: {}
277278
resourceApiVersion: V3
278279
serviceName: grpcroute/default/backend/rule/0
280+
ignoreHealthOnHostRemoval: true
279281
lbPolicy: LEAST_REQUEST
280282
name: grpcroute/default/backend/rule/0
281283
outlierDetection: {}
@@ -302,6 +304,7 @@ xds:
302304
ads: {}
303305
resourceApiVersion: V3
304306
serviceName: tcproute/default/backend/rule/-1
307+
ignoreHealthOnHostRemoval: true
305308
lbPolicy: LEAST_REQUEST
306309
name: tcproute/default/backend/rule/-1
307310
outlierDetection: {}
@@ -321,6 +324,7 @@ xds:
321324
ads: {}
322325
resourceApiVersion: V3
323326
serviceName: tlsroute/default/backend/rule/-1
327+
ignoreHealthOnHostRemoval: true
324328
lbPolicy: LEAST_REQUEST
325329
name: tlsroute/default/backend/rule/-1
326330
outlierDetection: {}
@@ -340,6 +344,7 @@ xds:
340344
ads: {}
341345
resourceApiVersion: V3
342346
serviceName: udproute/default/backend/rule/-1
347+
ignoreHealthOnHostRemoval: true
343348
lbPolicy: LEAST_REQUEST
344349
name: udproute/default/backend/rule/-1
345350
outlierDetection: {}

internal/cmd/egctl/testdata/translate/out/from-gateway-api-to-xds.cluster.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ xds:
1616
ads: {}
1717
resourceApiVersion: V3
1818
serviceName: httproute/default/backend/rule/0
19+
ignoreHealthOnHostRemoval: true
1920
lbPolicy: LEAST_REQUEST
2021
name: httproute/default/backend/rule/0
2122
outlierDetection: {}
@@ -35,6 +36,7 @@ xds:
3536
ads: {}
3637
resourceApiVersion: V3
3738
serviceName: grpcroute/default/backend/rule/0
39+
ignoreHealthOnHostRemoval: true
3840
lbPolicy: LEAST_REQUEST
3941
name: grpcroute/default/backend/rule/0
4042
outlierDetection: {}
@@ -61,6 +63,7 @@ xds:
6163
ads: {}
6264
resourceApiVersion: V3
6365
serviceName: tcproute/default/backend/rule/-1
66+
ignoreHealthOnHostRemoval: true
6467
lbPolicy: LEAST_REQUEST
6568
name: tcproute/default/backend/rule/-1
6669
outlierDetection: {}
@@ -80,6 +83,7 @@ xds:
8083
ads: {}
8184
resourceApiVersion: V3
8285
serviceName: tlsroute/default/backend/rule/-1
86+
ignoreHealthOnHostRemoval: true
8387
lbPolicy: LEAST_REQUEST
8488
name: tlsroute/default/backend/rule/-1
8589
outlierDetection: {}
@@ -99,6 +103,7 @@ xds:
99103
ads: {}
100104
resourceApiVersion: V3
101105
serviceName: udproute/default/backend/rule/-1
106+
ignoreHealthOnHostRemoval: true
102107
lbPolicy: LEAST_REQUEST
103108
name: udproute/default/backend/rule/-1
104109
outlierDetection: {}

internal/cmd/egctl/testdata/translate/out/jwt-single-route-single-match-to-xds.all.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -358,6 +358,7 @@
358358
},
359359
"serviceName": "httproute/envoy-gateway-system/backend/rule/0"
360360
},
361+
"ignoreHealthOnHostRemoval": true,
361362
"lbPolicy": "LEAST_REQUEST",
362363
"name": "httproute/envoy-gateway-system/backend/rule/0",
363364
"outlierDetection": {},

internal/cmd/egctl/testdata/translate/out/jwt-single-route-single-match-to-xds.all.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -201,6 +201,7 @@ xds:
201201
ads: {}
202202
resourceApiVersion: V3
203203
serviceName: httproute/envoy-gateway-system/backend/rule/0
204+
ignoreHealthOnHostRemoval: true
204205
lbPolicy: LEAST_REQUEST
205206
name: httproute/envoy-gateway-system/backend/rule/0
206207
outlierDetection: {}

internal/cmd/egctl/testdata/translate/out/jwt-single-route-single-match-to-xds.cluster.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ xds:
1616
ads: {}
1717
resourceApiVersion: V3
1818
serviceName: httproute/envoy-gateway-system/backend/rule/0
19+
ignoreHealthOnHostRemoval: true
1920
lbPolicy: LEAST_REQUEST
2021
name: httproute/envoy-gateway-system/backend/rule/0
2122
outlierDetection: {}

internal/cmd/egctl/testdata/translate/out/no-service-cluster-ip.all.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -201,6 +201,7 @@ xds:
201201
ads: {}
202202
resourceApiVersion: V3
203203
serviceName: httproute/envoy-gateway-system/routes/rule/0
204+
ignoreHealthOnHostRemoval: true
204205
lbPolicy: LEAST_REQUEST
205206
name: httproute/envoy-gateway-system/routes/rule/0
206207
outlierDetection: {}

internal/xds/translator/cluster.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -158,6 +158,9 @@ func buildXdsCluster(args *xdsClusterArgs) *clusterv3.Cluster {
158158
},
159159
},
160160
}
161+
// Dont wait for a health check to determine health and remove these endpoints
162+
// if the endpoint has been removed via EDS by the control plane
163+
cluster.IgnoreHealthOnHostRemoval = true
161164
} else {
162165
cluster.ClusterDiscoveryType = &clusterv3.Cluster_Type{Type: clusterv3.Cluster_STRICT_DNS}
163166
cluster.DnsRefreshRate = durationpb.New(30 * time.Second)

0 commit comments

Comments
 (0)