@@ -42,33 +42,69 @@ app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
4242app.kubernetes.io/managed-by: { { .Release.Service } }
4343{ {- end } }
4444
45- { {/*
46- EPP selector labels
47- */} }
48- { {- define " llm-d-modelservice.eppSelectorLabels" -} }
49- app.kubernetes.io/name: { { include " llm-d-modelservice.name" . } }
50- app.kubernetes.io/instance: { { .Release.Name } }
51- llm-d.ai/epp: { { include " llm-d-modelservice.fullname" . } }-epp
45+ { {/* Sanitized model name (DNS compliant) */} }
46+ { {- define " llm-d-modelservice.sanitizedModelName" -} }
47+ { {- $name := .Release.Name | lower | trim -} }
48+ { {- $name = regexReplaceAll " [^a-z0-9_.-]" $name " -" -} }
49+ { {- $name = regexReplaceAll " ^[\\ -._]+" $name " " -} }
50+ { {- $name = regexReplaceAll " [\\ -._]+$" $name " " -} }
51+ { {- $name = regexReplaceAll " \\ ." $name " -" -} }
52+
53+ { {- if gt (len $name ) 63 -} }
54+ { {- $name = substr 0 63 $name -} }
55+ { {- end -} }
56+
57+ { {- $name -} }
5258{ {- end } }
5359
54- { {/*
55- Create the name of the service account to use
56- */} }
57- { {- define " llm-d-modelservice.serviceAccountName" -} }
58- { {- if .Values.serviceAccount.create } }
59- { {- (include " llm-d-modelservice.fullname" .) -} }-sa
60- { {- else } }
61- { {- default " default" .Values.serviceAccount.name } }
60+ { {/* Common P/D labels */} }
61+ { {- define " llm-d-modelservice.pdlabels" -} }
62+ llm-d.ai/inferenceServing: "true"
63+ llm-d.ai/model: { { (include " llm-d-modelservice.sanitizedModelName" .) -} }
64+ { {- end } }
65+
66+ { {/* prefill labels */} }
67+ { {- define " llm-d-modelservice.prefilllabels" -} }
68+ { { include " llm-d-modelservice.pdlabels" . } }
69+ llm-d.ai/role: prefill
6270{ {- end } }
71+
72+ { {/* decode labels */} }
73+ { {- define " llm-d-modelservice.decodelabels" -} }
74+ { { include " llm-d-modelservice.pdlabels" . } }
75+ llm-d.ai/role: decode
76+ { {- end } }
77+
78+ { {/* affinity from acceleratorTypes */} }
79+ { {- define " llm-d-modelservice.acceleratorTypes" -} }
80+ affinity:
81+ nodeAffinity:
82+ requiredDuringSchedulingIgnoredDuringExecution:
83+ nodeSelectorTerms:
84+ - matchExpressions:
85+ - key: { { .labelKey } }
86+ operator: In
87+ { {- with .labelValues } }
88+ values:
89+ { {- toYaml . | nindent 14 } }
90+ { {- end } }
91+ { {- end } }
92+
93+ { {/* P/D service account name */} }
94+ { {- define " llm-d-modelservice.pdServiceAccountName" -} }
95+ { { include " llm-d-modelservice.sanitizedModelName" . } }-sa
96+ { {- end } }
97+
98+ { {/* EPP service account name */} }
99+ { {- define " llm-d-modelservice.pdServiceAccountName" -} }
100+ { { include " llm-d-modelservice.sanitizedModelName" . } }-epp-sa
63101{ {- end } }
64102
65103{ {/*
66- Create the name of the EPP service account to use
104+ EPP selector labels
67105*/} }
68- { {- define " llm-d-modelservice.eppServiceAccountName" -} }
69- { {- if .Values.serviceAccount.create } }
70- { {- (include " llm-d-modelservice.fullname" .) -} }-epp-sa
71- { {- else } }
72- { {- default " default" .Values.serviceAccount.name } }
73- { {- end } }
106+ { {- define " llm-d-modelservice.eppSelectorLabels" -} }
107+ app.kubernetes.io/name: { { include " llm-d-modelservice.name" . } }
108+ app.kubernetes.io/instance: { { .Release.Name } }
109+ llm-d.ai/epp: { { include " llm-d-modelservice.fullname" . } }-epp
74110{ {- end } }
0 commit comments