Skip to content

Commit 75fece3

Browse files
authored
Merge branch 'main' into dym-lb-policy
2 parents 5fced38 + 5ed1c4c commit 75fece3

45 files changed

Lines changed: 9329 additions & 165 deletions

File tree

Some content is hidden

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

.github/workflows/build_and_test.yaml

Lines changed: 41 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -124,15 +124,28 @@ jobs:
124124
filter: ${{ github.ref == 'refs/heads/main' && 'tree:0' || '' }}
125125
- uses: ./tools/github-actions/setup-deps
126126

127-
- name: Build EG Multiarch Binaries
128-
run: make build-multiarch PLATFORMS="linux_amd64 linux_arm64"
127+
# Build both linux/amd64 and linux/arm64 on main (needed for multi-arch image publish),
128+
# and only linux/amd64 on PRs and release branches.
129+
- name: Build EG Binaries
130+
run: make build-multiarch BINS="envoy-gateway" PLATFORMS="${{ github.ref == 'refs/heads/main' && 'linux_amd64 linux_arm64' || 'linux_amd64' }}"
129131

130132
- name: Upload EG Binaries
131133
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
132134
with:
133135
name: envoy-gateway
134136
path: bin/
135137

138+
build-egctl:
139+
runs-on: ubuntu-latest
140+
needs: [changes, lint, gen-check, license-check, coverage-test]
141+
if: ${{ github.event_name != 'pull_request' || needs.changes.outputs.run_test_workflow == 'true' }}
142+
steps:
143+
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
144+
- uses: ./tools/github-actions/setup-deps
145+
146+
- name: Build egctl Binary
147+
run: make build BINS="egctl" PLATFORM="linux_amd64"
148+
136149
conformance-test:
137150
runs-on: ubuntu-latest
138151
needs:
@@ -179,9 +192,7 @@ jobs:
179192
path: bin/
180193

181194
- name: Give Privileges To EG Binaries
182-
run: |
183-
chmod +x bin/linux/amd64/envoy-gateway
184-
chmod +x bin/linux/arm64/envoy-gateway
195+
run: chmod +x bin/linux/*/envoy-gateway
185196

186197
# conformance
187198
- name: Run Standard Conformance Tests
@@ -194,6 +205,7 @@ jobs:
194205
# set ACTIONS_STEP_DEBUG to true if context runner.debug is '1',
195206
# which means to dump the current state when there's a case failed.
196207
ACTIONS_STEP_DEBUG: ${{ runner.debug == '1' }}
208+
SKIP_GO_BUILD: "true"
197209
run: make conformance
198210

199211
e2e-test:
@@ -238,9 +250,7 @@ jobs:
238250
path: bin/
239251

240252
- name: Give Privileges To EG Binaries
241-
run: |
242-
chmod +x bin/linux/amd64/envoy-gateway
243-
chmod +x bin/linux/arm64/envoy-gateway
253+
run: chmod +x bin/linux/*/envoy-gateway
244254

245255
# E2E
246256
- name: Run E2E Tests
@@ -260,6 +270,7 @@ jobs:
260270
# set ACTIONS_STEP_DEBUG to true if context runner.debug is '1',
261271
# which means to dump the current state when there's a case failed.
262272
ACTIONS_STEP_DEBUG: ${{ runner.debug == '1' }}
273+
SKIP_GO_BUILD: "true"
263274
run: make e2e
264275

265276
benchmark-test:
@@ -274,6 +285,14 @@ jobs:
274285
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
275286
- uses: ./tools/github-actions/setup-deps
276287

288+
- name: Download EG Binaries
289+
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
290+
with:
291+
name: envoy-gateway
292+
path: bin/
293+
294+
- name: Give Privileges To EG Binaries
295+
run: chmod +x bin/linux/*/envoy-gateway
277296

278297
# Benchmark
279298
- name: Run Benchmark tests
@@ -287,6 +306,7 @@ jobs:
287306
BENCHMARK_MEMORY_LIMITS: 2000Mi
288307
BENCHMARK_REPORT_DIR: benchmark_report
289308
BENCHMARK_RENDER_PNG: "false"
309+
SKIP_GO_BUILD: "true"
290310
run: make benchmark
291311

292312
- name: Upload Benchmark report
@@ -304,10 +324,21 @@ jobs:
304324
steps:
305325
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
306326
- uses: ./tools/github-actions/setup-deps
327+
328+
- name: Download EG Binaries
329+
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
330+
with:
331+
name: envoy-gateway
332+
path: bin/
333+
334+
- name: Give Privileges To EG Binaries
335+
run: chmod +x bin/linux/*/envoy-gateway
336+
307337
- name: Resilience Test
308338
env:
309339
IMAGE_PULL_POLICY: IfNotPresent
310340
CUSTOM_CNI: "true"
341+
SKIP_GO_BUILD: "true"
311342
run: make resilience
312343

313344
publish:
@@ -325,9 +356,7 @@ jobs:
325356
path: bin/
326357

327358
- name: Give Privileges To EG Binaries
328-
run: |
329-
chmod +x bin/linux/amd64/envoy-gateway
330-
chmod +x bin/linux/arm64/envoy-gateway
359+
run: chmod +x bin/linux/*/envoy-gateway
331360

332361
# build and push image
333362
- name: Login to DockerHub
@@ -363,6 +392,7 @@ jobs:
363392
- license-check
364393
- coverage-test
365394
- build
395+
- build-egctl
366396
- conformance-test
367397
- e2e-test
368398
- benchmark-test

api/v1alpha1/ext_auth_types.go

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,29 @@ type ExtAuth struct {
6464
// +optional
6565
RecomputeRoute *bool `json:"recomputeRoute,omitempty"`
6666

67+
// IncludeRouteMetadata sends Envoy Gateway's built-in route metadata to the
68+
// external authorization service as context.
69+
//
70+
// This includes Envoy Gateway's built-in metadata for the selected route in
71+
// the "envoy-gateway" metadata namespace.
72+
//
73+
// The metadata is exposed under the "resources" field as a list of route
74+
// resource objects. For example:
75+
//
76+
// envoy-gateway:
77+
// resources:
78+
// - kind: HTTPRoute
79+
// name: backend
80+
// namespace: default
81+
// annotations:
82+
// foo: bar
83+
//
84+
// The resource object may include fields such as kind, namespace, name,
85+
// sectionName, and supported route annotations.
86+
//
87+
// +optional
88+
IncludeRouteMetadata *bool `json:"includeRouteMetadata,omitempty"`
89+
6790
// ContextExtensions are analogous to http_request.headers, however these
6891
// contents will not be sent to the upstream server. This provides an
6992
// extension mechanism for sending additional information to the auth server

api/v1alpha1/zz_generated.deepcopy.go

Lines changed: 5 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

charts/gateway-addons-helm/Chart.lock

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
dependencies:
22
- name: prometheus
33
repository: https://prometheus-community.github.io/helm-charts
4-
version: 29.1.0
4+
version: 29.2.1
55
- name: grafana
66
repository: https://grafana.github.io/helm-charts
77
version: 10.5.15
@@ -19,6 +19,6 @@ dependencies:
1919
version: 1.3.1
2020
- name: opentelemetry-collector
2121
repository: https://open-telemetry.github.io/opentelemetry-helm-charts
22-
version: 0.147.2
23-
digest: sha256:17fdc01e5a85cef9c1c943f00de8be2edecefbfdd442f6a94aaa7aa41c6ba855
24-
generated: "2026-04-08T04:30:45.827362158Z"
22+
version: 0.150.0
23+
digest: sha256:a280a7ff86e2eb03ceddb82202ca0fbf429fa02690863bd0a3a1f30fa1d4ae85
24+
generated: "2026-04-15T04:32:15.769343149Z"

charts/gateway-addons-helm/Chart.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ sources:
2626

2727
dependencies:
2828
- name: prometheus
29-
version: 29.1.0
29+
version: 29.2.1
3030
repository: https://prometheus-community.github.io/helm-charts
3131
condition: prometheus.enabled
3232
- name: grafana
@@ -51,5 +51,5 @@ dependencies:
5151
condition: tempo.enabled
5252
- name: opentelemetry-collector
5353
repository: https://open-telemetry.github.io/opentelemetry-helm-charts
54-
version: 0.147.2
54+
version: 0.150.0
5555
condition: opentelemetry-collector.enabled

charts/gateway-addons-helm/README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,8 @@ An Add-ons Helm chart for Envoy Gateway
2626
| https://grafana.github.io/helm-charts | grafana | 10.5.15 |
2727
| https://grafana.github.io/helm-charts | loki | 6.55.0 |
2828
| https://grafana.github.io/helm-charts | tempo | 1.3.1 |
29-
| https://open-telemetry.github.io/opentelemetry-helm-charts | opentelemetry-collector | 0.147.2 |
30-
| https://prometheus-community.github.io/helm-charts | prometheus | 29.1.0 |
29+
| https://open-telemetry.github.io/opentelemetry-helm-charts | opentelemetry-collector | 0.150.0 |
30+
| https://prometheus-community.github.io/helm-charts | prometheus | 29.2.1 |
3131

3232
## Usage
3333

@@ -172,7 +172,7 @@ helm uninstall eg-addons -n monitoring
172172
| opentelemetry-collector.enabled | bool | `false` | |
173173
| opentelemetry-collector.fullnameOverride | string | `"otel-collector"` | |
174174
| opentelemetry-collector.image.repository | string | `"otel/opentelemetry-collector-contrib"` | |
175-
| opentelemetry-collector.image.tag | string | `"0.149.0"` | |
175+
| opentelemetry-collector.image.tag | string | `"0.150.1"` | |
176176
| opentelemetry-collector.mode | string | `"deployment"` | |
177177
| opentelemetry-collector.ports.datadog.containerPort | int | `8126` | |
178178
| opentelemetry-collector.ports.datadog.enabled | bool | `true` | |

charts/gateway-addons-helm/values.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -868,7 +868,7 @@ opentelemetry-collector:
868868
mode: deployment
869869
image:
870870
repository: "otel/opentelemetry-collector-contrib"
871-
tag: "0.149.0"
871+
tag: "0.150.1"
872872
config:
873873
exporters:
874874
prometheus:

charts/gateway-crds-helm/templates/generated/gateway.envoyproxy.io_securitypolicies.yaml

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3520,6 +3520,28 @@ spec:
35203520
rule: 'has(self.backendRefs) ? (self.backendRefs.all(f, f.group
35213521
== "" || f.group == ''multicluster.x-k8s.io'' || f.group ==
35223522
''gateway.envoyproxy.io'')) : true'
3523+
includeRouteMetadata:
3524+
description: |-
3525+
IncludeRouteMetadata sends Envoy Gateway's built-in route metadata to the
3526+
external authorization service as context.
3527+
3528+
This includes Envoy Gateway's built-in metadata for the selected route in
3529+
the "envoy-gateway" metadata namespace.
3530+
3531+
The metadata is exposed under the "resources" field as a list of route
3532+
resource objects. For example:
3533+
3534+
envoy-gateway:
3535+
resources:
3536+
- kind: HTTPRoute
3537+
name: backend
3538+
namespace: default
3539+
annotations:
3540+
foo: bar
3541+
3542+
The resource object may include fields such as kind, namespace, name,
3543+
sectionName, and supported route annotations.
3544+
type: boolean
35233545
recomputeRoute:
35243546
description: |-
35253547
RecomputeRoute clears the route cache and recalculates the routing decision.

charts/gateway-helm/charts/crds/crds/generated/gateway.envoyproxy.io_securitypolicies.yaml

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3519,6 +3519,28 @@ spec:
35193519
rule: 'has(self.backendRefs) ? (self.backendRefs.all(f, f.group
35203520
== "" || f.group == ''multicluster.x-k8s.io'' || f.group ==
35213521
''gateway.envoyproxy.io'')) : true'
3522+
includeRouteMetadata:
3523+
description: |-
3524+
IncludeRouteMetadata sends Envoy Gateway's built-in route metadata to the
3525+
external authorization service as context.
3526+
3527+
This includes Envoy Gateway's built-in metadata for the selected route in
3528+
the "envoy-gateway" metadata namespace.
3529+
3530+
The metadata is exposed under the "resources" field as a list of route
3531+
resource objects. For example:
3532+
3533+
envoy-gateway:
3534+
resources:
3535+
- kind: HTTPRoute
3536+
name: backend
3537+
namespace: default
3538+
annotations:
3539+
foo: bar
3540+
3541+
The resource object may include fields such as kind, namespace, name,
3542+
sectionName, and supported route annotations.
3543+
type: boolean
35223544
recomputeRoute:
35233545
description: |-
35243546
RecomputeRoute clears the route cache and recalculates the routing decision.

examples/envoy-ext-auth/go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ require (
77
github.com/golang/protobuf v1.5.4
88
google.golang.org/genproto/googleapis/rpc v0.0.0-20260128011058-8636f8732409
99
google.golang.org/grpc v1.80.0
10+
google.golang.org/protobuf v1.36.11
1011
)
1112

1213
require (
@@ -16,5 +17,4 @@ require (
1617
golang.org/x/net v0.51.0 // indirect
1718
golang.org/x/sys v0.41.0 // indirect
1819
golang.org/x/text v0.34.0 // indirect
19-
google.golang.org/protobuf v1.36.11 // indirect
2020
)

0 commit comments

Comments
 (0)