53 lines
1.8 KiB
YAML
53 lines
1.8 KiB
YAML
# services/ai-llm/gpu-seed-job.yaml
|
|
apiVersion: batch/v1
|
|
kind: Job
|
|
metadata:
|
|
name: ollama-gpu-seed-v2
|
|
namespace: ai
|
|
spec:
|
|
backoffLimit: 2
|
|
activeDeadlineSeconds: 7200
|
|
template:
|
|
metadata:
|
|
labels:
|
|
app: ollama-gpu-seed
|
|
spec:
|
|
automountServiceAccountToken: false
|
|
restartPolicy: Never
|
|
nodeSelector:
|
|
kubernetes.io/hostname: titan-24
|
|
containers:
|
|
- name: seed
|
|
image: ollama/ollama@sha256:2c9595c555fd70a28363489ac03bd5bf9e7c5bdf2890373c3a830ffd7252ce6d
|
|
env:
|
|
- {name: OLLAMA_HOST, value: "127.0.0.1:11434"}
|
|
- {name: OLLAMA_MODELS, value: /models}
|
|
- {name: OLLAMA_NO_CLOUD, value: "1"}
|
|
command: [/bin/bash, -ec]
|
|
args:
|
|
- |
|
|
ollama serve >/tmp/ollama.log 2>&1 &
|
|
server_pid=$!
|
|
trap 'kill "$server_pid"; wait "$server_pid" || true' EXIT
|
|
for attempt in $(seq 1 60); do
|
|
ollama list >/dev/null 2>&1 && break
|
|
sleep 1
|
|
done
|
|
ollama pull qwen2.5:14b-instruct-q4_0 >/tmp/pull.log 2>&1 || { tail -c 1000 /tmp/pull.log; exit 1; }
|
|
cd /models/manifests/registry.ollama.ai/library
|
|
sha256sum -c <<'PINS'
|
|
5449194ff8035ccb13a6409a5814de6c8f9c39f555f429e383ae0fb7137001bd qwen2.5/14b-instruct-q4_0
|
|
PINS
|
|
# Runtime mounts this cache read-only, after registry digest checks.
|
|
chmod -R a+rX /models
|
|
touch /models/.pilot-v1-ready
|
|
resources:
|
|
requests: {cpu: 500m, memory: 512Mi}
|
|
limits: {cpu: "2", memory: 2Gi}
|
|
volumeMounts:
|
|
- {name: models, mountPath: /models}
|
|
volumes:
|
|
- name: models
|
|
persistentVolumeClaim:
|
|
claimName: ollama-gpu-titan24
|