get_services() now also includes the container named by
maintenance-service: in its container_ports map, so the
maintenance pod's {app_name}-{pod_name}-service gets created
permanently. _restart_with_maintenance can then swap Ingress
backends to a real Service that has Endpoints.
The Service is only externally reachable during the Ingress swap
window; outside of that, no Ingress rule routes to it, so it sits
idle as a warm standby (matching the maintenance pod itself).
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>