Skip to content

Commit 3022205

Browse files
committed
Merge branch 'main' into feat/ubi-base-image
2 parents 20d131e + 5188240 commit 3022205

File tree

83 files changed

+452
-897
lines changed

Some content is hidden

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

83 files changed

+452
-897
lines changed

.github/workflows/ci.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -208,7 +208,7 @@ jobs:
208208
- name: Build binary
209209
uses: goreleaser/goreleaser-action@e435ccd777264be153ace6237001ef4d979d3a7a # v6.4.0
210210
with:
211-
version: v2.12.1 # renovate: datasource=github-tags depName=goreleaser/goreleaser
211+
version: v2.12.2 # renovate: datasource=github-tags depName=goreleaser/goreleaser
212212
args: ${{ (inputs.is_production_release && (inputs.dry_run == false || inputs.dry_run == null)) && 'release' || 'build --snapshot' }} --clean
213213
env:
214214
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

.github/workflows/conformance.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ jobs:
9999
- name: Build binary
100100
uses: goreleaser/goreleaser-action@e435ccd777264be153ace6237001ef4d979d3a7a # v6.4.0
101101
with:
102-
version: v2.12.1 # renovate: datasource=github-tags depName=goreleaser/goreleaser
102+
version: v2.12.2 # renovate: datasource=github-tags depName=goreleaser/goreleaser
103103
args: build --single-target --snapshot --clean
104104
env:
105105
TELEMETRY_ENDPOINT: "" # disables sending telemetry

.github/workflows/functional.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ jobs:
8383
- name: Build binary
8484
uses: goreleaser/goreleaser-action@e435ccd777264be153ace6237001ef4d979d3a7a # v6.4.0
8585
with:
86-
version: v2.12.1 # renovate: datasource=github-tags depName=goreleaser/goreleaser
86+
version: v2.12.2 # renovate: datasource=github-tags depName=goreleaser/goreleaser
8787
args: build --single-target --snapshot --clean
8888
env:
8989
TELEMETRY_ENDPOINT: otel-collector-opentelemetry-collector.collector.svc.cluster.local:4317

internal/controller/handler.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -338,7 +338,6 @@ func (h *eventHandlerImpl) updateStatuses(ctx context.Context, gr *graph.Graph,
338338
gr.L4Routes,
339339
gr.Routes,
340340
transitionTime,
341-
gw.LatestReloadResult,
342341
h.cfg.gatewayCtlrName,
343342
)
344343

internal/controller/provisioner/templates.go

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -90,12 +90,4 @@ collector:
9090
receivers: ["host_metrics", "nginx_metrics"]
9191
exporters: ["prometheus"]
9292
{{- end }}
93-
data_plane_config:
94-
nginx:
95-
reload_backoff:
96-
initial_interval: .5s
97-
max_interval: 1.5s
98-
max_elapsed_time: 3s
99-
randomization_factor: 0.5
100-
multiplier: 1.5
10193
`

internal/controller/state/conditions/conditions.go

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -49,10 +49,6 @@ const (
4949
// as another route.
5050
RouteReasonHostnameConflict v1.RouteConditionReason = "HostnameConflict"
5151

52-
// RouteReasonGatewayNotProgrammed is used when the associated Gateway is not programmed.
53-
// Used with Accepted (false).
54-
RouteReasonGatewayNotProgrammed v1.RouteConditionReason = "GatewayNotProgrammed"
55-
5652
// RouteReasonUnsupportedConfiguration is used when the associated Gateway does not support the Route.
5753
// Used with Accepted (false).
5854
RouteReasonUnsupportedConfiguration v1.RouteConditionReason = "UnsupportedConfiguration"
@@ -493,17 +489,6 @@ func NewRouteUnsupportedConfiguration(msg string) Condition {
493489
}
494490
}
495491

496-
// NewRouteGatewayNotProgrammed returns a Condition that indicates that the Gateway it references is not programmed,
497-
// which does not guarantee that the Route has been configured.
498-
func NewRouteGatewayNotProgrammed(msg string) Condition {
499-
return Condition{
500-
Type: string(v1.RouteConditionAccepted),
501-
Status: metav1.ConditionFalse,
502-
Reason: string(RouteReasonGatewayNotProgrammed),
503-
Message: msg,
504-
}
505-
}
506-
507492
// NewRouteInvalidIPFamily returns a Condition that indicates that the Service associated with the Route
508493
// is not configured with the same IP family as the NGINX server.
509494
func NewRouteInvalidIPFamily(msg string) Condition {

internal/controller/status/prepare_requests.go

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@ func PrepareRouteRequests(
2828
l4routes map[graph.L4RouteKey]*graph.L4Route,
2929
routes map[graph.RouteKey]*graph.L7Route,
3030
transitionTime metav1.Time,
31-
nginxReloadRes graph.NginxReloadResult,
3231
gatewayCtlrName string,
3332
) []UpdateRequest {
3433
reqs := make([]UpdateRequest, 0, len(routes))
@@ -38,7 +37,6 @@ func PrepareRouteRequests(
3837
gatewayCtlrName,
3938
r.ParentRefs,
4039
r.Conditions,
41-
nginxReloadRes,
4240
transitionTime,
4341
r.Source.GetGeneration(),
4442
)
@@ -61,7 +59,6 @@ func PrepareRouteRequests(
6159
gatewayCtlrName,
6260
r.ParentRefs,
6361
r.Conditions,
64-
nginxReloadRes,
6562
transitionTime,
6663
r.Source.GetGeneration(),
6764
)
@@ -140,7 +137,6 @@ func prepareRouteStatus(
140137
gatewayCtlrName string,
141138
parentRefs []graph.ParentRef,
142139
conds []conditions.Condition,
143-
nginxReloadRes graph.NginxReloadResult,
144140
transitionTime metav1.Time,
145141
srcGeneration int64,
146142
) v1.RouteStatus {
@@ -169,13 +165,6 @@ func prepareRouteStatus(
169165
allConds = append(allConds, ref.Attachment.FailedConditions...)
170166
}
171167

172-
if nginxReloadRes.Error != nil {
173-
allConds = append(
174-
allConds,
175-
conditions.NewRouteGatewayNotProgrammed(conditions.RouteMessageFailedNginxReload),
176-
)
177-
}
178-
179168
conds := conditions.DeduplicateConditions(allConds)
180169
apiConds := conditions.ConvertConditions(conds, srcGeneration, transitionTime)
181170

internal/controller/status/prepare_requests_test.go

Lines changed: 0 additions & 105 deletions
Original file line numberDiff line numberDiff line change
@@ -432,7 +432,6 @@ func TestBuildHTTPRouteStatuses(t *testing.T) {
432432
map[graph.L4RouteKey]*graph.L4Route{},
433433
routes,
434434
transitionTime,
435-
graph.NginxReloadResult{},
436435
gatewayCtlrName,
437436
)
438437

@@ -511,7 +510,6 @@ func TestBuildGRPCRouteStatuses(t *testing.T) {
511510
map[graph.L4RouteKey]*graph.L4Route{},
512511
routes,
513512
transitionTime,
514-
graph.NginxReloadResult{},
515513
gatewayCtlrName,
516514
)
517515

@@ -588,7 +586,6 @@ func TestBuildTLSRouteStatuses(t *testing.T) {
588586
routes,
589587
map[graph.RouteKey]*graph.L7Route{},
590588
transitionTime,
591-
graph.NginxReloadResult{},
592589
gatewayCtlrName,
593590
)
594591

@@ -605,108 +602,6 @@ func TestBuildTLSRouteStatuses(t *testing.T) {
605602
}
606603
}
607604

608-
func TestBuildRouteStatusesNginxErr(t *testing.T) {
609-
t.Parallel()
610-
const gatewayCtlrName = "controller"
611-
612-
hr1 := &v1.HTTPRoute{
613-
ObjectMeta: metav1.ObjectMeta{
614-
Namespace: "test",
615-
Name: "hr-valid",
616-
Generation: 3,
617-
},
618-
Spec: v1.HTTPRouteSpec{
619-
CommonRouteSpec: commonRouteSpecValid,
620-
},
621-
}
622-
623-
routeKey := graph.CreateRouteKey(hr1)
624-
625-
gwNsName := types.NamespacedName{Namespace: "test", Name: "gateway"}
626-
627-
routes := map[graph.RouteKey]*graph.L7Route{
628-
routeKey: {
629-
Valid: true,
630-
RouteType: graph.RouteTypeHTTP,
631-
Source: hr1,
632-
ParentRefs: []graph.ParentRef{
633-
{
634-
Idx: 0,
635-
Gateway: &graph.ParentRefGateway{NamespacedName: gwNsName},
636-
Attachment: &graph.ParentRefAttachmentStatus{
637-
Attached: true,
638-
},
639-
SectionName: commonRouteSpecValid.ParentRefs[0].SectionName,
640-
},
641-
},
642-
},
643-
}
644-
645-
transitionTime := helpers.PrepareTimeForFakeClient(metav1.Now())
646-
647-
expectedStatus := v1.HTTPRouteStatus{
648-
RouteStatus: v1.RouteStatus{
649-
Parents: []v1.RouteParentStatus{
650-
{
651-
ParentRef: v1.ParentReference{
652-
Namespace: helpers.GetPointer(v1.Namespace(gwNsName.Namespace)),
653-
Name: v1.ObjectName(gwNsName.Name),
654-
SectionName: helpers.GetPointer[v1.SectionName]("listener-80-1"),
655-
},
656-
ControllerName: gatewayCtlrName,
657-
Conditions: []metav1.Condition{
658-
{
659-
Type: string(v1.RouteConditionResolvedRefs),
660-
Status: metav1.ConditionTrue,
661-
ObservedGeneration: 3,
662-
LastTransitionTime: transitionTime,
663-
Reason: string(v1.RouteReasonResolvedRefs),
664-
Message: "All references are resolved",
665-
},
666-
{
667-
Type: string(v1.RouteConditionAccepted),
668-
Status: metav1.ConditionFalse,
669-
ObservedGeneration: 3,
670-
LastTransitionTime: transitionTime,
671-
Reason: string(conditions.RouteReasonGatewayNotProgrammed),
672-
Message: conditions.RouteMessageFailedNginxReload,
673-
},
674-
},
675-
},
676-
},
677-
},
678-
}
679-
680-
g := NewWithT(t)
681-
682-
k8sClient := createK8sClientFor(&v1.HTTPRoute{})
683-
684-
for _, r := range routes {
685-
err := k8sClient.Create(context.Background(), r.Source)
686-
g.Expect(err).ToNot(HaveOccurred())
687-
}
688-
689-
updater := NewUpdater(k8sClient, logr.Discard())
690-
691-
reqs := PrepareRouteRequests(
692-
map[graph.L4RouteKey]*graph.L4Route{},
693-
routes,
694-
transitionTime,
695-
graph.NginxReloadResult{Error: errors.New("test error")},
696-
gatewayCtlrName,
697-
)
698-
699-
g.Expect(reqs).To(HaveLen(1))
700-
701-
updater.Update(context.Background(), reqs...)
702-
703-
var hr v1.HTTPRoute
704-
705-
err := k8sClient.Get(context.Background(), routeKey.NamespacedName, &hr)
706-
g.Expect(err).ToNot(HaveOccurred())
707-
g.Expect(helpers.Diff(expectedStatus, hr.Status)).To(BeEmpty())
708-
}
709-
710605
func TestBuildGatewayClassStatuses(t *testing.T) {
711606
t.Parallel()
712607
transitionTime := helpers.PrepareTimeForFakeClient(metav1.Now())

tests/results/dp-perf/edge/edge-oss.md

Lines changed: 25 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -6,27 +6,27 @@ NGINX Plus: false
66

77
NGINX Gateway Fabric:
88

9-
- Commit: 9155a2b6a8d3179165797ef3e789e97283f7a695
10-
- Date: 2025-03-15T07:17:11Z
9+
- Commit: 635b3fcd6e643f4bd24ebbd4c901619a030c4bc0
10+
- Date: 2025-09-15T17:56:13Z
1111
- Dirty: false
1212

1313
GKE Cluster:
1414

1515
- Node count: 12
16-
- k8s version: v1.31.6-gke.1020000
16+
- k8s version: v1.33.4-gke.1036000
1717
- vCPUs per node: 16
18-
- RAM per node: 65851340Ki
18+
- RAM per node: 65851528Ki
1919
- Max pods per node: 110
2020
- Zone: us-west1-b
2121
- Instance Type: n2d-standard-16
2222

2323
## Test1: Running latte path based routing
2424

2525
```text
26-
Requests [total, rate, throughput] 30000, 1000.02, 1000.00
27-
Duration [total, attack, wait] 30s, 29.999s, 569.726µs
28-
Latencies [min, mean, 50, 90, 95, 99, max] 492.479µs, 670.385µs, 659.036µs, 746.275µs, 777.873µs, 857.407µs, 10.667ms
29-
Bytes In [total, mean] 4800000, 160.00
26+
Requests [total, rate, throughput] 30000, 1000.02, 999.99
27+
Duration [total, attack, wait] 30s, 29.999s, 823.134µs
28+
Latencies [min, mean, 50, 90, 95, 99, max] 701.612µs, 944.922µs, 913.567µs, 1.064ms, 1.127ms, 1.318ms, 19.252ms
29+
Bytes In [total, mean] 4770000, 159.00
3030
Bytes Out [total, mean] 0, 0.00
3131
Success [ratio] 100.00%
3232
Status Codes [code:count] 200:30000
@@ -36,23 +36,23 @@ Error Set:
3636
## Test2: Running coffee header based routing
3737

3838
```text
39-
Requests [total, rate, throughput] 29999, 1000.00, 999.98
40-
Duration [total, attack, wait] 30s, 29.999s, 665.107µs
41-
Latencies [min, mean, 50, 90, 95, 99, max] 518.165µs, 707.025µs, 693.839µs, 792.941µs, 827.269µs, 914.615µs, 9.399ms
42-
Bytes In [total, mean] 4829839, 161.00
39+
Requests [total, rate, throughput] 30000, 1000.02, 999.98
40+
Duration [total, attack, wait] 30s, 29.999s, 1.086ms
41+
Latencies [min, mean, 50, 90, 95, 99, max] 709.701µs, 978.507µs, 947.668µs, 1.092ms, 1.16ms, 1.369ms, 18.067ms
42+
Bytes In [total, mean] 4800000, 160.00
4343
Bytes Out [total, mean] 0, 0.00
4444
Success [ratio] 100.00%
45-
Status Codes [code:count] 200:29999
45+
Status Codes [code:count] 200:30000
4646
Error Set:
4747
```
4848

4949
## Test3: Running coffee query based routing
5050

5151
```text
52-
Requests [total, rate, throughput] 30000, 1000.03, 1000.01
53-
Duration [total, attack, wait] 30s, 29.999s, 715.919µs
54-
Latencies [min, mean, 50, 90, 95, 99, max] 535.068µs, 708.655µs, 696.175µs, 794.741µs, 829.728µs, 926.641µs, 9.422ms
55-
Bytes In [total, mean] 5070000, 169.00
52+
Requests [total, rate, throughput] 30000, 1000.01, 999.98
53+
Duration [total, attack, wait] 30.001s, 30s, 907.607µs
54+
Latencies [min, mean, 50, 90, 95, 99, max] 754.461µs, 1.003ms, 978.075µs, 1.155ms, 1.226ms, 1.387ms, 10.062ms
55+
Bytes In [total, mean] 5040000, 168.00
5656
Bytes Out [total, mean] 0, 0.00
5757
Success [ratio] 100.00%
5858
Status Codes [code:count] 200:30000
@@ -62,10 +62,10 @@ Error Set:
6262
## Test4: Running tea GET method based routing
6363

6464
```text
65-
Requests [total, rate, throughput] 30000, 1000.02, 1000.00
66-
Duration [total, attack, wait] 30s, 29.999s, 689.244µs
67-
Latencies [min, mean, 50, 90, 95, 99, max] 517.044µs, 689.83µs, 678.3µs, 768.738µs, 802.493µs, 884.763µs, 13.123ms
68-
Bytes In [total, mean] 4740000, 158.00
65+
Requests [total, rate, throughput] 30000, 1000.04, 1000.01
66+
Duration [total, attack, wait] 30s, 29.999s, 832.592µs
67+
Latencies [min, mean, 50, 90, 95, 99, max] 709.117µs, 967.336µs, 940.759µs, 1.083ms, 1.15ms, 1.346ms, 16.037ms
68+
Bytes In [total, mean] 4710000, 157.00
6969
Bytes Out [total, mean] 0, 0.00
7070
Success [ratio] 100.00%
7171
Status Codes [code:count] 200:30000
@@ -75,10 +75,10 @@ Error Set:
7575
## Test5: Running tea POST method based routing
7676

7777
```text
78-
Requests [total, rate, throughput] 30000, 1000.03, 1000.01
79-
Duration [total, attack, wait] 30s, 29.999s, 618.418µs
80-
Latencies [min, mean, 50, 90, 95, 99, max] 506.217µs, 700.343µs, 688.984µs, 785.078µs, 815.876µs, 898.036µs, 9.243ms
81-
Bytes In [total, mean] 4740000, 158.00
78+
Requests [total, rate, throughput] 30000, 1000.04, 1000.00
79+
Duration [total, attack, wait] 30s, 29.999s, 1.005ms
80+
Latencies [min, mean, 50, 90, 95, 99, max] 733.008µs, 1.005ms, 975.492µs, 1.137ms, 1.201ms, 1.382ms, 21.294ms
81+
Bytes In [total, mean] 4710000, 157.00
8282
Bytes Out [total, mean] 0, 0.00
8383
Success [ratio] 100.00%
8484
Status Codes [code:count] 200:30000

0 commit comments

Comments
 (0)