Skip to content

fix(helm): define default EnvoyProxy image#9163

Open
Aditya7880900936 wants to merge 2 commits into
envoyproxy:mainfrom
Aditya7880900936:fix-9144-envoyproxy-image-default
Open

fix(helm): define default EnvoyProxy image#9163
Aditya7880900936 wants to merge 2 commits into
envoyproxy:mainfrom
Aditya7880900936:fix-9144-envoyproxy-image-default

Conversation

@Aditya7880900936

Copy link
Copy Markdown
Contributor

What type of PR is this?

fix(helm): define default EnvoyProxy image in gateway-helm chart

What this PR does / why we need it:

This PR sets global.images.envoyProxy.image in charts/gateway-helm/values.tmpl.yaml to the same default image used by DefaultEnvoyProxyImage.

Previously, the Helm chart left this value empty and relied on the controller-side default image. As a result, the Envoy proxy image was not visible in rendered Helm manifests, making it difficult for image discovery, mirroring, and air-gapped deployment workflows that scan rendered manifests.

This change keeps the Helm chart default aligned with the controller default and ensures the Envoy image appears in rendered chart output.

Additionally, this PR updates the release documentation to ensure the Helm chart value is updated alongside DefaultEnvoyProxyImage during future releases, and regenerates the corresponding Helm documentation and golden test outputs.

Which issue(s) this PR fixes:

Fixes #9144

Release Notes: No

@Aditya7880900936
Aditya7880900936 requested a review from a team as a code owner June 4, 2026 05:41
@netlify

netlify Bot commented Jun 4, 2026

Copy link
Copy Markdown

Deploy Preview for cerulean-figolla-1f9435 ready!

Name Link
🔨 Latest commit 72245e7
🔍 Latest deploy log https://app.netlify.com/projects/cerulean-figolla-1f9435/deploys/6a593ef3ff78d10008f9c64b
😎 Deploy Preview https://deploy-preview-9163--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.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 5f0847b73e

ℹ️ About Codex in GitHub

Codex has been enabled to automatically 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".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Comment thread charts/gateway-helm/values.tmpl.yaml
@codecov

codecov Bot commented Jun 4, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 75.42%. Comparing base (2621405) to head (72245e7).

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #9163   +/-   ##
=======================================
  Coverage   75.42%   75.42%           
=======================================
  Files         252      252           
  Lines       41642    41642           
=======================================
  Hits        31408    31408           
+ Misses       8102     8101    -1     
- Partials     2132     2133    +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.

@Aditya7880900936

Copy link
Copy Markdown
Contributor Author

Hi @zhaohuabing , please have a look on this PR and feel free to suggest any changes

1 similar comment
@Aditya7880900936

Copy link
Copy Markdown
Contributor Author

Hi @zhaohuabing , please have a look on this PR and feel free to suggest any changes

@zhaohuabing

Copy link
Copy Markdown
Member

@codex review

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: bf861bf149

ℹ️ 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".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread charts/gateway-helm/values.tmpl.yaml
Comment thread site/content/en/community/RELEASING.md Outdated
@Aditya7880900936
Aditya7880900936 force-pushed the fix-9144-envoyproxy-image-default branch from bf861bf to 2794157 Compare July 3, 2026 12:50
@Aditya7880900936

Copy link
Copy Markdown
Contributor Author

Thanks for the suggestion @zhaohuabing ! I've updated the merge logic so that the image override is applied to envoyDaemonSet.container when envoyDaemonSet is configured, to envoyDeployment.container when envoyDeployment is configured, and otherwise defaults to envoyDeployment. I also addressed the remaining review comments by removing the stray character in RELEASING.md and adding a release note.

@Aditya7880900936

Copy link
Copy Markdown
Contributor Author

hi @zhaohuabing , please have a look on this PR and feel free to suggest any changes

@zhaohuabing zhaohuabing left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could we add a helm test for config.envoyGateway.envoyProxy.provider.kubernetes.envoyDaemonSet to assert image lands under envoyDaemonSet?

@zhaohuabing zhaohuabing added this to the v1.9.0-rc.1 Release milestone Jul 9, 2026

@zhaohuabing zhaohuabing left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The non-empty default causes the chart to overwrite an Envoy proxy image supplied through the config.envoyGateway.envoyProxy path. This makes envoyProxy behave differently from every other image in the chart — ratelimit (config…rateLimitDeployment.container.image) and the control-plane image (deployment.envoyGateway.image.*) both let the more specific/inline setting win over the global knob. We should keep that consistent.

Repro (config-only, no global override — regresses vs. the current release):

config:
  envoyGateway:
    envoyProxy:
      provider:
        kubernetes:
          envoyDeployment:
            container:
              image: private-hub/envoyproxy/envoy:custom   # gets replaced by distroless-dev

The root cause is a .Values mutation: mustMergeOverwrite shares nested-map references and mutates .Values.config.envoyGateway.envoyProxy in place, so the user's image is gone before the ConfigMap's outer merge runs. Please wrap the base with deepCopy:

- {{- $merged := mustMergeOverwrite (dict) $envoyProxyBase $imageOverride }}
+ {{- $merged := mustMergeOverwrite (dict) (deepCopy $envoyProxyBase) $imageOverride }}

This makes an inline config image win — consistent with ratelimit.

Two more asks before this is ready:

  1. Add snapshot coverage for the new logic — one case with an inline config proxy image (asserting it's preserved), and one with envoyDaemonSet (asserting the image lands under envoyDaemonSet and the daemonset config is retained). The envoyDaemonSet branch is currently untested.
  2. In the release note, mention that an inline config proxy image now takes precedence over global.images.envoyProxy.image, matching ratelimit/control-plane behavior.

@Aditya7880900936
Aditya7880900936 force-pushed the fix-9144-envoyproxy-image-default branch from 2794157 to 07d08f9 Compare July 9, 2026 19:40
@Aditya7880900936

Copy link
Copy Markdown
Contributor Author

Hi @zhaohuabing ,
Addressed the review feedback:

  • Updated the merge logic to use deepCopy before mustMergeOverwrite to avoid mutating the original values.
  • Added Helm regression tests covering both:
    • envoyDaemonSet image injection from global.images.envoyProxy.image
    • Existing inline envoyDeployment.container.image override behavior.
  • Rebased the branch on the latest main and resolved the merge conflicts.

Thanks for the review!

@zhaohuabing

Copy link
Copy Markdown
Member

@Aditya7880900936 could you please fix the gen check?

@Aditya7880900936
Aditya7880900936 force-pushed the fix-9144-envoyproxy-image-default branch 7 times, most recently from c229bba to 0f5d597 Compare July 16, 2026 20:13
Signed-off-by: Aditya7880900936 <adityasanskarsrivastav788@gmail.com>
@Aditya7880900936
Aditya7880900936 force-pushed the fix-9144-envoyproxy-image-default branch from 0f5d597 to 37f95e7 Compare July 16, 2026 20:15
Signed-off-by: Aditya7880900936 <adityasanskarsrivastav788@gmail.com>
@Aditya7880900936
Aditya7880900936 force-pushed the fix-9144-envoyproxy-image-default branch from 37f95e7 to 72245e7 Compare July 16, 2026 20:28
@Aditya7880900936

Aditya7880900936 commented Jul 16, 2026

Copy link
Copy Markdown
Contributor Author

Hi @zhaohuabing,

I've been investigating the gen-check failure locally.

I rebased onto the latest main and reran make generate, make helm-template, and make -k gen-check. The only differences being reported are the generated gateway-dev:<git-sha> image tags in the new Helm golden outputs. Since the Helm generation uses the current Git commit SHA for the default controller image tag, every new amend/rebase changes those generated outputs again.

The functional changes introduced by this PR remain the same; only the generated controller image tag differs.

Is there an expected way to make these Helm golden outputs deterministic, or am I missing an additional regeneration step for these test fixtures?

Thanks!

1 similar comment
@Aditya7880900936

Copy link
Copy Markdown
Contributor Author

Hi @zhaohuabing,

I've been investigating the gen-check failure locally.

I rebased onto the latest main and reran make generate, make helm-template, and make -k gen-check. The only differences being reported are the generated gateway-dev:<git-sha> image tags in the new Helm golden outputs. Since the Helm generation uses the current Git commit SHA for the default controller image tag, every new amend/rebase changes those generated outputs again.

The functional changes introduced by this PR remain the same; only the generated controller image tag differs.

Is there an expected way to make these Helm golden outputs deterministic, or am I missing an additional regeneration step for these test fixtures?

Thanks!

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.

Helm: Set compatible proxy image in global.images.envoyProxy.image

2 participants