Skip to content

fix(#229): dedupe NO_PROXY — exclude proxy keys from generic env passthrough#237

Merged
saadqbal merged 1 commit into
developfrom
fix/229-no-proxy-dedup
Jun 9, 2026
Merged

fix(#229): dedupe NO_PROXY — exclude proxy keys from generic env passthrough#237
saadqbal merged 1 commit into
developfrom
fix/229-no-proxy-dedup

Conversation

@saadqbal

@saadqbal saadqbal commented Jun 9, 2026

Copy link
Copy Markdown
Contributor

Fixes #236. Found by Cursor Bugbot on the v1.6.0 release PR #235.

jobs-manager's api + pods-monitor containers include tracebloc.proxyEnv (merged, cluster-safe NO_PROXY) AND a generic .Values.env passthrough that re-emitted a user-set NO_PROXY unmerged afterwards. k8s keeps the last duplicate, so the unmerged copy won — dropping cluster-internal entries (.svc, 10.0.0.0/8, …) and routing in-cluster traffic through the proxy. Affects proxy customers (#229's target audience); invisible to non-proxy installs.

Fix: exclude proxy-owned keys from both passthrough loops via a shared $proxyKeys list (proxyEnv stays the sole source). Adds a proxy_env_test regression (custom NO_PROXY + proxy → one merged NO_PROXY, no unmerged copy) for both containers.

Validation: helm unittest 195 pass (+1), render-verified single merged NO_PROXY, non-proxy passthrough intact, lint + 4-platform render clean.

Blocks the v1.6.0 release (#234) — re-cut after this lands on develop.

🤖 Generated with Claude Code


Note

Medium Risk
Affects proxy-enabled installs only but fixes incorrect in-cluster routing; change is narrow Helm template logic with a targeted regression test.

Overview
Fixes a Helm templating bug in jobs-manager-deployment where proxy-related values could be emitted twice: tracebloc.proxyEnv first (merged NO_PROXY + HTTP(S)_PROXY), then again from the generic .Values.env loop.

Kubernetes keeps the last duplicate env entry, so a user-set NO_PROXY without cluster-internal suffixes could override the merged value and send in-cluster traffic (e.g. mysql-client, requests-proxy) through the corporate proxy.

The change introduces a shared $proxyKeys list and skips those keys in both the api and pods-monitor passthrough loops so proxy env comes only from proxyEnv. A helm unittest regression asserts a custom NO_PROXY appears once, merged with cluster defaults, on both containers.

Reviewed by Cursor Bugbot for commit 576761f. Bugbot is set up for automated code reviews on this repo. Configure here.

…passthrough

jobs-manager's api and pods-monitor containers include tracebloc.proxyEnv
(merged, cluster-safe NO_PROXY) AND a generic .Values.env passthrough. The
passthrough re-emitted a user-set NO_PROXY UNMERGED after proxyEnv; k8s keeps
the last duplicate, so the unmerged copy won — dropping the cluster-internal
entries (.svc, 10.0.0.0/8, ...) and routing in-cluster traffic through the
proxy. Exclude proxy-owned keys (via a shared $proxyKeys list) from both
passthrough loops so proxyEnv is the sole source.

Adds a proxy_env_test regression (custom NO_PROXY + proxy -> single merged
NO_PROXY, no unmerged copy) for both jobs-manager containers.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@saadqbal saadqbal self-assigned this Jun 9, 2026
@saadqbal saadqbal merged commit dce8692 into develop Jun 9, 2026
18 checks passed
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.

3 participants