Skip to content

Commit

Permalink
Set KServe inference service version by default. (#981)
Browse files Browse the repository at this point in the history
* Support KServe inference service

Signed-off-by: Syulin7 <[email protected]>

* Set KServe inference service version by default.

Signed-off-by: Syulin7 <[email protected]>

---------

Signed-off-by: Syulin7 <[email protected]>
  • Loading branch information
Syulin7 committed Aug 28, 2023
1 parent 3fe9ae4 commit de8cb95
Show file tree
Hide file tree
Showing 7 changed files with 38 additions and 34 deletions.
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
0.9.10
0.9.11
20 changes: 0 additions & 20 deletions charts/kserve/templates/inferenceservice.yaml
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
{{- $gpuCount := .Values.gpuCount -}}
{{- $gpuMemory := .Values.gpuMemory -}}
{{- $gpuCore := .Values.gpuCore -}}
{{- $dataDirs := .Values.dataDirs -}}
apiVersion: serving.kserve.io/v1beta1
kind: InferenceService
metadata:
Expand All @@ -16,7 +15,6 @@ metadata:
app: {{ template "kserve.name" . }}
servingType: "kserve"
servingName: "{{ .Values.servingName }}"
servingVersion: "{{ .Values.servingVersion }}"
{{- range $key, $value := .Values.labels }}
{{ $key }}: {{ $value | quote }}
{{- end }}
Expand Down Expand Up @@ -115,18 +113,12 @@ spec:
{{- range $pvcName, $destPath := .Values.modelDirs}}
- name: "{{ $pvcName }}"
mountPath: "{{ $destPath }}"
{{- if hasKey $.Values.dataSubPathExprs $pvcName }}
subPathExpr: {{ get $.Values.dataSubPathExprs $pvcName }}
{{- end }}
{{- end }}
{{- end }}
{{- if .Values.tempDirs }}
{{- range $name, $destPath := .Values.tempDirs}}
- name: "{{ $name }}"
mountPath: "{{ $destPath }}"
{{- if hasKey $.Values.tempDirSubPathExprs $name }}
subPathExpr: {{ get $.Values.tempDirSubPathExprs $name }}
{{- end }}
{{- end }}
{{- end }}
{{- if ne (len .Values.configFiles) 0 }}
Expand All @@ -142,12 +134,6 @@ spec:
{{- end }}
{{- end }}
{{- end }}
{{- if $dataDirs }}
{{- range $dataDirs }}
- name: {{ .name }}
mountPath: {{ .containerPath }}
{{- end }}
{{- end }}
{{- else }}
containers:
- name: kserve-container
Expand Down Expand Up @@ -201,18 +187,12 @@ spec:
{{- range $pvcName, $destPath := .Values.modelDirs}}
- name: "{{ $pvcName }}"
mountPath: "{{ $destPath }}"
{{- if hasKey $.Values.dataSubPathExprs $pvcName }}
subPathExpr: {{ get $.Values.dataSubPathExprs $pvcName }}
{{- end }}
{{- end }}
{{- end }}
{{- if .Values.tempDirs }}
{{- range $name, $destPath := .Values.tempDirs}}
- name: "{{ $name }}"
mountPath: "{{ $destPath }}"
{{- if hasKey $.Values.tempDirSubPathExprs $name }}
subPathExpr: {{ get $.Values.tempDirSubPathExprs $name }}
{{- end }}
{{- end }}
{{- end }}
{{- if ne (len .Values.configFiles) 0 }}
Expand Down
6 changes: 6 additions & 0 deletions docs/releases/v0.9.11.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# Release 0.9.10

### Changed

- Update dependent component version.
- Support KServe inference service.
2 changes: 1 addition & 1 deletion pkg/argsbuilder/serving.go
Original file line number Diff line number Diff line change
Expand Up @@ -497,7 +497,7 @@ func (s *ServingArgsBuilder) setEnvs() error {
}

func (s *ServingArgsBuilder) setServingVersion() error {
if s.args.Version == "" {
if s.args.Version == "" && s.args.Type != types.KServeJob {
t := time.Now()
s.args.Version = fmt.Sprint(t.Format("200601021504"))
}
Expand Down
21 changes: 20 additions & 1 deletion pkg/serving/get.go
Original file line number Diff line number Diff line change
Expand Up @@ -144,13 +144,32 @@ func PrintServingJob(job ServingJob, format types.FormatStyle) {
title := ""
step := ""
gpuLine := ""
var lines []string
if totalGPUs != 0 {
title = "\tGPU"
step = "\t---"
gpuLine = fmt.Sprintf("GPU: %v", totalGPUs)
lines = append(lines, gpuLine)
}

lines := []string{gpuLine, "", "Instances:", fmt.Sprintf(" NAME\tSTATUS\tAGE\tREADY\tRESTARTS%v\tNODE", title)}
if job.Type() == types.KServeJob {
if ksjob, ok := job.(*kserveJob); ok {
lines = append(lines, "")
for _, traffic := range ksjob.inferenceService.Status.Components["predictor"].Traffic {
revision := traffic.RevisionName
percent := *traffic.Percent
if traffic.Tag == "prev" {
lines = append(lines, fmt.Sprintf("PrevRevision: %v", revision))
lines = append(lines, fmt.Sprintf("PrevPrecent: %v", percent))
} else {
lines = append(lines, fmt.Sprintf("LatestRevision: %v", revision))
lines = append(lines, fmt.Sprintf("LatestPrecent: %v", percent))
}
}
}
}

lines = append(lines, "", "Instances:", fmt.Sprintf(" NAME\tSTATUS\tAGE\tREADY\tRESTARTS%v\tNODE", title))
lines = append(lines, fmt.Sprintf(" ----\t------\t---\t-----\t--------%v\t----", step))
for _, i := range jobInfo.Instances {
value := fmt.Sprintf("%v", i.RequestGPUs)
Expand Down
19 changes: 9 additions & 10 deletions pkg/serving/serving_kserve.go
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,6 @@ func NewKServeProcesser() Processer {
}

func SubmitKServeJob(namespace string, args *types.KServeArgs) (err error) {
nameWithVersion := fmt.Sprintf("%v-%v", args.Name, args.Version)
args.Namespace = namespace
processers := GetAllProcesser()
processer, ok := processers[args.Type]
Expand All @@ -64,7 +63,7 @@ func SubmitKServeJob(namespace string, args *types.KServeArgs) (err error) {
}
// the master is also considered as a worker
chart := util.GetChartsFolder() + "/kserve"
err = workflow.SubmitJob(nameWithVersion, string(types.KServeJob), namespace, args, chart, args.HelmOptions...)
err = workflow.SubmitJob(args.Name, string(types.KServeJob), namespace, args, chart, args.HelmOptions...)
if err != nil {
return err
}
Expand All @@ -88,9 +87,6 @@ func (p *KServeProcesser) GetServingJobs(namespace, name, version string) ([]Ser
fmt.Sprintf("%v=%v", servingNameLabelKey, name),
fmt.Sprintf("%v=%v", servingTypeLabelKey, p.processerType),
}
if version != "" {
selector = append(selector, fmt.Sprintf("%v=%v", servingVersionLabelKey, version))
}
log.Debugf("processer %v,filter jobs by labels: %v", p.processerType, selector)
return p.FilterServingJobs(namespace, false, strings.Join(selector, ","))
}
Expand Down Expand Up @@ -131,28 +127,31 @@ func (p *KServeProcesser) FilterServingJobs(namespace string, allNamespace bool,
filterPods := []*v1.Pod{}
for _, deployment := range deployments {
if iservice.Labels[servingNameLabelKey] == deployment.Labels[servingNameLabelKey] &&
iservice.Labels[servingTypeLabelKey] == deployment.Labels[servingTypeLabelKey] &&
iservice.Labels[servingVersionLabelKey] == deployment.Labels[servingVersionLabelKey] {
iservice.Labels[servingTypeLabelKey] == deployment.Labels[servingTypeLabelKey] {
filterDeployments = append(filterDeployments, deployment)
}
}

for _, pod := range pods {
if iservice.Labels[servingNameLabelKey] == pod.Labels[servingNameLabelKey] &&
iservice.Labels[servingTypeLabelKey] == pod.Labels[servingTypeLabelKey] &&
iservice.Labels[servingVersionLabelKey] == pod.Labels[servingVersionLabelKey] {
iservice.Labels[servingTypeLabelKey] == pod.Labels[servingTypeLabelKey] {
filterPods = append(filterPods, pod)
}
}

version := iservice.Status.Components["predictor"].LatestCreatedRevision
if len(version) > 5 {
version = version[len(version)-5:]
}

servingJobs = append(servingJobs, &kserveJob{
inferenceService: iservice,
inferenceDeployments: filterDeployments,
servingJob: &servingJob{
name: iservice.Labels[servingNameLabelKey],
namespace: iservice.Namespace,
servingType: p.processerType,
version: iservice.Labels[servingVersionLabelKey],
version: version,
deployment: nil,
pods: filterPods,
services: services,
Expand Down
2 changes: 1 addition & 1 deletion pkg/serving/update.go
Original file line number Diff line number Diff line change
Expand Up @@ -426,7 +426,7 @@ func findAndBuildInferenceService(args *types.UpdateKServeArgs) (*kservev1beta1.
return nil, err
}

inferenceName := fmt.Sprintf("%s-%s", args.Name, args.Version)
inferenceName := args.Name
inferenceService, err := kubectl.GetInferenceService(inferenceName, args.Namespace)
if err != nil {
return nil, err
Expand Down

0 comments on commit de8cb95

Please sign in to comment.