<p>I'm trying to use istio for routing between microservices in my k8s cluster.</p>

<p>In this example, I have the following applications</p>

<p>frontend:v1 which needs to contact backend:v1
frontend:v2 which needs to contact backend:v2</p>

<p>I have created the required istio configs and have got a response with no routing options but when I attempt to setup routing rules so that traffic with labels app=frontend and version=v1 are routed to the backend v1 subset, I get an error 404.</p>

<p>Here is an example of my current VirtualService:</p>

<pre><code>apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: backend-vs
spec:
  hosts:
   - "backend.backend.svc.cluster.local"
  http:
  - match:
    - sourceLabels:
        app: frontend
        version: v1
    route:
    - destination:
      host: backend.backend.svc.cluster.local
      subset: v1
      port:
        number: 5000
</code></pre>

<p>Eventually I want to be able to control which versions from the frontend go to the versioned subset on the backend and iterate these microservices independently.</p>

<p>At present istio returns a 404 error.</p>

<p>If i remove the sourceLabels match I can access the backend service from the frontend pods.</p>

<p>TIA</p>

<p>I was able only to get this route works with <code>sourceLabels:</code> matching criteria by adapting the service to the frontend Pod and adding the related label within my test environment in the similar scenario; so far known issue <a href="https://github.com/istio/istio/issues/7787" rel="nofollow noreferrer">#7787</a>.</p>
