Can I reuse exposecontroller for my apps?

You should be able to use exposecontroller directly in any app you deploy in any environment (e.g. Staging or Production) as we already trigger exposecontroller on each new release.

We use exposecontroller for Jenkins X to handle the generation of Ingress resources so that we can support wildcard DNS on a domain or automate the setup of HTTPS/TLS along with injecting external endpoints into applications in ConfigMaps via annotations.

To get exposecontroller to generate the Ingress for a Service just add the label to your Service. e.g. add this to your charts/myapp/templates/service.yaml :

apiVersion: v1
kind: Service
metadata:
  name: myapp
  annotations:
    fabric8.io/expose: "true"

If you want to inject the URL or host name of the external URL or your ingress just use these annotations.