Skip to content

Commit 7ef57ac

Browse files
authored
add mesh gateway (#83)
* add mesh gateway Signed-off-by: Michael Kalantar <[email protected]> * update references from hub to iter8 Signed-off-by: Michael Kalantar <[email protected]> * remove reference Signed-off-by: Michael Kalantar <[email protected]> * add in cluster instructions Signed-off-by: Michael Kalantar <[email protected]> --------- Signed-off-by: Michael Kalantar <[email protected]>
1 parent 71ca094 commit 7ef57ac

File tree

11 files changed

+166
-89
lines changed

11 files changed

+166
-89
lines changed

docs/tutorials/autox/autox.md

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ kubectl label deployment httpbin app.kubernetes.io/version=1.0.0
5252
Next, we will configure and install the AutoX controller.
5353

5454
```bash
55-
helm install autox autox --repo https://iter8-tools.github.io/iter8/ --version 0.1.6 \
55+
helm install autox autox --repo https://iter8-tools.github.io/iter8 --version 0.1.6 \
5656
--set 'groups.httpbin.trigger.name=httpbin' \
5757
--set 'groups.httpbin.trigger.namespace=default' \
5858
--set 'groups.httpbin.trigger.group=apps' \
@@ -180,8 +180,6 @@ AutoX is designed to automate a variety of experiments. For example, instead of
180180

181181
Furthermore, you can add additional tasks that ship out-of-the-box with Iter8, in order to enrich the experiments. For example, you can add a `slack` task so that your experiment results will be posted on Slack. That way, you can automatically have the latest performance statistics after every update. Here is the [documentation](../../user-guide/tasks/slack.md) for the `slack` task as well as a [tutorial](../../tutorials/integrations/slack.md) for using the Slack task.
182182

183-
You can also automate experiments that are not from Iter8. For example, a [Litmus Chaos chaos experiment](https://github.com/iter8-tools/iter8/tree/v0.14.5/charts/litmuschaos) is available, which can also be configured with AutoX.
184-
185183
Lastly, recall that you can provide multiple groups and experiment specs so AutoX can launch and manage a whole suite of experiments for multiple Kubernetes applications and namespaces.
186184

187185
## Clean up

docs/tutorials/chaos/slo-validation-chaos.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ Launch the LitmusChaos and Iter8 experiments as described below.
5757
=== "LitmusChaos"
5858
```shell
5959
helm install httpbin litmuschaos \
60-
--repo https://iter8-tools.github.io/iter8/ \
60+
--repo https://iter8-tools.github.io/iter8 \
6161
--set applabel='app=httpbin' \
6262
--set totalChaosDuration=3600 \
6363
--set chaosInterval=5

docs/tutorials/integrations/kserve-mm/blue-green.md

Lines changed: 37 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -85,24 +85,43 @@ kubectl get virtualservice -o yaml wisdom
8585

8686
To send inference requests to the model:
8787

88-
1. In a separate terminal, port-forward the ingress gateway:
89-
```shell
90-
kubectl -n istio-system port-forward svc/istio-ingressgateway 8080:80
91-
```
92-
93-
2. Download the proto file and a sample input:
94-
```shell
95-
curl -sO https://raw.githubusercontent.com/iter8-tools/docs/v0.13.18/samples/modelmesh-serving/kserve.proto
96-
curl -sO https://raw.githubusercontent.com/iter8-tools/docs/v0.13.18/samples/modelmesh-serving/grpc_input.json
97-
```
98-
99-
3. Send inference requests:
100-
```shell
101-
cat grpc_input.json | \
102-
grpcurl -plaintext -proto kserve.proto -d @ \
103-
-authority wisdom.modelmesh-serving \
104-
localhost:8080 inference.GRPCInferenceService.ModelInfer
105-
```
88+
=== "From within the cluster"
89+
1. Create a "sleep" pod in the cluster from which requests can be made:
90+
```shell
91+
curl -s https://raw.githubusercontent.com/iter8-tools/docs/v0.13.18/samples/modelmesh-serving/sleep.sh | sh -
92+
```
93+
94+
2. exec into the sleep pod:
95+
```shell
96+
kubectl exec --stdin --tty "$(kubectl get pod --sort-by={metadata.creationTimestamp} -l app=sleep -o jsonpath={.items..metadata.name} | rev | cut -d' ' -f 1 | rev)" -c sleep -- /bin/sh
97+
```
98+
99+
3. Make inference requests:
100+
```shell
101+
cd demo
102+
cat wisdom.sh
103+
. wisdom.sh
104+
```
105+
106+
=== "From outside the cluster"
107+
1. In a separate terminal, port-forward the ingress gateway:
108+
```shell
109+
kubectl -n istio-system port-forward svc/istio-ingressgateway 8080:80
110+
```
111+
112+
2. Download the proto file and a sample input:
113+
```shell
114+
curl -sO https://raw.githubusercontent.com/iter8-tools/docs/v0.13.18/samples/modelmesh-serving/kserve.proto
115+
curl -sO https://raw.githubusercontent.com/iter8-tools/docs/v0.13.18/samples/modelmesh-serving/grpc_input.json
116+
```
117+
118+
3. Send inference requests:
119+
```shell
120+
cat grpc_input.json | \
121+
grpcurl -plaintext -proto kserve.proto -d @ \
122+
-authority wisdom.modelmesh-serving \
123+
localhost:8080 inference.GRPCInferenceService.ModelInfer
124+
```
106125

107126
Note that the model version responding to each inference request can be determined from the `modelName` field of the response.
108127

docs/tutorials/integrations/kserve-mm/canary.md

Lines changed: 51 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -86,34 +86,57 @@ kubectl get virtualservice -o yaml wisdom
8686

8787
To send inference requests to the model:
8888

89-
1. In a separate terminal, port-forward the ingress gateway:
90-
```shell
91-
kubectl -n istio-system port-forward svc/istio-ingressgateway 8080:80
92-
```
93-
94-
2. Download the proto file and a sample input:
95-
```shell
96-
curl -sO https://raw.githubusercontent.com/iter8-tools/docs/v0.13.18/samples/modelmesh-serving/kserve.proto
97-
curl -sO https://raw.githubusercontent.com/iter8-tools/docs/v0.13.18/samples/modelmesh-serving/grpc_input.json
98-
```
99-
100-
3. Send inference requests:
101-
```shell
102-
cat grpc_input.json | \
103-
grpcurl -plaintext -proto kserve.proto -d @ \
104-
-authority wisdom.modelmesh-serving \
105-
localhost:8080 inference.GRPCInferenceService.ModelInfer
106-
```
107-
108-
or, send request with header `traffic: test`:
109-
110-
```shell
111-
cat grpc_input.json | \
112-
grpcurl -plaintext -proto kserve.proto -d @ \
113-
-H 'traffic: test' \
114-
-authority wisdom.modelmesh-serving \
115-
localhost:8080 inference.GRPCInferenceService.ModelInfer
116-
```
89+
=== "From within the cluster"
90+
1. Create a "sleep" pod in the cluster from which requests can be made:
91+
```shell
92+
curl -s https://raw.githubusercontent.com/iter8-tools/docs/v0.13.18/samples/modelmesh-serving/sleep.sh | sh -
93+
```
94+
95+
2. exec into the sleep pod:
96+
```shell
97+
kubectl exec --stdin --tty "$(kubectl get pod --sort-by={metadata.creationTimestamp} -l app=sleep -o jsonpath={.items..metadata.name} | rev | cut -d' ' -f 1 | rev)" -c sleep -- /bin/sh
98+
```
99+
100+
3. Make inference requests:
101+
```shell
102+
cd demo
103+
cat wisdom.sh
104+
. wisdom.sh
105+
. wisdom-test.sh
106+
```
107+
or, to send a request with header `traffic: test`:
108+
```shell
109+
cat wisdom-test.sh
110+
. wisdom-test.sh
111+
```
112+
113+
=== "From outside the cluster"
114+
1. In a separate terminal, port-forward the ingress gateway:
115+
```shell
116+
kubectl -n istio-system port-forward svc/istio-ingressgateway 8080:80
117+
```
118+
119+
2. Download the proto file and a sample input:
120+
```shell
121+
curl -sO https://raw.githubusercontent.com/iter8-tools/docs/v0.13.18/samples/modelmesh-serving/kserve.proto
122+
curl -sO https://raw.githubusercontent.com/iter8-tools/docs/v0.13.18/samples/modelmesh-serving/grpc_input.json
123+
```
124+
125+
3. Send inference requests:
126+
```shell
127+
cat grpc_input.json | \
128+
grpcurl -plaintext -proto kserve.proto -d @ \
129+
-authority wisdom.modelmesh-serving \
130+
localhost:8080 inference.GRPCInferenceService.ModelInfer
131+
```
132+
or, to send a request with header `traffic: test`:
133+
```shell
134+
cat grpc_input.json | \
135+
grpcurl -plaintext -proto kserve.proto -d @ \
136+
-H 'traffic: test' \
137+
-authority wisdom.modelmesh-serving \
138+
localhost:8080 inference.GRPCInferenceService.ModelInfer
139+
```
117140

118141
Note that the model version responding to each inference request can be determined from the `modelName` field of the response.
119142

docs/tutorials/integrations/kserve-mm/deleteiter8controller.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,12 @@
88
=== "Kustomize"
99
Delete the Iter8 controller using `kustomize` as follows.
1010

11-
=== "cluster scoped"
11+
=== "namespace scoped"
1212
```shell
13-
kubectl delete -k 'https://github.com/iter8-tools/hub.git/kustomize/traffic/clusterScoped?ref=traffic-templates-0.1.1'
13+
kubectl delete -k 'https://github.com/iter8-tools/iter8.git/kustomize/traffic/namespaceScoped?ref=v0.14.4'
1414
```
1515

16-
=== "namespace scoped"
16+
=== "cluster scoped"
1717
```shell
18-
kubectl delete -k 'https://github.com/iter8-tools/hub.git/kustomize/traffic/namespaceScoped?ref=traffic-templates-0.1.1'
18+
kubectl delete -k 'https://github.com/iter8-tools/iter8.git/kustomize/traffic/clusterScoped?ref=v0.14.4'
1919
```

docs/tutorials/integrations/kserve-mm/installiter8controller.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,12 @@
88
=== "Kustomize"
99
Install the Iter8 controller using `kustomize` as follows.
1010

11-
=== "cluster scoped"
11+
=== "namespace scoped"
1212
```shell
13-
kubectl apply -k 'https://github.com/iter8-tools/hub.git/kustomize/traffic/clusterScoped?ref=traffic-templates-0.1.1'
13+
kubectl apply -k 'https://github.com/iter8-tools/iter8.git/kustomize/traffic/namespaceScoped?ref=v0.14.4'
1414
```
1515

16-
=== "namespace scoped"
16+
=== "cluster scoped"
1717
```shell
18-
kubectl apply -k 'https://github.com/iter8-tools/hub.git/kustomize/traffic/namespaceScoped?ref=traffic-templates-0.1.1'
18+
kubectl apply -k 'https://github.com/iter8-tools/iter8.git/kustomize/traffic/clusterScoped?ref=v0.14.4'
1919
```

docs/tutorials/integrations/kserve-mm/mirror.md

Lines changed: 37 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -86,24 +86,43 @@ kubectl get virtualservice -o yaml wisdom
8686

8787
To send inference requests to the model:
8888

89-
1. In a separate terminal, port-forward the ingress gateway:
90-
```shell
91-
kubectl -n istio-system port-forward svc/istio-ingressgateway 8080:80
92-
```
93-
94-
2. Download the proto file and a sample input:
95-
```shell
96-
curl -sO https://raw.githubusercontent.com/iter8-tools/docs/v0.13.18/samples/modelmesh-serving/kserve.proto
97-
curl -sO https://raw.githubusercontent.com/iter8-tools/docs/v0.13.18/samples/modelmesh-serving/grpc_input.json
98-
```
99-
100-
3. Send inference requests:
101-
```shell
102-
cat grpc_input.json | \
103-
grpcurl -plaintext -proto kserve.proto -d @ \
104-
-authority wisdom.modelmesh-serving \
105-
localhost:8080 inference.GRPCInferenceService.ModelInfer
106-
```
89+
=== "From within the cluster"
90+
1. Create a "sleep" pod in the cluster from which requests can be made:
91+
```shell
92+
curl -s https://raw.githubusercontent.com/iter8-tools/docs/v0.13.18/samples/modelmesh-serving/sleep.sh | sh -
93+
```
94+
95+
2. exec into the sleep pod:
96+
```shell
97+
kubectl exec --stdin --tty "$(kubectl get pod --sort-by={metadata.creationTimestamp} -l app=sleep -o jsonpath={.items..metadata.name} | rev | cut -d' ' -f 1 | rev)" -c sleep -- /bin/sh
98+
```
99+
100+
3. Make inference requests:
101+
```shell
102+
cd demo
103+
cat wisdom.sh
104+
. wisdom.sh
105+
```
106+
107+
=== "From outside the cluster"
108+
1. In a separate terminal, port-forward the ingress gateway:
109+
```shell
110+
kubectl -n istio-system port-forward svc/istio-ingressgateway 8080:80
111+
```
112+
113+
2. Download the proto file and a sample input:
114+
```shell
115+
curl -sO https://raw.githubusercontent.com/iter8-tools/docs/v0.13.18/samples/modelmesh-serving/kserve.proto
116+
curl -sO https://raw.githubusercontent.com/iter8-tools/docs/v0.13.18/samples/modelmesh-serving/grpc_input.json
117+
```
118+
119+
3. Send inference requests:
120+
```shell
121+
cat grpc_input.json | \
122+
grpcurl -plaintext -proto kserve.proto -d @ \
123+
-authority wisdom.modelmesh-serving \
124+
localhost:8080 inference.GRPCInferenceService.ModelInfer
125+
```
107126

108127
Note that the model version responding to each inference request can be determined from the `modelName` field of the response.
109128

docs/user-guide/tasks/github.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ See [here](../../tutorials/integrations/ghactions.md#use-iter8-to-trigger-a-gith
3131
| owner | string | Yes | N/A | Owner of the GitHub repository |
3232
| repo | string | Yes | N/A | GitHub repository |
3333
| token | string | Yes | N/A | Authorization token |
34-
| payloadTemplateURL | string | No | [https://raw.githubusercontent.com/iter8-tools/iter8/v0.14.5/charts/iter8/templates/_payload-github.tpl](https://raw.githubusercontent.com/iter8-tools/iter8/v0.14.5/charts/iter8/templates/_payload-github.tpl) | URL to a payload template |
34+
| payloadTemplateURL | string | No | [https://raw.githubusercontent.com/iter8-tools/iter8/v0.14.5/templates/notify/_payload-github.tpl](https://raw.githubusercontent.com/iter8-tools/iter8/v0.14.5/templates/notify/_payload-github.tpl) | URL to a payload template |
3535
| softFailure | bool | No | true | Indicates the task and experiment should not fail if the task cannot successfully send the request |
3636
| if | string | No | N/A | An if condition that can be control when the task is run in a [multi-looped experiment](../../getting-started/concepts.md#runner). To learn more, see [here](#if-parameter). |
3737

docs/user-guide/tasks/slack.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,13 +26,13 @@ See [here](../../tutorials/integrations/slack.md#use-iter8-to-send-a-message-to-
2626
| Name | Type | Required | Default value | Description |
2727
| ---- | ---- | -------- | ------------- | ----------- |
2828
| url | string | Yes | N/A | URL to the Slack webhook |
29-
| payloadTemplateURL | string | No | [https://raw.githubusercontent.com/iter8-tools/iter8/v0.14.5/charts/iter8/templates/_payload-slack.tpl](https://raw.githubusercontent.com/iter8-tools/iter8/v0.14.5/charts/iter8/templates/_payload-slack.tpl) | URL to a payload template |
29+
| payloadTemplateURL | string | No | [https://raw.githubusercontent.com/iter8-tools/iter8/v0.14.5/templates/notify/_payload-slack.tpl](https://raw.githubusercontent.com/iter8-tools/iter8/v0.14.5/templates/notify/_payload-slack.tpl) | URL to a payload template |
3030
| softFailure | bool | No | true | Indicates the task and experiment should not fail if the task cannot successfully send the request |
3131
| if | string | No | N/A | An if condition that can be control when the task is run in a [multi-looped experiment](../../getting-started/concepts.md#runner). To learn more, see [here](#if-parameter). |
3232

3333
## Default payload
3434

35-
The payload will determine what will be contained in the Slack message. The [default payload template](https://raw.githubusercontent.com/iter8-tools/iter8/v0.14.5/charts/iter8/templates/_payload-slack.tpl) of the `slack` task is to send the experiment report in text form.
35+
The payload will determine what will be contained in the Slack message. The [default payload template](https://raw.githubusercontent.com/iter8-tools/iter8/v0.14.5/templates/notify/_payload-slack.tpl) of the `slack` task is to send the experiment report in text form.
3636

3737
However, if you would like to use a different payload template, simply set a `payloadTemplateURL` and Iter8 will not use the default.
3838

docs/user-guide/topics/autox.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ The trigger object is specified by providing the name, namespace, and the group-
1313
See the following example:
1414

1515
```bash
16-
helm install autox autox --repo https://iter8-tools.github.io/iter8/ --version 0.1.6 \
16+
helm install autox autox --repo https://iter8-tools.github.io/iter8 --version 0.1.6 \
1717
--set 'groups.myApp.trigger.name=myApp' \
1818
--set 'groups.myApp.trigger.namespace=default' \
1919
--set 'groups.myApp.trigger.group=apps' \
@@ -36,7 +36,7 @@ In this example, there is only one experiment group named `myApp` (`groups.myApp
3636
In this next example, we have augmented the previous example with an additional experiment spec.
3737

3838
```bash
39-
helm install autox autox --repo https://iter8-tools.github.io/iter8/ --version 0.1.6 \
39+
helm install autox autox --repo https://iter8-tools.github.io/iter8 --version 0.1.6 \
4040
--set 'groups.myApp.trigger.name=myApp' \
4141
--set 'groups.myApp.trigger.namespace=default' \
4242
--set 'groups.myApp.trigger.group=apps' \

0 commit comments

Comments
 (0)