From bac13c811cce581af845ff908f95dafbea8946d6 Mon Sep 17 00:00:00 2001 From: ci Date: Fri, 11 Sep 2026 14:28:18 +0300 Subject: [PATCH] nelm-ready: public images overlays, nodeSelector fix, secrets --- .helm/Chart.yaml | 6 ++++++ .helm/templates/dashboard.yaml | 2 +- .helm/templates/ingress.yaml | 20 +++++++++++--------- .helm/templates/sts.yaml | 18 ++++++++++-------- .helm/values-public.yaml | 22 ++++++++++++++++++++++ .helm/values.yaml | 24 +++++++++++++++++++----- Dockerfile | 1 + 7 files changed, 70 insertions(+), 23 deletions(-) create mode 100644 .helm/Chart.yaml create mode 100644 .helm/values-public.yaml create mode 100644 Dockerfile diff --git a/.helm/Chart.yaml b/.helm/Chart.yaml new file mode 100644 index 0000000..1b876e8 --- /dev/null +++ b/.helm/Chart.yaml @@ -0,0 +1,6 @@ +apiVersion: v2 +name: vllm +description: vLLM for nelm deploy +type: application +version: 1.0.0 +appVersion: "0.14.0" diff --git a/.helm/templates/dashboard.yaml b/.helm/templates/dashboard.yaml index e2ef7ac..ab44674 100644 --- a/.helm/templates/dashboard.yaml +++ b/.helm/templates/dashboard.yaml @@ -1,4 +1,4 @@ -{{- if eq .Values.werf.env "prod" }} +{{- if eq .Values.env "prod" }} {{- range $path, $_ := .Files.Glob "dashboards/*.json" }} {{- $raw := $.Files.Get $path }} {{- $json := $raw | fromJson }} diff --git a/.helm/templates/ingress.yaml b/.helm/templates/ingress.yaml index ec6731f..de0adab 100644 --- a/.helm/templates/ingress.yaml +++ b/.helm/templates/ingress.yaml @@ -13,13 +13,15 @@ metadata: nginx.ingress.kubernetes.io/proxy-read-timeout: "10000" nginx.ingress.kubernetes.io/upstream-keepalive-timeout: "10000" spec: - ingressClassName: {{ dig .Values.werf.env .Values.ingress.className._default .Values.ingress.className | quote }} + ingressClassName: {{ dig .Values.env .Values.ingress.className._default .Values.ingress.className | quote }} + {{- if .Values.ingress.tls.enabled }} tls: - hosts: - - {{ dig .Values.werf.env .Values.ingress.host._default .Values.ingress.host | quote }} - secretName: {{ dig .Values.werf.env .Values.ingress.secretName._default .Values.ingress.secretName | quote }} + - {{ dig .Values.env .Values.ingress.host._default .Values.ingress.host | quote }} + secretName: {{ dig .Values.env .Values.ingress.secretName._default .Values.ingress.secretName | quote }} + {{- end }} rules: - - host: {{ dig .Values.werf.env .Values.ingress.host._default .Values.ingress.host | quote }} + - host: {{ dig .Values.env .Values.ingress.host._default .Values.ingress.host | quote }} http: paths: - path: / @@ -29,16 +31,16 @@ spec: name: {{ .Chart.Name }} port: name: http +{{- if .Values.ingress.tls.enabled }} --- apiVersion: v1 kind: Secret metadata: - name: {{ dig .Values.werf.env .Values.ingress.secretName._default .Values.ingress.secretName }} - annotations: - werf.io/sensitive: "true" + name: {{ dig .Values.env .Values.ingress.secretName._default .Values.ingress.secretName }} type: kubernetes.io/tls stringData: tls.crt: | - {{- werf_secret_file (printf "%s/%s" .Values.werf.env "tls.crt") | nindent 4 }} +{{ dig .Values.env .Values.tls.crt._default .Values.tls.crt | nindent 4 }} tls.key: | - {{- werf_secret_file (printf "%s/%s" .Values.werf.env "tls.key") | nindent 4 }} +{{ dig .Values.env .Values.tls.key._default .Values.tls.key | nindent 4 }} +{{- end }} diff --git a/.helm/templates/sts.yaml b/.helm/templates/sts.yaml index 60c664c..c47b0ea 100644 --- a/.helm/templates/sts.yaml +++ b/.helm/templates/sts.yaml @@ -34,11 +34,13 @@ spec: {{- if and .Values.gpu.enabled .Values.gpu.tolerations }} tolerations: {{ toYaml .Values.gpu.tolerations | nindent 6 }} {{- end }} + {{- with .Values.imagePullSecrets }} imagePullSecrets: - - name: registrysecret + {{- toYaml . | nindent 8 }} + {{- end }} containers: - name: {{ .Chart.Name }} - image: {{ .Values.werf.image.vllm }} + image: {{ .Values.image.vllm }} imagePullPolicy: IfNotPresent volumeMounts: - name: data @@ -48,7 +50,7 @@ spec: containerPort: {{ .Values.port }} protocol: TCP args: - - {{ .Values.env.VLLM_MODEL }} + - {{ .Values.envVars.VLLM_MODEL }} - --async-scheduling - --host - 0.0.0.0 @@ -57,7 +59,7 @@ spec: - --gpu-memory-utilization - "0.2" - --max-model-len - - "{{ .Values.env.VLLM_MAX_MODEL_LEN }}" + - "{{ .Values.envVars.VLLM_MAX_MODEL_LEN }}" - --enforce-eager - --tensor-parallel-size - "1" @@ -65,7 +67,7 @@ spec: - --chat-template-content-format - "string" env: - {{- range $n, $v := .Values.env }} + {{- range $n, $v := .Values.envVars }} - name: {{ $n }} value: {{ $v | quote }} {{- end }} @@ -85,16 +87,16 @@ spec: periodSeconds: 5 timeoutSeconds: 6 failureThreshold: 3 - resources: {{ dig .Values.werf.env .Values.resources._default .Values.resources | toYaml | nindent 12 }} + resources: {{ dig .Values.env .Values.resources._default .Values.resources | toYaml | nindent 12 }} volumeClaimTemplates: - metadata: name: data spec: accessModes: [ "ReadWriteOnce" ] - storageClassName: {{ dig .Values.werf.env .Values.storage.class._default .Values.storage.class | quote }} + storageClassName: {{ dig .Values.env .Values.storage.class._default .Values.storage.class | quote }} resources: requests: - storage: {{ dig .Values.werf.env .Values.storage.size._default .Values.storage.size | quote }} + storage: {{ dig .Values.env .Values.storage.size._default .Values.storage.size | quote }} --- apiVersion: v1 kind: Service diff --git a/.helm/values-public.yaml b/.helm/values-public.yaml new file mode 100644 index 0000000..6feaa9a --- /dev/null +++ b/.helm/values-public.yaml @@ -0,0 +1,22 @@ +image: + vllm: docker.io/vllm/vllm-openai:v0.14.0 +imagePullSecrets: [] +gpu: + enabled: false +ingress: + tls: + enabled: false +resources: + _default: + requests: + cpu: "100m" + memory: "512Mi" + limits: + memory: "1Gi" + +nodeSelector: {} +tolerations: [] +gpu: + enabled: false + nodeSelector: {} + tolerations: [] diff --git a/.helm/values.yaml b/.helm/values.yaml index fc0c786..e2f64a7 100644 --- a/.helm/values.yaml +++ b/.helm/values.yaml @@ -1,5 +1,17 @@ +global: + cluster: "" + +env: dev + +imagePullSecrets: + - name: registrysecret + +image: + vllm: 192.168.10.68:5000/vllm/vllm-openai:v0.14.0 + port: 8004 -env: + +envVars: VLLM_MODEL: kristaller486/dots.ocr-1.5 VLLM_MAX_TOKENS: 24000 VLLM_TEMPERATURE: 0.2 @@ -39,14 +51,16 @@ storage: size: _default: 10Gi class: - _default: local-storage-class-cuda-worker + _default: localpath ingress: + tls: + enabled: false className: _default: nginx host: - _default: vllm.pro.lukoil.com - preprod: vllm.preprod.pro.lukoil.com - prod: vllm.prod.pro.lukoil.com + _default: vllm.valdemorte.online + preprod: vllm.preprod.valdemorte.online + prod: vllm.prod.valdemorte.online secretName: _default: vllm-tls diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..ccda691 --- /dev/null +++ b/Dockerfile @@ -0,0 +1 @@ +FROM docker.io/vllm/vllm-openai:v0.14.0