Problem
Agent pods with AuthBridge sidecar injection cannot make outbound HTTPS calls to external endpoints (e.g., LLM APIs, MaaS proxies). The weather-service agent gets openai.APIConnectionError: Connection error. when calling litellm-prod.apps.maas.redhatworkshops.io:443.
Root Cause
proxy-init (init-iptables.sh line 225) has a catch-all rule that redirects ALL outbound TCP to Envoy port 15123:
iptables -t nat -A PROXY_OUTPUT -p tcp -j REDIRECT --to-port 15123
OUTBOUND_PORTS_EXCLUDE is hardcoded to "8080" (Keycloak port) in container_builder.go:439:
{
Name: "OUTBOUND_PORTS_EXCLUDE",
Value: "8080",
},
Port 443 is not excluded, so outbound HTTPS to any external endpoint gets redirected to the Envoy outbound listener. The Envoy ext_proc handles HTTP token exchange for in-cluster services but cannot passthrough external HTTPS connections.
Evidence
- Plain pods in the same namespace (with
ambient.istio.io/redirection: enabled) can reach external HTTPS endpoints — confirmed by kubectl exec test on strm24
- Pods without AuthBridge sidecar (strm24 weather-service, no webhook injection) reach the MaaS endpoint fine (HTTP 401 = connected)
- Pods with AuthBridge sidecar (
proxy-init:v0.6.0-alpha.3) get Connection error — confirmed on every HyperShift CI run since May 16
- Previous version worked:
authbridge-envoy:v0.5.0-rc.2 (before the proxy rename/architecture change) did not have this issue — CI passed on May 15
Proposed Fix
Add port 443 to OUTBOUND_PORTS_EXCLUDE in container_builder.go:
{
Name: "OUTBOUND_PORTS_EXCLUDE",
Value: "8080,443",
},
Or better — make it configurable via annotation or operator config so workloads can specify additional excluded ports without rebuilding the webhook.
Impact
- All HyperShift E2E CI runs fail (agent conversation tests)
- Any agent workload that needs to call external HTTPS APIs (LLM, webhooks, external tools) is broken
- Kind CI is unaffected (no AuthBridge sidecar injection on Kind)
Environment
proxy-init:v0.6.0-alpha.3
authbridge:v0.6.0-alpha.3
- Istio ambient mode
- OCP 4.20.21 HyperShift
Problem
Agent pods with AuthBridge sidecar injection cannot make outbound HTTPS calls to external endpoints (e.g., LLM APIs, MaaS proxies). The weather-service agent gets
openai.APIConnectionError: Connection error.when callinglitellm-prod.apps.maas.redhatworkshops.io:443.Root Cause
proxy-init(init-iptables.shline 225) has a catch-all rule that redirects ALL outbound TCP to Envoy port 15123:OUTBOUND_PORTS_EXCLUDEis hardcoded to"8080"(Keycloak port) incontainer_builder.go:439:{ Name: "OUTBOUND_PORTS_EXCLUDE", Value: "8080", },Port 443 is not excluded, so outbound HTTPS to any external endpoint gets redirected to the Envoy outbound listener. The Envoy ext_proc handles HTTP token exchange for in-cluster services but cannot passthrough external HTTPS connections.
Evidence
ambient.istio.io/redirection: enabled) can reach external HTTPS endpoints — confirmed bykubectl exectest on strm24proxy-init:v0.6.0-alpha.3) getConnection error— confirmed on every HyperShift CI run since May 16authbridge-envoy:v0.5.0-rc.2(before the proxy rename/architecture change) did not have this issue — CI passed on May 15Proposed Fix
Add port 443 to
OUTBOUND_PORTS_EXCLUDEincontainer_builder.go:{ Name: "OUTBOUND_PORTS_EXCLUDE", Value: "8080,443", },Or better — make it configurable via annotation or operator config so workloads can specify additional excluded ports without rebuilding the webhook.
Impact
Environment
proxy-init:v0.6.0-alpha.3authbridge:v0.6.0-alpha.3