Skip to content

bug: proxy-init OUTBOUND_PORTS_EXCLUDE missing port 443 — blocks external HTTPS from agent pods #428

Description

@Ladas

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    Projects

    Status
    Done

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions