Skip to content

Commit d8e2f4c

Browse files
authored
Kfservingexp (#651)
* Updated experiment and e2e test * Fixed kfserving exp * Updated weightobjref in knative sample * Updated fixed split experiment
1 parent 63b3de5 commit d8e2f4c

File tree

4 files changed

+35
-10
lines changed

4 files changed

+35
-10
lines changed

samples/kfserving/quickstart/e2etest.sh

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -39,25 +39,32 @@ echo "Generate requests"
3939

4040
URL_VALUE="http://$(kubectl -n istio-system get svc istio-ingressgateway -o jsonpath='{.spec.clusterIP}'):80/productpage"
4141

42+
# Port-forward Istio ingress
4243
INGRESS_GATEWAY_SERVICE=$(kubectl get svc -n istio-system --selector="app=istio-ingressgateway" --output jsonpath='{.items[0].metadata.name}')
4344
kubectl port-forward -n istio-system svc/${INGRESS_GATEWAY_SERVICE} 8080:80 &
4445

45-
# this step requires fortio
46+
# Get the prediction payload
4647
curl -o /tmp/input.json https://raw.githubusercontent.com/kubeflow/kfserving/master/docs/samples/v1beta1/rollout/input.json
47-
fortio load -t 310s -qps 5.0 -H "Host: example.com" -payload-file /tmp/input.json -json /tmp/fortiooutput.json localhost:8080/v1/models/flowers:predict
48+
49+
# Send prediction requests... this step requires fortio
50+
fortio load -t 360s -qps 4.0 -H "Host: example.com" -payload-file /tmp/input.json -json /tmp/fortiooutput.json http://localhost:8080/v1/models/flowers:predict
51+
52+
# Wait
53+
kubectl wait experiment $EXPERIMENT --for=condition=Completed --timeout=300s
4854

4955
# Log final experiment
5056
kubectl get experiment $EXPERIMENT -o yaml
5157

5258
# Check
5359
source $ITER8/samples/kfserving/quickstart/check.sh
5460

55-
# Cleanup .. not needed since cluster is getting deleted
56-
# included to test manual instructions
57-
# continue even if errors
5861
kubectl delete -f $ITER8/samples/kfserving/quickstart/experiment.yaml
59-
kubectl delete -f $ITER8/samples/kfserving/quickstart/baseline.yaml
60-
kubectl delete -f $ITER8/samples/kfserving/quickstart/candidate.yaml
62+
# Cleanup .. delete inference services (and its ns takes forever)...
63+
# so skipping this for now... need to be fixed later;
64+
# possibly by bringing this up with KFServing
65+
66+
# kubectl delete -f $ITER8/samples/kfserving/quickstart/baseline.yaml
67+
# kubectl delete -f $ITER8/samples/kfserving/quickstart/candidate.yaml
6168

6269
# delete cluster
6370
kind delete cluster

samples/kfserving/quickstart/experiment.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,14 +21,14 @@ spec:
2121
preferredDirection: High # maximize user engagement
2222
objectives:
2323
- metric: iter8-kfserving/mean-latency
24-
upperLimit: 500
24+
upperLimit: 1500
2525
- metric: iter8-kfserving/95th-percentile-tail-latency
2626
upperLimit: 2000
2727
- metric: iter8-kfserving/error-rate
2828
upperLimit: "0.01"
2929
duration:
3030
intervalSeconds: 10
31-
iterationsPerLoop: 30
31+
iterationsPerLoop: 25
3232
versionInfo:
3333
# information about model versions used in this experiment
3434
baseline:

samples/knative/canaryfixedsplit/experiment.yaml

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ spec:
1717
args:
1818
- "-c"
1919
- |
20-
kustomize build github.com/iter8-tools/iter8/samples/knative/canaryfixedsplit/{{ .name }}?ref=master \
20+
kustomize build github.com/iter8-tools/iter8/samples/knative/canaryfixedsplit/{{ .promote }}?ref=master \
2121
| kubectl apply -f -
2222
criteria:
2323
# mean latency of version should be under 50 milliseconds
@@ -37,5 +37,11 @@ spec:
3737
# information about app versions used in this experiment
3838
baseline:
3939
name: sample-app-v1
40+
variables:
41+
- name: promote
42+
value: baseline
4043
candidates:
4144
- name: sample-app-v2
45+
variables:
46+
- name: promote
47+
value: candidate

samples/knative/canaryprogressive/experiment.yaml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,11 +41,23 @@ spec:
4141
# information about app versions used in this experiment
4242
baseline:
4343
name: sample-app-v1
44+
weightObjRef:
45+
apiVersion: serving.knative.dev/v1
46+
kind: Service
47+
name: sample-app
48+
namespace: default
49+
fieldPath: .spec.traffic[0].percent
4450
variables:
4551
- name: promote
4652
value: baseline
4753
candidates:
4854
- name: sample-app-v2
55+
weightObjRef:
56+
apiVersion: serving.knative.dev/v1
57+
kind: Service
58+
name: sample-app
59+
namespace: default
60+
fieldPath: .spec.traffic[1].percent
4961
variables:
5062
- name: promote
5163
value: candidate

0 commit comments

Comments
 (0)