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:
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
Description:
When using merged gateways deployment mode, a Gateway can remain
Programmed=Falsewith reasonAddressNotAssignedeven though the shared Envoy Service is reachable and has an IP assigned through anEnvoyProxystrategic merge patch onService.spec.externalIPs.I am using merged gateways mode and my setup is working with the functionnally:
EnvoyProxystrategic merge patchpatch look like this:
However the gateway says they are unprogrammed:
Because no adresses is assigned directly in the gateway.
Expected behavior:
Actual behavior:
From the current implementation, this seems to happen because: