An individual ingress backed by a service requires an annotation ingress.bluemix.net/rewrite-path
to get rewriting of the url. Managing multiple services in code is error-prone. Is there a way to define multiple individual ingress objects and have them all merged by the loadbalancer? It does not seem to work this way out of the box.
Yes. You can have them on different namespaces you can read more about it here
You can also read about it on this Github issue
You can also have multiple ingress controllers for example with nginx ingress controller by specifying the --ingress-class
option on the nginx ingress controller command line. More information here.
The IKS documentation lays out a few different scenarios for managing ingress. It sounds like you're looking to handle multiple apps, but it's not clear if you're doing this in one namespace or multiple namespaces. If multiple namespaces, it does require multiple ingress resources. If in one namespace, you have some more flexibility on how to structure your ingress files: https://console.bluemix.net/docs/containers/cs_ingress.html#multiple_namespaces