You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
168 lines
5.8 KiB
168 lines
5.8 KiB
{{- range $modelSpec := .Values.servingEngineSpec.modelSpec }}
|
|
{{- with $ -}}
|
|
apiVersion: apps/v1
|
|
kind: Deployment
|
|
metadata:
|
|
name: "{{ .Release.Name }}-{{$modelSpec.name}}-deployment-vllm"
|
|
namespace: {{ .Release.Namespace }}
|
|
labels:
|
|
{{- include "chart.engineLabels" . | nindent 4 }}
|
|
spec:
|
|
replicas: {{ $modelSpec.replicaCount }}
|
|
{{- include "chart.engineStrategy" . | nindent 2 }}
|
|
selector:
|
|
matchLabels:
|
|
{{- include "chart.engineLabels" . | nindent 6 }}
|
|
progressDeadlineSeconds: 1200
|
|
template:
|
|
metadata:
|
|
labels:
|
|
{{- include "chart.engineLabels" . | nindent 8 }}
|
|
spec:
|
|
containers:
|
|
- name: "vllm"
|
|
image: "{{ required "Required value 'modelSpec.repository' must be defined !" $modelSpec.repository }}:{{ required "Required value 'modelSpec.tag' must be defined !" $modelSpec.tag }}"
|
|
|
|
command:
|
|
- "vllm"
|
|
- "serve"
|
|
- {{ $modelSpec.modelURL | quote }}
|
|
- "--host"
|
|
- "0.0.0.0"
|
|
- "--port"
|
|
- {{ include "chart.container-port" . | quote }}
|
|
{{- with $modelSpec.vllmConfig }}
|
|
{{- if hasKey . "enableChunkedPrefill" }}
|
|
- "--enable-chunked-prefill"
|
|
- {{ .enableChunkedPrefill | quote }}
|
|
{{- end }}
|
|
{{- if .enablePrefixCaching }}
|
|
- "--enable-prefix-caching"
|
|
{{- end }}
|
|
{{- if hasKey . "maxModelLen" }}
|
|
- "--max-model-len"
|
|
- {{ .maxModelLen | quote }}
|
|
{{- end }}
|
|
{{- if hasKey . "dtype" }}
|
|
- "--dtype"
|
|
- {{ .dtype | quote }}
|
|
{{- end }}
|
|
{{- if hasKey . "tensorParallelSize" }}
|
|
- "--tensor-parallel-size"
|
|
- {{ .tensorParallelSize | quote }}
|
|
{{- end }}
|
|
{{- if .extraArgs }}
|
|
{{- range .extraArgs }}
|
|
- {{ . | quote }}
|
|
{{- end }}
|
|
{{- end }}
|
|
{{- end }}
|
|
{{- if $modelSpec.lmcacheConfig }}
|
|
{{- if $modelSpec.lmcacheConfig.enabled }}
|
|
- "--kv-transfer-config"
|
|
- '{"kv_connector":"LMCacheConnector","kv_role":"kv_both"}'
|
|
{{- end }}
|
|
{{- end }}
|
|
securityContext:
|
|
runAsNonRoot: false
|
|
imagePullPolicy: IfNotPresent
|
|
env:
|
|
- name: HF_HOME
|
|
{{- if hasKey $modelSpec "pvcStorage" }}
|
|
value: /data
|
|
{{- else }}
|
|
value: /tmp
|
|
{{- end }}
|
|
{{- with $modelSpec.vllmConfig}}
|
|
{{- if hasKey . "v1" }}
|
|
- name: VLLM_USE_V1
|
|
value: {{ default 0 $modelSpec.vllmConfig.v1 | quote }}
|
|
{{- end}}
|
|
{{- end}}
|
|
{{- if $modelSpec.hf_token }}
|
|
- name: HF_TOKEN
|
|
valueFrom:
|
|
secretKeyRef:
|
|
name: {{ .Release.Name }}-secrets
|
|
key: hf_token_{{ $modelSpec.name }}
|
|
{{- end }}
|
|
{{- with $modelSpec.env }}
|
|
{{- toYaml . | nindent 10 }}
|
|
{{- end }}
|
|
{{- if $modelSpec.lmcacheConfig }}
|
|
{{- if $modelSpec.lmcacheConfig.enabled }}
|
|
- name: LMCACHE_USE_EXPERIMENTAL
|
|
value: "True"
|
|
- name: VLLM_RPC_TIMEOUT
|
|
value: "1000000"
|
|
{{- end }}
|
|
{{- if $modelSpec.lmcacheConfig.cpuOffloadingBufferSize }}
|
|
- name: LMCACHE_LOCAL_CPU
|
|
value: "True"
|
|
- name: LMCACHE_MAX_LOCAL_CPU_SIZE
|
|
value: "{{ $modelSpec.lmcacheConfig.cpuOffloadingBufferSize }}"
|
|
{{- end }}
|
|
{{- if $modelSpec.lmcacheConfig.diskOffloadingBufferSize }}
|
|
- name: LMCACHE_LOCAL_DISK
|
|
value: "True"
|
|
- name: LMCACHE_MAX_LOCAL_DISK_SIZE
|
|
value: "{{ $modelSpec.lmcacheConfig.diskOffloadingBufferSize }}"
|
|
{{- end }}
|
|
{{- end }}
|
|
{{- if .Values.servingEngineSpec.configs }}
|
|
envFrom:
|
|
- configMapRef:
|
|
name: "{{ .Release.Name }}-configs"
|
|
{{- end }}
|
|
ports:
|
|
- name: {{ include "chart.container-port-name" . }}
|
|
containerPort: {{ include "chart.container-port" . }}
|
|
{{- include "chart.probes" . | indent 10 }}
|
|
resources: {{- include "chart.resources" $modelSpec | nindent 12 }}
|
|
{{- if hasKey $modelSpec "pvcStorage" }}
|
|
volumeMounts:
|
|
- name: {{ .Release.Name }}-storage
|
|
mountPath: /data
|
|
{{- end }}
|
|
{{- with $modelSpec.vllmConfig }}
|
|
{{- if hasKey $modelSpec.vllmConfig "tensorParallelSize"}}
|
|
- name: shm
|
|
mountPath: /dev/shm
|
|
{{- end}}
|
|
{{- end}}
|
|
volumes:
|
|
{{- if hasKey $modelSpec "pvcStorage" }}
|
|
- name: {{ .Release.Name }}-storage
|
|
persistentVolumeClaim:
|
|
claimName: "{{ .Release.Name }}-{{$modelSpec.name}}-storage-claim"
|
|
{{- end }}
|
|
{{- with $modelSpec.vllmConfig }}
|
|
{{- if hasKey $modelSpec.vllmConfig "tensorParallelSize"}}
|
|
- name: shm
|
|
emptyDir:
|
|
medium: Memory
|
|
sizeLimit: {{ default "20Gi" $modelSpec.shmSize }}
|
|
{{- end}}
|
|
{{- end}}
|
|
{{- if .Values.servingEngineSpec.tolerations }}
|
|
{{- with .Values.servingEngineSpec.tolerations }}
|
|
tolerations:
|
|
{{- toYaml . | nindent 8 }}
|
|
{{- end }}
|
|
{{- end }}
|
|
|
|
{{- if .Values.servingEngineSpec.runtimeClassName }}
|
|
runtimeClassName: {{ .Values.servingEngineSpec.runtimeClassName }}
|
|
{{- end }}
|
|
{{- if $modelSpec.nodeSelectorTerms}}
|
|
affinity:
|
|
nodeAffinity:
|
|
requiredDuringSchedulingIgnoredDuringExecution:
|
|
nodeSelectorTerms:
|
|
{{- with $modelSpec.nodeSelectorTerms }}
|
|
{{- toYaml . | nindent 12 }}
|
|
{{- end }}
|
|
{{- end }}
|
|
{{- end }}
|
|
---
|
|
{{- end }}
|
|
|