Canary deployment of istio

Hello All,

I am trying to create the canary deployment using istio virtual service. The requirement is 100% traffic is on v1 and now we have new version v2 which is 0% traffic, before redirect 1% traffic to v2 the internal testing team wants to check the service and once got the signed off then only 1 % traffic move to v2. Now I have created the canary deployment with weight but I am not able to hit the v2 without weight. I am also posting the manifest file here for reference

apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: {{ .Values.ingress.name }}-ingress-vs
namespace: {{ .Values.namespace }}
spec:
hosts:

  • “*”
    gateways:
  • {{ .Values.ingress.name }}-ingress-gw
    http:
  • headers:
    version:
    exact: new
    uri:
    prefix: /{{ .Values.prob }}
    route:
    • destination:
      port:
      number: 8080 # can be omitted if it’s the only port for reviews
      host: {{ include “zee5.fullname” . }}-service.{{ .Values.namespace }}.svc.cluster.local
      subset: v2
  • match:
    • uri:
      prefix: /{{ .Values.prob }}
      route:
    • destination:
      port:
      number: 8080 # can be omitted if it’s the only port for reviews
      host: {{ include “zee5.fullname” . }}-service.{{ .Values.namespace }}.svc.cluster.local
      subset: v1
      weight: 50
    • destination:
      port:
      number: 8080 # can be omitted if it’s the only port for reviews
      host: {{ include “zee5.fullname” . }}-service.{{ .Values.namespace }}.svc.cluster.local
      subset: v2
      weight: 50

Hi @BADAL-KUMAR-SAHU,
I don’t know if I understand your issue but if you need to assign only 1% of the traffic to v2, you can assign weight 99 to v1 and weight 1 to V2.

Regard

I want to do Focused canary testing