Open ju187 opened 2 years ago
This issue is stale because it has been open 60 days with no activity.
This issue is stale because it has been open 60 days with no activity.
I think we're seeing this as well, in a use case where we need to make an orchestrated breaking change, and want to deploy side-by-side copies.
We have one rollout pointing at one workload and the v1 routes/destination subsets, and a second pointing at v2.
Ends up breaking the destination rule.
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
spec:
gateways:
- example-gateway
hosts:
- example.com
http:
- match:
- uri:
prefix: /
headers:
flagged:
exact: blue
name: blue
route:
- destination:
host: example.default.svc.cluster.local
subset: v2-stable
weight: 100
- destination:
host: example.default.svc.cluster.local
subset: v2-canary
weight: 0
- match:
- uri:
prefix: /
name: green
route:
- destination:
host: example.default.svc.cluster.local
subset: v1-stable
weight: 100
- destination:
host: example.default.svc.cluster.local
subset: v1-canary
weight: 0
metadata:
name: example-vs
strategy:
canary:
steps:
- setWeight: 25
- pause:
duration: 5m
trafficRouting:
istio:
virtualService:
name: example-vs
routes:
- green
destinationRule:
canarySubsetName: v1-canary
name: example-dr
stableSubsetName: v1-stable
workloadRef:
apiVersion: apps/v1
kind: Deployment
name: example-deployment
(x2 of these)
apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
spec:
host: example.default.svc.cluster.local
subsets:
- labels:
app.kubernetes.io/name: example-deployment-svc
split: green
name: v1-stable
- labels:
app.kubernetes.io/name: example-deployment-svc
split: green
name: v1-canary
- labels:
app.kubernetes.io/name: example-deployment-svc
split: blue
name: v2-stable
- labels:
app.kubernetes.io/name: example-deployment-svc
split: blue
name: v2-canary
This issue is stale because it has been open 60 days with no activity.
Summary
Currently subset traffic splitting support virtualservice with a single destinationrule. In the case of a virtual with multiple destination/subset, argo rollout could support one destination. Is there a workaround for this except break the virtualservice?
Use Cases
You can see it also uses subset in the VirtualService. Apparently, it's only possible to set one subset for a destination. The subset in the multi-deployment helm chart and the Argo Rollout Subset-Level Traffic Splitting are used for totally different purposes. Thus, Argo Rollout Subset-Level Traffic Splitting will run into issues with subset in VirtualService. The VS is like this:
apiVersion: networking.istio.io/v1beta1 kind: VirtualService metadata: name: test-gateway-vs namespace: eu1-test spec: http:
Message from the maintainers:
Impacted by this bug? Give it a 👍. We prioritize the issues with the most 👍.