You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- primary #optional if there is a single route in VirtualService, required otherwise
53
53
steps:
54
54
- setWeight: 5
55
55
- pause:
@@ -60,7 +60,7 @@ The VirtualService must contain an HTTP route with a name referenced in the Roll
60
60
two route destinations with `host` values that match the `canaryService` and `stableService`
61
61
referenced in the Rollout. If the VirtualService is defined in a different namespace than the rollout,
62
62
its name should be `rollout-vsvc.<vsvc namespace name>`. Note that Istio requires that all weights add to
63
-
100, so the initial weights can be be 100% to stable, and 0% to canary.
63
+
100, so the initial weights can be 100% to stable, and 0% to canary.
64
64
65
65
```yaml
66
66
apiVersion: networking.istio.io/v1alpha3
@@ -85,7 +85,7 @@ spec:
85
85
86
86
Finally, a canary and stable Service should be deployed. The selector of these Services will be
87
87
modified by the Rollout during an update to target the canary and stable ReplicaSet pods.
88
-
Note that if virtualservice and destionation host reside in different namespaces (e.g., virtualservice and rollout are not in the same namespace), we should use FQDN as the destination host like `stable-svc.<namespace>`.
88
+
Note that if the VirtualService and destination host resides in different namespaces (e.g., VirtualService and Rollout are not in the same namespace), the namespace should be included in the destination host (e.g. `stable-svc.<namespace>`).
89
89
90
90
```yaml
91
91
apiVersion: v1
@@ -127,7 +127,7 @@ During the lifecycle of a Rollout update, Argo Rollouts will continuously:
127
127
128
128
!!! note
129
129
130
-
Rollout does not make any other assumptions about the fields within the Virtual Service or the Istio mesh. The user could specify additional configurations for the virtual service like URI rewrite rules on the primary route or any other route if desired. The user can also create specific destination rules for each of the services.
130
+
Rollout does not make any other assumptions about the fields within the VirtualService or the Istio mesh. The user could specify additional configurations for the VirtualService like URI rewrite rules on the primary route or any other route if desired. The user can also create specific DestinationRules for each of the services.
131
131
132
132
133
133
## Subset-level Traffic Splitting
@@ -162,7 +162,7 @@ spec:
162
162
virtualService:
163
163
name: rollout-vsvc # required
164
164
routes:
165
-
- primary # required
165
+
- primary # optional if there is a single route in VirtualService, required otherwise
166
166
destinationRule:
167
167
name: rollout-destrule # required
168
168
canarySubsetName: canary # required
@@ -173,7 +173,7 @@ spec:
173
173
duration: 10m
174
174
```
175
175
176
-
A single service should be defined, which target the Rollout pods. Note that unlike the first
176
+
A single service should be defined, which targets the Rollout pods. Note that unlike the first
177
177
approach, where traffic splitting is against multiple Services which are modified to contain the
178
178
rollout-pod-template-hash of the canary/stable ReplicaSets, this Service is not modified by
179
179
the rollout controller.
@@ -195,8 +195,8 @@ spec:
195
195
196
196
The VirtualService must contain an HTTP route with a name referenced in the Rollout, containing
197
197
two route destinations with `subset` values that match the `canarySubsetName` and `stableSubsetName`
198
-
referenced in the Rollout. Note that Istio require that all weights add to 100, so the initial
199
-
weights can be be 100% to stable, and 0% to canary.
198
+
referenced in the Rollout. Note that Istio requires that all weights add to 100, so the initial
199
+
weights can be 100% to stable, and 0% to canary.
200
200
201
201
```yaml
202
202
apiVersion: networking.istio.io/v1alpha3
@@ -254,11 +254,11 @@ splitting.
254
254
### DNS requirements
255
255
256
256
With host-level splitting, the VirtualService requires different `host` values to split among the
257
-
two destinations. However, using two host values implies that there are different DNS names. For
258
-
north-south traffic, which reach the service through the Istio Gateway, having multiple DNS names to
259
-
reach the canary vs. stable pods may not matter. However, for east-west traffic that happen inside
260
-
the cluster, it forces microservice-to-microservice communication to choose whether to hit the
261
-
stable or the canary DNS name, go through the gateway, or add DNS entries for the virtualservices.
257
+
two destinations. However, using two host values implies the use of different DNS names (one for
258
+
the canary, the other for the stable). For north-south traffic, which reaches the Service through
259
+
the Istio Gateway, having multiple DNS names to reach the canary vs. stable pods may not matter.
260
+
However, for east-west or intra-cluster traffic, it forces microservice-to-microservice communication to choose whether to hit the
261
+
stable or the canary DNS name, go through the gateway, or add DNS entries for the VirtualServices.
262
262
In this situation, the DestinationRule subset traffic splitting would be a better option for
263
263
intra-cluster canarying.
264
264
@@ -358,7 +358,7 @@ other controllers (e.g. Argo Rollouts) controller manage them instead.
358
358
359
359
An early design alternative was that instead of the controller modifying a referenced VirtualService, the Rollout controller would create, manage, and own a Virtual Service. While this approach is GitOps friendly, it introduces other issues:
360
360
361
-
* To provide the same flexibility as referencing VirtualService within a Rollout, the Rollout needs to inline a large portion of the Istio spec. However, networking is outside the responsibility of the Rollout and makes the Rollout spec unnecessary complicated.
361
+
* To provide the same flexibility as referencing VirtualService within a Rollout, the Rollout needs to inline a large portion of the Istio spec. However, networking is outside the responsibility of the Rollout and makes the Rollout spec unnecessarily complicated.
362
362
* If Istio introduces a feature, that feature will not be available in Argo Rollouts until implemented within Argo Rollouts.
363
363
364
364
Both of these issues adds more complexity to the users and Argo Rollouts developers compared to referencing a Virtual Service.
0 commit comments