<p>I already have some services in my k8s cluster and want to mantain them separately. Examples:</p>

<ul>
<li>grafana with custom dashboards and custom dockerfile</li>
<li>prometheus-operator instead of basic prometheus</li>
<li>jaeger pointing to elasticsearch as internal storage</li>
<li>certmanager in my own namespace (also I use it for nginx-ingress legacy routing)</li>
</ul>

<p>Is it possible to use existing instances instead of creating istio-specific ones? Can istio communicate with them or it's hardcoded?</p>

<p>Yes - it is possible to use external services with istio. You can disable grafana and prometheus just by setting proper flags in values.yaml of istio helm chart (grafana.enabled=false, etc).
You can check <a href="https://github.com/kyma-project" rel="nofollow noreferrer">kyma-project</a> project to see how istio is integrated with prometheus-operator, grafana deployment with custom dashboards, and custom jaeger deployment. From your list only certmanager is missing.</p>
