Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 24 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,30 @@ kubectl apply -f application.yaml
argocd app sync chatbot-gitops
```


## Pre-pull Ollama models with a Job

The dev overlay includes:

- `ConfigMap/ollama-models` with a `models.txt` list of models to pull.
- `Job/ollama-model-pull` that reads `models.txt` and runs `ollama pull` for each entry.

Update the model list by editing `overlays/dev-ollama/ollama-models-configmap.yaml` and changing `data.models.txt`.

Trigger the model-pull Job:

```bash
kubectl delete job ollama-model-pull -n chatbot --ignore-not-found
kubectl apply -k overlays/dev-ollama
kubectl logs job/ollama-model-pull -n chatbot -f
```

Check completion:

```bash
kubectl get job ollama-model-pull -n chatbot
```

## Validate

```bash
Expand Down
2 changes: 2 additions & 0 deletions overlays/dev-ollama/kustomization.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@ kind: Kustomization

resources:
- ollama.yaml
- ollama-models-configmap.yaml
- ollama-model-pull-job.yaml
- openwebui-pvc.yaml
- openwebui-deploy.yaml
- openwebui-svc.yaml
Expand Down
43 changes: 43 additions & 0 deletions overlays/dev-ollama/ollama-model-pull-job.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
apiVersion: batch/v1
kind: Job
metadata:
name: ollama-model-pull
namespace: chatbot
spec:
backoffLimit: 6
template:
spec:
restartPolicy: OnFailure
containers:
- name: pull-models
image: ollama/ollama:latest
env:
- name: OLLAMA_HOST
value: "http://ollama:11434"
command:
- /bin/sh
- -c
- |
set -eu
echo "Waiting for Ollama API at ${OLLAMA_HOST}..."
until ollama list >/dev/null 2>&1; do
sleep 5
done

while IFS= read -r model; do
model="$(echo "$model" | xargs)"
[ -z "$model" ] && continue
case "$model" in
\#*) continue ;;
esac
echo "Pulling model: $model"
ollama pull "$model"
done < /models/models.txt
volumeMounts:
- name: models
mountPath: /models
readOnly: true
volumes:
- name: models
configMap:
name: ollama-models
8 changes: 8 additions & 0 deletions overlays/dev-ollama/ollama-models-configmap.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
apiVersion: v1
kind: ConfigMap
metadata:
name: ollama-models
namespace: chatbot
data:
models.txt: |
tinyllama