Skip to content

Commit 6f04b40

Browse files
authored
update install instructions (#118)
* update install instructions Signed-off-by: Michael Kalantar <[email protected]> * update wordlist Signed-off-by: Michael Kalantar <[email protected]> * clarify differences in candidate Signed-off-by: Michael Kalantar <[email protected]> * routemap for abn Signed-off-by: Michael Kalantar <[email protected]> * update wordlist Signed-off-by: Michael Kalantar <[email protected]> * fix spelling Signed-off-by: Michael Kalantar <[email protected]> * update for null strategy Signed-off-by: Michael Kalantar <[email protected]> * routemap topic Signed-off-by: Michael Kalantar <[email protected]> * spelling Signed-off-by: Michael Kalantar <[email protected]> * update roadmap Signed-off-by: Michael Kalantar <[email protected]> * roadmap Signed-off-by: Michael Kalantar <[email protected]> * refine based on feedback Signed-off-by: Michael Kalantar <[email protected]> --------- Signed-off-by: Michael Kalantar <[email protected]>
1 parent 94bac7f commit 6f04b40

30 files changed

+322
-243
lines changed

.github/wordlist.txt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ Cha
1010
chaosengine
1111
CLI
1212
CLIs
13+
CRD
1314
cronjob
1415
crontab
1516
ConfigMap
@@ -67,6 +68,8 @@ protobuf
6768
protoc
6869
quickstart
6970
roadmap
71+
routemap
72+
Routemaps
7073
scikit
7174
SDK
7275
sed
@@ -80,6 +83,7 @@ SRE
8083
Srinivasan
8184
subdirectory
8285
Sysdig
86+
stringified
8387
tada
8488
Tekton
8589
toc
@@ -184,3 +188,6 @@ Autoscaling
184188
composable
185189
Hyperparameter
186190
LLM
191+
odh
192+
contrib
193+
opendatahub

CONTRIBUTING.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -118,8 +118,7 @@ IMG=[Docker image name]
118118
Build and push Iter8 image to Docker
119119

120120
```shell
121-
make build
122-
docker build -f docker/Dockerfile -t $IMG bin
121+
docker build -f docker/Dockerfile -t $IMG .
123122
docker push $IMG
124123
```
125124

docs/getting-started/concepts.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ Iter8 provides three inter-related components to support the above use-cases.
5656
## Advantages
5757
Iter8 has several advantages compared to other tooling in this space.
5858

59-
First, Iter8 has no restrictions on the types of resources that make up a version of an application. The definition of a version is declarative. While there is a default set of resource types that can be referenced, it is easy to [declaratively extend](../user-guide/topics/extensions.md) this set. Furthermore, this same extension mechanism allows Iter8 to be used with any service mesh.
59+
First, Iter8 has no restrictions on the types of resources that make up a version of an application. This includes custom resources; that is, those defined by a custom resource definition (CRD). Because the set of resources that comprise a version is declarative, it is easy to [extend](../user-guide/topics/extensions.md). Note that this same extension mechanism also allows Iter8 to be used with any service mesh.
6060

6161
Second, the Iter8 client SDK addresses a key challenge to [A/B/n testing](../user-guide/topics/ab_testing.md): the decoupling of the front-end release process from that of the back-end. It allows the front-end to reliably associate business metrics with the contributing version of the back-end.
6262

docs/getting-started/first-abn.md

Lines changed: 23 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ This tutorial describes how to do A/B testing of a backend component using the [
2020

2121
## Install the Iter8 controller
2222

23-
--8<-- "docs/tutorials/installiter8controller.md"
23+
--8<-- "docs/getting-started/install.md"
2424

2525
## Deploy the sample application
2626

@@ -55,47 +55,28 @@ A sample application using the Iter8 SDK is provided. Deploy both the frontend a
5555

5656
## Describe the application
5757

58-
In order to support `Lookup()`, Iter8 needs to know what the application component versions look like. A `ConfigMap` is used to describe the make up of possible versions:
58+
In order to support `Lookup()`, Iter8 needs to know what the application component versions look like. A _routemap_ is created to do this. A routemap contains a description of each version of an application and may contain [routing templates](../user-guide/topics/routemap.md). To create the routemap:
5959

6060
```shell
61-
cat <<EOF | kubectl apply -f -
62-
apiVersion: v1
63-
kind: ConfigMap
64-
metadata:
65-
name: backend
66-
labels:
67-
app.kubernetes.io/managed-by: iter8
68-
iter8.tools/kind: routemap
69-
iter8.tools/version: "v0.18"
70-
immutable: true
71-
data:
72-
strSpec: |
73-
versions:
74-
- resources:
75-
- gvrShort: svc
76-
name: backend
77-
namespace: default
78-
- gvrShort: deploy
79-
name: backend
80-
namespace: default
81-
- resources:
82-
- gvrShort: svc
83-
name: backend-candidate-1
84-
namespace: default
85-
- gvrShort: deploy
86-
name: backend-candidate-1
87-
namespace: default
61+
cat <<EOF | helm template routing --repo https://iter8-tools.github.io/iter8 routing-actions --version 0.18 -f - | kubectl apply -f -
62+
appType: deployment
63+
appName: backend
64+
action: initialize
65+
appVersions:
66+
- name: backend
67+
- name: backend-candidate-1
8868
EOF
8969
```
9070

91-
In this definition, each version of the application is composed of a `Service` and a `Deployment`. In the primary version, both are named `backend`. In any candidate version they are named `backend-candidate-1`. Iter8 uses this definition to identify when any of the versions of the application are available. It can then respond appropriately to `Lookup()` requests.
71+
The `initialize` action (with strategy `none`) creates a routemap that only defines the resources that make up each version of the application. In this case, two versions: `backend` and `backend-candidate-1`. Each version is comprised of a `Service` and a `Deployment`. Iter8 uses this information to identify when any of the versions of the application are available. It can then respond appropriately to `Lookup()` requests.
9272

9373
## Generate load
9474

95-
In separate shells, port-forward requests to the frontend component and generate load for multiple users. A [script](https://raw.githubusercontent.com/iter8-tools/docs/main/samples/abn-sample/generate_load.sh) is provided to do this. To use it:
75+
In one shell, port-forward requests to the frontend component:
9676
```shell
9777
kubectl port-forward service/frontend 8090:8090
9878
```
79+
In another shell, run a script to generate load from multiple users:
9980
```shell
10081
curl -s https://raw.githubusercontent.com/iter8-tools/docs/v0.17.3/samples/abn-sample/generate_load.sh | sh -s --
10182
```
@@ -164,12 +145,20 @@ svc/backend deploy/backend \
164145
svc/backend-candidate-1 deploy/backend-candidate-1
165146
```
166147

167-
Delete the application description:
148+
Delete the application routemap:
168149

169150
```shell
170-
kubectl delete cm/backend
151+
cat <<EOF | helm template routing --repo https://iter8-tools.github.io/iter8 routing-actions --version 0.18 -f - | kubectl delete -f -
152+
appType: deployment
153+
appName: backend
154+
action: initialize
155+
appVersions:
156+
- name: backend
157+
- name: backend-candidate-1
158+
EOF
159+
171160
```
172161

173162
Uninstall the Iter8 controller:
174163

175-
--8<-- "docs/tutorials/deleteiter8controller.md"
164+
--8<-- "docs/getting-started/uninstall.md"

docs/getting-started/first-performance.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ Run your first performance test by load testing a Kubernetes HTTP service and vi
2525

2626
## Install the Iter8 controller
2727

28-
--8<-- "docs/tutorials/installiter8controller.md"
28+
--8<-- "docs/getting-started/install.md"
2929

3030
## Launch performance test
3131

@@ -100,7 +100,7 @@ kubectl delete deploy/httpbin
100100

101101
### Uninstall the Iter8 controller
102102

103-
--8<-- "docs/tutorials/deleteiter8controller.md"
103+
--8<-- "docs/getting-started/uninstall.md"
104104

105105
***
106106

docs/getting-started/first-routing.md

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ After a one-time initialization step, the end user merely deploys candidate vers
1616

1717
## Install the Iter8 controller
1818

19-
--8<-- "docs/tutorials/installiter8controller.md"
19+
--8<-- "docs/getting-started/install.md"
2020

2121
## Initialize primary
2222

@@ -83,7 +83,7 @@ To send inference requests to the model:
8383
3. Send requests:
8484
```shell
8585
curl httpbin.default -s -D - \
86-
| grep -e HTTP -e app-version
86+
| grep -e '^HTTP' -e app-version
8787
```
8888

8989
=== "From outside the cluster"
@@ -95,7 +95,7 @@ To send inference requests to the model:
9595
2. Send requests:
9696
```shell
9797
curl -H 'Host: httpbin.default' localhost:8080 -s -D - \
98-
| grep -e HTTP -e app-version
98+
| grep -e '^HTTP' -e app-version
9999
```
100100

101101
??? note "Sample output"
@@ -104,7 +104,6 @@ To send inference requests to the model:
104104
```
105105
HTTP/1.1 200 OK
106106
app-version: httpbin-0
107-
<p>A simple HTTP Request &amp; Response Service.
108107
```
109108

110109
Note that the model version responding to each inference request is noted in the response header `app-version`. In the requests above, we display only the response code and this header.
@@ -121,7 +120,7 @@ kubectl expose deployment httpbin-1 --port=80
121120
```
122121

123122
??? note "About the candidate"
124-
In this tutorial, the image is the same as for the primary version. In a real world example, it would be different.
123+
In this tutorial, the candidate image is the same as the one for the primary version. In a real world example, it would be different. The version label (`app.kubernetes.io/version`) can be used to distinguish between versions.
125124

126125
### Verify routing changes
127126

@@ -141,14 +140,12 @@ You can send additional inference requests as described above. They will be hand
141140
```
142141
HTTP/1.1 200 OK
143142
app-version: httpbin-0
144-
<p>A simple HTTP Request &amp; Response Service.
145143
```
146144

147145
`httpbin-1` output:
148146
```
149147
HTTP/1.1 200 OK
150148
app-version: httpbin-1
151-
<p>A simple HTTP Request &amp; Response Service.
152149
```
153150

154151
## Modify weights (optional)
@@ -183,7 +180,7 @@ kubectl label deployment httpbin-0 app.kubernetes.io/version=v1 --overwrite
183180
```
184181

185182
??? note "What is different?"
186-
The version label (`app.kubernets.io/version`) was updated. In a real world example, the image would also have been updated.
183+
The version label (`app.kubernetes.io/version`) was updated. In a real world example, the image would also have been updated.
187184

188185
### Delete candidate
189186

@@ -224,4 +221,4 @@ kubectl delete deployment/httpbin-0 service/httpbin-0
224221

225222
Uninstall Iter8 controller:
226223

227-
--8<-- "docs/tutorials/deleteiter8controller.md"
224+
--8<-- "docs/getting-started/uninstall.md"

docs/getting-started/install.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
```shell
2+
helm install --repo https://iter8-tools.github.io/iter8 --version 0.18 iter8 controller \
3+
--set clusterScoped=true
4+
```
5+
6+
For additional install options, see [Iter8 Installation](https://iter8.tools/0.18/user-guide/topics/install/).

docs/getting-started/uninstall.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
```shell
2+
helm delete iter8
3+
```
4+
5+
For additional uninstall options, see [Iter8 Uninstall](https://iter8.tools/0.18/user-guide/topics/uninstall/).

docs/roadmap.md

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,13 @@ hide:
77

88
# Roadmap
99

10-
1. Open Data Hub tier 1 project
11-
2. Diverse examples of `autoroute` with CRDs (such as Knative and KServe) and other types of k8s resources (like statefulsets)
12-
3. Stabilizing Iter8 APIs for CNCF sandboxing
13-
4. Autoscaling the metrics service
14-
5. Metrics & evaluation for foundation model/LLM-based apps
15-
6. Hyperparameter tuning for foundation model/LLM-based inference pipelines
16-
7. Data/concept drift detection for ML models
10+
1. Stabilizing Iter8 APIs for CNCF sandboxing
11+
2. Autoscaling the metrics service
12+
3. Install infrastructure components such as Istio
13+
4. Install ML components such as KServe and KServe ModelMesh
14+
5. Extend routing templates to include application management
15+
6. Support multi-cluster installs
16+
7. Open Data Hub tier 1 project
17+
8. Metrics & evaluation for foundation model/LLM-based apps
18+
9. Hyperparameter tuning for foundation model/LLM-based inference pipelines
19+
10. Data/concept drift detection for ML models

docs/tutorials/deleteiter8controller.md

Lines changed: 0 additions & 15 deletions
This file was deleted.

0 commit comments

Comments
 (0)