Skip to content

release: client chart 1.6.1 — proxy-key exclusion gate (#238) + appVersion lockstep#239

Merged
saadqbal merged 3 commits into
developfrom
fix/238-gate-proxy-key-exclusion
Jun 9, 2026
Merged

release: client chart 1.6.1 — proxy-key exclusion gate (#238) + appVersion lockstep#239
saadqbal merged 3 commits into
developfrom
fix/238-gate-proxy-key-exclusion

Conversation

@saadqbal

@saadqbal saadqbal commented Jun 9, 2026

Copy link
Copy Markdown
Contributor

Cuts client chart 1.6.1 as a fast-follow to the (still-unpublished) 1.6.0, bundling two release-hygiene fixes plus the version bump. All verified on develop: 196 helm-unittest pass, lint + 4-platform render (aks/bm/eks/oc) clean.

Chart: version 1.6.0 → 1.6.1, appVersion 1.5.1 → 1.6.1 (kept in lockstep).


1. Closes #238 — gate proxy-key exclusion on HTTP_PROXY_HOST

Refines #236 (already on develop), flagged by Cursor Bugbot on release PR #235.

Problem (upgrade regression): #236 excluded the proxy-owned keys (HTTP_PROXY/HTTPS_PROXY/NO_PROXY/… + the HTTP_PROXY_* inputs) from jobs-manager's generic .Values.env passthrough unconditionally, intending tracebloc.proxyEnv to be the sole source. But proxyEnv only emits when HTTP_PROXY_HOST is set (_helpers.tpl:215). When it's unset, proxyEnv renders nothing and the passthrough now drops a directly-set env.HTTP_PROXY (a full proxy URL — the pre-1.6.0 way to configure a corporate proxy). Clusters that used the raw HTTP_PROXY value instead of HTTP_PROXY_HOST lose backend/registry egress on upgrade.

Fix: build $proxyKeys empty and only populate it when .Values.env.HTTP_PROXY_HOST is set (mirrors proxyEnv's own gate). The passthrough loops already key off $proxyKeys:

Regression test: a direct env.HTTP_PROXY + NO_PROXY with no HTTP_PROXY_HOST passes through on both jobs-manager containers. Confirmed it fails (4 asserts) against the unconditional #236 template and passes against the gate. Render-verified both scenarios.

2. Restore Chart version/appVersion lockstep

The 1.6.0 bump (#231) moved version 1.5.1 → 1.6.0 but left appVersion at "1.5.1" — every prior release (1.1.0 … 1.5.1) bumped both together. tracebloc.labels emits app.kubernetes.io/version from .Chart.AppVersion, so the chart labelled every resource (and reported to cluster info, which reads that standard label) with a stale app version while helm.sh/chart was correct — two disagreeing version signals. The 1.6.1 bump sets both fields to 1.6.1.

3. Bump chart → 1.6.1

Ship #1 and #2 as 1.6.1 (per #238's "land as 1.6.1 / fast-follow") rather than folding into the unpublished 1.6.0.


Release sequencing

  • 1.6.0 (from the frozen sync/develop-to-main-v1.6.0 branch behind Sync develop → main for v1.6.0 chart release #235) is unaffected — it ships, or not, as its own historical release without these fixes. develop moves to the 1.6.1 line here.
  • After merge: a develop→main sync + GitHub Release v1.6.1 triggers release-helm-chart.yaml → publishes client-1.6.1 to gh-pages.

🤖 Generated with Claude Code


Note

Low Risk
Scoped to jobs-manager env templating and chart metadata; restores prior proxy passthrough when HTTP_PROXY_HOST is unset without changing the HTTP_PROXY_HOST-driven path.

Overview
Fixes an upgrade regression (#238) in jobs-manager proxy handling and bumps the Helm chart to 1.6.1 with aligned version / appVersion.

Proxy (#238): The jobs-manager template now builds the proxy-key exclusion list only when env.HTTP_PROXY_HOST is set—the same condition tracebloc.proxyEnv uses. With the host unset, direct env.HTTP_PROXY / NO_PROXY values pass through the generic .Values.env loop again (pre-1.6.0 behavior). With the host set, #229 behavior is unchanged: proxyEnv owns merged proxy vars and passthrough must not re-emit duplicates.

Chart: Chart.yaml moves to 1.6.1 for both version and appVersion.

Tests: New helm-unittest cases assert both jobs-manager containers keep verbatim HTTP_PROXY and NO_PROXY when HTTP_PROXY_HOST is absent.

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

…irectly-set env.HTTP_PROXY

#236 excluded the proxy-owned keys (HTTP_PROXY/HTTPS_PROXY/NO_PROXY/… plus
the HTTP_PROXY_* inputs) from jobs-manager's generic .Values.env passthrough
UNCONDITIONALLY, so tracebloc.proxyEnv would be the sole source. But proxyEnv
only emits when HTTP_PROXY_HOST is set — when it is UNSET, proxyEnv renders
nothing AND the passthrough now drops a directly-set env.HTTP_PROXY (a full
proxy URL, the pre-1.6.0 way to configure a corporate proxy). Net effect:
clusters that set the raw HTTP_PROXY value instead of HTTP_PROXY_HOST lose
backend/registry egress behind their corporate proxy on upgrade to 1.6.0 — an
upgrade regression flagged by Cursor Bugbot on release PR #235.

Gate the exclusion on proxyEnv being active: build $proxyKeys empty and only
populate it when .Values.env.HTTP_PROXY_HOST is set (mirrors proxyEnv's own
gate). When unset, the list stays empty so the passthrough emits directly-set
proxy vars verbatim — prior behavior preserved. When set, the exclusion holds
exactly as in #236 (proxyEnv authoritative; a stray direct HTTP_PROXY dropped).

Adds a proxy_env_test regression: a direct env.HTTP_PROXY + NO_PROXY with no
HTTP_PROXY_HOST passes through on both jobs-manager containers. Confirmed the
test fails (4 asserts) against the unconditional #236 template.

Validation: helm unittest 196 pass (+1 regression); lint clean; 4-platform
render (aks/bm/eks/oc) clean; render-verified both scenarios (direct HTTP_PROXY
survives when host unset; proxyEnv authoritative and stray direct value dropped
when host set).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@saadqbal saadqbal self-assigned this Jun 9, 2026
…on lockstep

The 1.6.0 chart bump (#231) moved Chart.yaml `version` 1.5.1 → 1.6.0 but left
`appVersion` at "1.5.1" — every prior release (1.1.0 … 1.5.1) bumped the two
in lockstep. tracebloc.labels emits `app.kubernetes.io/version` from
.Chart.AppVersion, so a 1.6.0 chart labelled every resource (and reported to
cluster info, which reads that standard label) as app version 1.5.1 while
`helm.sh/chart` correctly said client-1.6.0 — two disagreeing version signals.

Restore lockstep so the published 1.6.0 carries the right app version from the
start (no stale-label 1.6.1 follow-up). No functional/workload change; helm
unittest 196 pass, lint clean, render shows both labels at 1.6.0.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@saadqbal saadqbal changed the title fix(#238): gate proxy-key exclusion on HTTP_PROXY_HOST (preserve direct env.HTTP_PROXY) fix: gate proxy-key exclusion on HTTP_PROXY_HOST (#238) + restore Chart appVersion lockstep (1.6.0) Jun 9, 2026
aptracebloc
aptracebloc previously approved these changes Jun 9, 2026
Ship this PR's fixes as a 1.6.1 fast-follow (per #238) rather than folding
into the still-unpublished 1.6.0: the proxy-key exclusion gate (#238) and the
appVersion lockstep correction. Bumps both version and appVersion together so
they stay in lockstep (the 1.6.0 bump's miss is what stranded appVersion at
1.5.1 in the first place); supersedes the intermediate appVersion=1.6.0 from
the previous commit.

helm unittest 196 pass; lint clean; render shows both labels (app version +
helm.sh/chart) at 1.6.1.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@saadqbal saadqbal dismissed stale reviews from aptracebloc and shujaatTracebloc via 54feeee June 9, 2026 09:13
@saadqbal saadqbal changed the title fix: gate proxy-key exclusion on HTTP_PROXY_HOST (#238) + restore Chart appVersion lockstep (1.6.0) release: client chart 1.6.1 — proxy-key exclusion gate (#238) + appVersion lockstep Jun 9, 2026
@saadqbal saadqbal merged commit 7241c0f into develop Jun 9, 2026
15 checks passed
@saadqbal saadqbal deleted the fix/238-gate-proxy-key-exclusion branch June 9, 2026 09:18
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.

4 participants