feat(kubernetes): support corporate upstream proxy - #2633
Conversation
|
All contributors have signed the DCO ✍️ ✅ |
26493d1 to
78250e4
Compare
johntmyers
left a comment
There was a problem hiding this comment.
gator-agent
PR Review Status
Validation: Project-valid as a focused Kubernetes-driver extension of the corporate upstream-proxy support merged in #2245, with the Kubernetes-specific operator path and motivation documented in #2624.
Head SHA: 78250e45a3ade0622f167be52f1499e190ecc917
Base SHA: 0c7e59a95355cabc15ccaddb86fcbe6a1d30eaaa
Merge base SHA: d2c44b0e5393e3746eae5783aa99ac31be08daae
Patch ID: 5db52dea1e5bdc062384aa8edc68b640bfa32b9d
Gator payload: 4
Review mode: initial
Previous reviewed SHA: none
Review budget exhausted: no
Maintainer decision required: no
Blocking findings:
GATOR-78250e45-01: Kubernetes Secret keys longer than 253 bytes pass gateway validation even though Kubernetes cannot create them, shifting an invalid deployment setting into repeated sandbox Pod-provisioning failures.
Carried findings:
- None
Non-blocking suggestions:
- Consider adding corporate-proxy checks to
debug-openshell-clusterfor rendered configuration, Secret-volume events, supervisor arguments/mounts, and proxy reachability.
Docs: Fern documentation covers the new Kubernetes setup and gateway/compute-driver configuration; existing navigation already exposes those pages.
Next state: gator:in-review
|
Thanks @loveRhythm1990 - started our review agent. I'm also soliciting some reviews from other maintainers. |
|
I took a pass on this and wasn't able to identify any issues beyond the one already highlighted by John's agent. Nice work |
Signed-off-by: loveRhythm1990 <qiuweimin@126.com>
…t create Gateway validation accepted proxy_auth_secret_key values that Kubernetes rejects when creating the Secret (keys longer than 253 bytes, or the reserved "."/".." names), turning an invalid deployment setting into repeated sandbox Pod-provisioning failures instead of a startup error. Reject them in validate_upstream_proxy_config so they fail closed at gateway startup. Signed-off-by: loveRhythm1990 <qiuweimin@126.com>
…luster Add a Kubernetes corporate upstream proxy troubleshooting section covering rendered [openshell.drivers.kubernetes] configuration, credential Secret volume events, supervisor arguments and mounts confined to the network- supervising container, and proxy reachability. Signed-off-by: loveRhythm1990 <qiuweimin@126.com>
78250e4 to
f727a8d
Compare
|
recheck |
|
Label |
johntmyers
left a comment
There was a problem hiding this comment.
gator-agent
PR Review Status
Thanks @loveRhythm1990. I checked your update that rejects Kubernetes Secret keys over 253 bytes and the reserved ./.. names, including the 253-byte accepted and 254-byte rejected boundary tests. That resolves GATOR-78250e45-01. I also checked the author-only troubleshooting-skill update; it addresses the earlier non-blocking suggestion.
Validation: Project-valid as a focused Kubernetes-driver extension of the corporate upstream-proxy support, with the Kubernetes-specific operator path and motivation documented in accepted issue #2624.
Head SHA: f727a8d7128ff46cd8222482fdc1cf9893887bb7
Base SHA: c4b500a7de64d0b66e3ee8098f58d14299092162
Merge base SHA: c4b500a7de64d0b66e3ee8098f58d14299092162
Patch ID: d090894f5d8ca10c405cc12c83dc9c82038f991a
Gator payload: 4
Review mode: follow_up
Previous reviewed SHA: 78250e45a3ade0622f167be52f1499e190ecc917
Review budget exhausted: no
Maintainer decision required: no
Blocking findings:
- No blocking findings remain.
Carried findings:
GATOR-78250e45-01: resolved by the latest author delta.
Docs: Fern documentation covers the user-visible Kubernetes proxy configuration, and the debug-cluster skill now covers rendered configuration, Secret-volume events, supervisor arguments and mounts, and proxy reachability.
Next state: gator:in-review pending confirmation that the newly requested current-head E2E workflow has been queued, started, or completed.
|
/ok to test f727a8d |
Monitoring CompleteMonitoring is complete because this PR has merged. Head SHA: Final status: The PR reached I removed the active |
Summary
Add Kubernetes support for the existing supervisor corporate HTTP forward-proxy path. This lets sandboxes in proxy-only clusters reach policy-approved TLS destinations through an operator-managed proxy without allowing workloads to choose, bypass, or observe the upstream route.
The Kubernetes driver previously had no configuration or Secret-projection path for the shared supervisor feature that Podman already uses. This PR adds that driver-level plumbing while preserving direct egress as the default when no proxy is configured.
Related Issue
Closes #2624
Changes
https_proxy,no_proxy, proxy credential Secret name/key, insecure Basic-auth acknowledgement, and CONNECT-by-hostname mode. The URL remains intentionally limited tohttp://forward proxies; HTTPS-to-proxy support is out of scope.upstreamProxyvalues, while keeping it deployment-owned rather than allowing per-sandboxdriver_configoverrides.topology = \"sidecar\"whenever proxy credentials are configured. Combined topology shares a container filesystem with the workload, and workspacefsGroupcan make an otherwise root-only Secret mount group-readable; rejecting this combination avoids a credential disclosure path. Credential-free proxy configuration can still use Combined topology.network-initnever receives proxy configuration and the agent container never receives the credential mount.Testing
mise run pre-commitpassesNO_PROXYbypasses only the corporate proxy; policy-denied traffic remains deniedmise run testhas one unrelated environment-dependent DNS failure:test_forward_public_ip_allowed_without_allowed_ipsresolveddns.googleto198.18.1.240, which the SSRF guard correctly rejects. All Kubernetes proxy-specific checks above passed.Checklist