Skip to content

Commit bf13530

Browse files
authored
add strategy none to routing-action (#1645)
* add strategy none to routing-action Signed-off-by: Michael Kalantar <[email protected]> * allow null strategy Signed-off-by: Michael Kalantar <[email protected]> * fix comment Signed-off-by: Michael Kalantar <[email protected]> --------- Signed-off-by: Michael Kalantar <[email protected]>
1 parent 9c96a83 commit bf13530

9 files changed

+115
-21
lines changed

CONTRIBUTING.md

+1-2
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

abn/service_impl.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@ func writeMetricInternal(application, user, metric, valueStr string) error {
138138
return fmt.Errorf("no metrics client")
139139
}
140140
err = MetricsClient.SetMetric(
141-
s.GetNamespace()+"/"+s.GetName(), versionNumber, *v.GetSignature(),
141+
application, versionNumber, *v.GetSignature(),
142142
metric, user, transaction,
143143
value)
144144

charts/routing-actions/Chart.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
apiVersion: v2
22
name: routing-actions
3-
version: 0.18.0
3+
version: 0.18.1
44
description: Iter8 routing actions
55
type: application
66
keywords:

charts/routing-actions/templates/_deployment.routemap-bg.tpl

+5-2
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,9 @@ data:
1717
- gvrShort: cm
1818
name: {{ $v.name }}-weight-config
1919
namespace: {{ $v.namespace }}
20+
- gvrShort: svc
21+
name: {{ $v.name }}
22+
namespace: {{ $v.namespace }}
2023
- gvrShort: deploy
2124
name: {{ $v.name }}
2225
namespace: {{ $v.namespace }}
@@ -39,7 +42,7 @@ data:
3942
- {{ .Values.appName }}.{{ .Release.Namespace }}.svc.cluster.local
4043
http:
4144
- route:
42-
# primary model
45+
# primary version
4346
- destination:
4447
host: {{ (index $versions 0).name }}.{{ .Release.Namespace }}.svc.cluster.local
4548
{{- if .Values.appPort }}
@@ -53,7 +56,7 @@ data:
5356
response:
5457
add:
5558
app-version: {{ (index $versions 0).name }}
56-
# other models
59+
# other versions
5760
{{- range $i, $v := (rest $versions) }}
5861
{{ `{{- if gt (index .Weights ` }}{{ print (add1 $i) }}{{ `) 0 }}`}}
5962
- destination:
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
{{- define "deployment.routemap-none" }}
2+
{{- $versions := include "resolve.appVersions" . | mustFromJson }}
3+
apiVersion: v1
4+
kind: ConfigMap
5+
metadata:
6+
name: {{ .Values.appName }}-routemap
7+
labels:
8+
app.kubernetes.io/managed-by: iter8
9+
iter8.tools/kind: routemap
10+
iter8.tools/version: {{ .Values.iter8Version }}
11+
data:
12+
strSpec: |
13+
versions:
14+
{{- range $i, $v := $versions }}
15+
- resources:
16+
- gvrShort: svc
17+
name: {{ $v.name }}
18+
namespace: {{ $v.namespace }}
19+
- gvrShort: deploy
20+
name: {{ $v.name }}
21+
namespace: {{ $v.namespace }}
22+
{{- end }}
23+
immutable: true
24+
{{- end }}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
{{- define "kserve.routemap-none" }}
2+
{{- $versions := include "resolve.appVersions" . | mustFromJson }}
3+
apiVersion: v1
4+
kind: ConfigMap
5+
metadata:
6+
name: {{ .Values.appName }}-routemap
7+
labels:
8+
app.kubernetes.io/managed-by: iter8
9+
iter8.tools/kind: routemap
10+
iter8.tools/version: {{ .Values.iter8Version }}
11+
data:
12+
strSpec: |
13+
versions:
14+
{{- range $i, $v := $versions }}
15+
- resources:
16+
- gvrShort: isvc
17+
name: {{ default (printf "%s-%d" $.Values.appName $i) $v.name }}
18+
namespace: {{ default "modelmesh-serving" $v.namespace }}
19+
{{- end }}
20+
immutable: true
21+
{{- end }}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
{{- define "mm.routemap-none" }}
2+
{{- $versions := include "resolve.appVersions" . | mustFromJson }}
3+
apiVersion: v1
4+
kind: ConfigMap
5+
metadata:
6+
name: {{ .Values.appName }}-routemap
7+
labels:
8+
app.kubernetes.io/managed-by: iter8
9+
iter8.tools/kind: routemap
10+
iter8.tools/version: {{ .Values.iter8Version }}
11+
data:
12+
strSpec: |
13+
versions:
14+
{{- range $i, $v := $versions }}
15+
- resources:
16+
- gvrShort: isvc
17+
name: {{ default (printf "%s-%d" $.Values.appName $i) $v.name }}
18+
namespace: {{ default "modelmesh-serving" $v.namespace }}
19+
{{- end }}
20+
immutable: true
21+
{{- end }}

charts/routing-actions/templates/traffic.yaml

+29-14
Original file line numberDiff line numberDiff line change
@@ -10,78 +10,93 @@
1010
{{- printf "Unknown appType: '%s'" .Values.appType | fail }}
1111
{{- end }}
1212

13+
{{- /* set strategy using default value if needed */}}
14+
{{- $strategy := (.Values.strategy | default "none" ) }}
15+
1316
{{- /* validate values for strategy */}}
14-
{{- if not (has .Values.strategy (list "blue-green" "canary")) }}
15-
{{- printf "Unknown strategy: '%s'" .Values.strategy | fail }}
17+
{{- if not (has $strategy (list "blue-green" "canary" "none")) }}
18+
{{- printf "Unknown strategy: '%s'" $strategy | fail }}
1619
{{- end }}
1720

1821
{{- /* handle initialize */}}
1922
{{- if eq "initialize" .Values.action }}
2023

2124
{{- /* gateway needed for kserve-modelmesh, deployment */}}
25+
{{- if ne "none" $strategy }}
2226
{{- if has .Values.appType (list "kserve-modelmesh" "deployment") }}
2327
{{ include "initial.gateway" . }}
2428
{{- end }}
29+
{{- end }}
2530
---
31+
{{- if ne "none" $strategy }}
2632
{{- if eq "deployment" .Values.appType }}
2733
{{ include "deployment.virtualservice" . }}
2834
{{- else if eq "kserve-modelmesh" .Values.appType }}
2935
{{ include "mm.virtualservice" . }}
3036
{{- else }} {{- /* eq "kserve" .Values.appType */}}
31-
{{- if eq "blue-green" .Values.strategy }}
37+
{{- if eq "blue-green" $strategy }}
3238
{{ include "kserve.virtualservice-bluegreen" . }}
33-
{{- else }} {{- /* eq "canary" .Values.strategy */}}
39+
{{- else }} {{- /* eq "canary" $strategy */}}
3440
{{ include "kserve.virtualservice-canary" . }}
3541
{{- end }}
3642
{{- end }}
43+
{{- end }}
3744
---
45+
{{- if ne "none" $strategy }}
3846
{{- if eq "deployment" .Values.appType }}
3947
{{ include "deployment.service" . }}
4048
{{- else if eq "kserve-modelmesh" .Values.appType }}
4149
{{ include "mm.serviceentry" . }}
4250
{{- else }} {{- /* eq "kserve" .Values.appType */}}
4351
{{ include "kserve.service" . }}
4452
{{- end }}
53+
{{- end }}
4554
---
4655
{{- if eq "deployment" .Values.appType }}
47-
{{- if eq "blue-green" .Values.strategy }}
56+
{{- if eq "none" $strategy }}
57+
{{ include "deployment.routemap-none" . }}
58+
{{- else if eq "blue-green" $strategy }}
4859
{{ include "deployment.routemap-bluegreen" . }}
49-
{{- else }} {{- /* eq "canary" .Values.strategy */}}
60+
{{- else }} {{- /* eq "canary" $strategy */}}
5061
{{ include "deployment.routemap-canary" . }}
5162
{{- end }}
5263
{{- else if eq "kserve-modelmesh" .Values.appType }}
53-
{{- if eq "blue-green" .Values.strategy }}
64+
{{- if eq "none" $strategy }}
65+
{{ include "mm.routemap-none" . }}
66+
{{- else if eq "blue-green" $strategy }}
5467
{{ include "mm.routemap-bluegreen" . }}
55-
{{- else }} {{- /* eq "canary" .Values.strategy */}}
68+
{{- else }} {{- /* eq "canary" $strategy */}}
5669
{{ include "mm.routemap-canary" . }}
5770
{{- end }}
5871
{{- else }} {{- /* eq "kserve" .Values.appType */}}
59-
{{- if eq "blue-green" .Values.strategy }}
72+
{{- if eq "none" $strategy }}
73+
{{ include "kserve.routemap-none" . }}
74+
{{- else if eq "blue-green" $strategy }}
6075
{{ include "kserve.routemap-bluegreen" . }}
61-
{{- else }} {{- /* eq "canary" .Values.strategy */}}
76+
{{- else }} {{- /* eq "canary" $strategy */}}
6277
{{ include "kserve.routemap-canary" . }}
6378
{{- end }}
6479
{{- end }}
6580
---
66-
{{- if eq "blue-green" .Values.strategy }}
81+
{{- if eq "blue-green" $strategy }}
6782
{{- range $i, $v := $versions }}
6883
{{ include "create.weight-config" (unset $v "weight") }}
6984
---
7085
{{- end }}
71-
{{- else if eq "mirror" .Values.strategy }}
86+
{{- else if eq "mirror" $strategy }}
7287
{{- range $i, $v := (rest $versions) }}
7388
{{ include "create.weight-config" (unset $v "weight") }}
7489
---
7590
{{- end }}
7691
{{- end }}
7792

7893
{{- else if eq "modify-weights" .Values.action }}
79-
{{- if eq "blue-green" .Values.strategy }}
94+
{{- if eq "blue-green" $strategy }}
8095
{{- range $i, $v := .Values.appVersions }}
8196
{{ include "create.weight-config" $v }}
8297
---
8398
{{- end }}
84-
{{- else if eq "mirror" .Values.strategy }}
99+
{{- else if eq "mirror" $strategy }}
85100
{{- range $i, $v := (rest $versions) }}
86101
{{ include "create.weight-config" (set $v "weight" $.Values.mirrorPercentage) }}
87102
---

controllers/routemaps.go

+12-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package controllers
22

33
import (
4+
"reflect"
5+
46
"github.com/iter8-tools/iter8/base/log"
57
corev1 "k8s.io/api/core/v1"
68
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
@@ -53,8 +55,17 @@ func (s *routemaps) GetRoutemapFromNamespaceName(namespace string, name string)
5355

5456
rmByName, ok := s.nsRoutemap[namespace]
5557
if ok {
56-
return rmByName[name]
58+
s := rmByName[name]
59+
if s == nil || reflect.ValueOf(s).IsNil() {
60+
// try concatenating "-routemap" to name
61+
s = rmByName[name+"-routemap"]
62+
if s == nil || reflect.ValueOf(s).IsNil() {
63+
return nil
64+
}
65+
}
66+
return s
5767
}
68+
5869
return nil
5970
}
6071

0 commit comments

Comments
 (0)