I know that Kubernetes Ingress Controller reaching up the pods directly via IPs, because it is required for sticky sessions or weight-based routing but it also causes a "cannot validate certificate because it doesn't contain any IP SANs" error when routing to https endpoints. As workaround in case when sticky sessions are not needed is anything wrong with routing traffic through the ExternalName service pointing to ClusterIP service hostname and issue the certificate for https endpoint with SAN equal to ClusterIP hostname? Example:
kind: Service
metadata:
name: example-app-external-service
spec:
type: ExternalName
externalName: example-app-internal-service
---
kind: Service
metadata:
name: example-app-internal-service
spec:
type: ClusterIP
selector:
app: example-app
ports:
- port: 80
---
kind: IngressRoute
spec:
routes:
- services:
- kind: Service
name: example-app-external-service
port: 80
scheme: https