Skip to content

Gateway stays Programmed=False when Envoy Svc externalIPs is set via EnvoyProxy patch #8987

Description

@jvlxz

Description:
When using merged gateways deployment mode, a Gateway can remain Programmed=False with reason AddressNotAssigned even though the shared Envoy Service is reachable and has an IP assigned through an EnvoyProxy strategic merge patch on Service.spec.externalIPs.

I am using merged gateways mode and my setup is working with the functionnally:

  • traffic is routed correctly
  • the shared Envoy Service has the expected IP
  • the IP is assigned through an EnvoyProxy strategic merge patch

patch look like this:

spec:
  provider:
    kubernetes:
      envoyService:
        patch:
          type: StrategicMerge
          value:
            spec:
              externalIPs:
              - 10.19.160.11
              externalTrafficPolicy: Local

However the gateway says they are unprogrammed:

Image

Because no adresses is assigned directly in the gateway.

Expected behavior:

  • In merged mode, if the selected Envoy Service has usable spec.externalIPs, Gateway status should surface those addresses and the Gateway should not remain Programmed=False with AddressNotAssigned.

Actual behavior:

  • Gateway status address stays empty
  • Programmed=False
  • reason appears to be AddressNotAssigned

From the current implementation, this seems to happen because:

  • for LoadBalancer Services, Gateway status addresses are populated from service.status.loadBalancer.ingress
  • service.spec.externalIPs is only considered when Gateway.spec.addresses is explicitly set
  • if no status addresses are produced, Gateway becomes Programmed=False with AddressNotAssigned

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions