Skip to content

Conversation

@mgs255
Copy link

@mgs255 mgs255 commented Dec 8, 2025

Introduce EnvoyProxyTemplate in EnvoyGateway provider configuration to define default settings for all Envoy Proxy deployments. This establishes a 3-level hierarchy: Template → GatewayClass → Gateway, where settings at each level override those from lower levels, with Gateway settings having the highest precedence.

All non scalar fields (env vars, volumes, volumeMounts, annotations etc) are now merged rather than replaced, allowing settings to be combined across all three levels.

  • Add EnvoyProxyTemplate field to EnvoyGatewayKubernetesProvider API
  • Add EnvoyProxyTemplate field to Translator for template access
  • Create MergeEnvoyProxyConfigs to support 3-level merge hierarchy
  • Update IsMergeGatewaysEnabled to be aware of the template.
  • Add strategic merge patch directives to enable array field merging
  • Add table-driven tests in testdata/envoyproxy-merge/

Fixes: #4764

@mgs255 mgs255 force-pushed the allow-provide-default-proxy-image branch 2 times, most recently from 7da24bf to 02beef5 Compare December 8, 2025 10:56
@mgs255 mgs255 force-pushed the allow-provide-default-proxy-image branch 3 times, most recently from fd2a520 to 0ae8e1d Compare December 10, 2025 17:21
@mgs255 mgs255 marked this pull request as ready for review December 10, 2025 17:26
@mgs255 mgs255 requested a review from a team as a code owner December 10, 2025 17:26
@codecov
Copy link

codecov bot commented Dec 10, 2025

Codecov Report

❌ Patch coverage is 75.00000% with 13 lines in your changes missing coverage. Please review.
✅ Project coverage is 72.35%. Comparing base (76d4076) to head (c198efe).
⚠️ Report is 6 commits behind head on main.

Files with missing lines Patch % Lines
internal/gatewayapi/contexts.go 53.84% 5 Missing and 1 partial ⚠️
internal/gatewayapi/envoyproxy_merge.go 83.33% 2 Missing and 2 partials ⚠️
internal/gatewayapi/runner/runner.go 0.00% 2 Missing ⚠️
api/v1alpha1/envoygateway_helpers.go 80.00% 1 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main    #7698      +/-   ##
==========================================
- Coverage   72.40%   72.35%   -0.06%     
==========================================
  Files         234      235       +1     
  Lines       34562    34609      +47     
==========================================
+ Hits        25026    25041      +15     
- Misses       7748     7772      +24     
- Partials     1788     1796       +8     

☔ View full report in Codecov by Sentry.
📢 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.

@mgs255 mgs255 force-pushed the allow-provide-default-proxy-image branch from 0ae8e1d to 804ff4b Compare December 15, 2025 07:45
@mgs255 mgs255 marked this pull request as draft December 15, 2025 07:46
@mgs255 mgs255 force-pushed the allow-provide-default-proxy-image branch 4 times, most recently from 23b261c to ff220ab Compare December 16, 2025 18:16
@mgs255 mgs255 marked this pull request as ready for review December 16, 2025 18:22
@mgs255 mgs255 force-pushed the allow-provide-default-proxy-image branch 2 times, most recently from 4b9211d to e5283b6 Compare December 17, 2025 10:24
Introduce EnvoyProxyTemplate in EnvoyGateway provider configuration to define default settings for all Envoy Proxy deployments. This establishes a 3-level hierarchy: Template → GatewayClass → Gateway, where settings at each level override those from lower levels, with Gateway settings having the highest precedence.

All non scalar fields (env vars, volumes, volumeMounts, annotations etc) are now merged rather than replaced, allowing settings to be combined across all three levels.

  - Add EnvoyProxyTemplate field to EnvoyGatewayKubernetesProvider API
  - Add EnvoyProxyTemplate field to Translator for template access
  - Create MergeEnvoyProxyConfigs to support 3-level merge hierarchy
  - Update IsMergeGatewaysEnabled to be aware of the template.
  - Add strategic merge patch directives to enable array field merging
  - Add table-driven tests in testdata/envoyproxy-merge/

Fixes: envoyproxy#4764
Signed-off-by: Michael Sommerville <msommerville@gmail.com>
@mgs255 mgs255 force-pushed the allow-provide-default-proxy-image branch from e5283b6 to c198efe Compare December 17, 2025 11:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Support configuring envoyproxy infra attributes in the Helm chart

4 participants