Skip to content

api: support HTTP and Image sources for EnvoyProxy wasmModules, deprecate inline Wasm code - #10167

Draft
zhaohuabing wants to merge 4 commits into
envoyproxy:mainfrom
zhaohuabing:wasm-module-remote-sources
Draft

zhaohuabing wants to merge 4 commits into
envoyproxy:mainfrom
zhaohuabing:wasm-module-remote-sources

Conversation

@zhaohuabing

@zhaohuabing zhaohuabing commented Oct 2, 2026 •

Copy link
Copy Markdown
Member

Follow-up to #9530. EnvoyProxy wasmModules can now register HTTP and OCI Image modules as well as Local ones, so every Wasm source can be managed centrally and referenced from an EnvoyExtensionPolicy by name.

Inline wasm[].code on EnvoyExtensionPolicy is now deprecated in favor of the registry.

@netlify

netlify Bot commented Oct 2, 2026 •

Copy link
Copy Markdown

✅ Deploy Preview for cerulean-figolla-1f9435 ready!

Name Link
🔨 Latest commit d0958c6
🔍 Latest deploy log https://app.netlify.com/projects/cerulean-figolla-1f9435/deploys/6ae42410218f93c0cd93f0ab
😎 Deploy Preview https://deploy-preview-10167--cerulean-figolla-1f9435.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@zhaohuabing
zhaohuabing force-pushed the wasm-module-remote-sources branch from 957e8e7 to c8c8cf5 Compare October 2, 2026 12:55
@codecov

codecov Bot commented Oct 2, 2026 •

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 85.00000% with 39 lines in your changes missing coverage. Please review.
✅ Project coverage is 82.21%. Comparing base (44b1a63) to head (d0958c6).
⚠️ Report is 2 commits behind head on main.

Files with missing lines Patch % Lines
internal/gatewayapi/envoyextensionpolicy.go 85.02% 25 Missing ⚠️
internal/provider/kubernetes/controller.go 61.90% 8 Missing ⚠️
internal/provider/kubernetes/predicates.go 87.87% 4 Missing ⚠️
internal/provider/kubernetes/indexers.go 93.75% 2 Missing ⚠️
Additional details and impacted files
@@           Coverage Diff            @@
##             main   #10167    +/-   ##
========================================
  Coverage   82.20%   82.21%            
========================================
  Files         277      277            
  Lines       44014    44164   +150     
========================================
+ Hits        36183    36308   +125     
- Misses       7830     7855    +25     
  Partials        1        1            

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@zhaohuabing
zhaohuabing force-pushed the wasm-module-remote-sources branch from c8c8cf5 to 91b4f17 Compare October 2, 2026 13:07
@zhaohuabing
zhaohuabing force-pushed the wasm-module-remote-sources branch 3 times, most recently from 46e9306 to 21e340d Compare October 8, 2026 07:28
…cate inline Wasm code

EnvoyProxy.spec.wasmModules only accepted Local sources, so HTTP and OCI
modules still had to be defined inline in each EnvoyExtensionPolicy.
Add HTTP and Image source types to the registry, reusing the existing
HTTPWasmCodeSource and ImageWasmCodeSource shapes plus pullPolicy, with
CEL rules that keep exactly one source set per type.

Registered HTTP and Image modules go through the existing Wasm cache,
sharing one code path with inline wasm[].code. Each module is resolved
against the EnvoyProxy level that declares it, not the merged
EnvoyProxy: its pull secret and CA certificate must be in that
EnvoyProxy's namespace, and its cache entry follows that EnvoyProxy's
resource version for the Always pull policy. Modules in the EnvoyGateway
default spec resolve refs in the controller namespace.

The Kubernetes provider fetches those Secrets, ConfigMaps and
ClusterTrustBundles and indexes them so a change triggers a reconcile.

Deprecate EnvoyExtensionPolicy.wasm[].code in favor of registering the
module centrally and referencing it by wasm[].name. Policies that still
use it get a DeprecatedField warning.

Signed-off-by: Huabing (Robin) Zhao <zhaohuabing@gmail.com>
Signed-off-by: Huabing (Robin) Zhao <huabing@tetrate.io>
@zhaohuabing
zhaohuabing force-pushed the wasm-module-remote-sources branch from 21e340d to 68a87e8 Compare October 8, 2026 07:38
@zhaohuabing
zhaohuabing marked this pull request as ready for review October 8, 2026 07:45
@zhaohuabing
zhaohuabing requested a review from a team as a code owner October 8, 2026 07:45
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 8, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ⚠️ Failed 2026-10-08T07:46:14.259414Z 68a87e8 Draft marked ready
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@zirain

zirain commented Oct 8, 2026

Copy link
Copy Markdown
Member

Gernal LGTM from my side, should we add warning message in status to help the migration?

@zhaohuabing
zhaohuabing marked this pull request as draft October 8, 2026 23:03
Resolve conflict in internal/provider/kubernetes/controller.go: main moved the
per-GatewayClass reconcile loop body into reconcileGatewayClass, so re-apply the
default EnvoyProxy spec Wasm module ref processing there.

Signed-off-by: Huabing (Robin) Zhao <zhaohuabing@gmail.com>
@zhaohuabing

Copy link
Copy Markdown
Member Author

/retest

zhaohuabing and others added 2 commits October 26, 2026 04:55
Signed-off-by: Huabing (Robin) Zhao <huabing@tetrate.io>
Signed-off-by: Huabing (Robin) Zhao <zhaohuabing@gmail.com>
@github-actions github-actions Bot added the area/api API-related issues label Oct 30, 2026

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/api API-related issues

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants