Skip to main content

Ollama (ollama)

Inference engine for light and quantized models with an OpenAI compatible and a native API, on CPU hosts or NVIDIA GPU hosts. Several models per instance (loaded on demand), parallel requests and queue settings, models hosted on the host (pulled from a registry or imported from validated GGUF files). Registered automatically in LiteLLM.

Generated from catalog/services/ollama.yaml: do not edit by hand.

Summary​

Version0.40.14
Useinstall and configure, configure and connect
Layerfunctional (AI catalog)
CategoryAI serving
Installation methodspodman
External connectionno
Sandbox onlyno

Licence​

SPDX identifierMIT
Licence policycore licence (MIT or Apache-2.0)
Licence exception-
Platform componentollama

Packages and artifacts​

A package the project of the service publishes (its image, its binary archive, its Python or OS package) carries the licence of the service; a third-party package carries the licence written on its row, read from the official upstream metadata.

KindPackageVersionLicenceDetails
container imagedocker.io/ollama/ollama0.40.14MITimage key ollama, used by server, digest sha256:ebaef4f4c5d93660e1f25f8ad085a112f51ccfb0e8458073e71793959dba91c9
container imagedocker.io/nginxinc/nginx-unprivileged1.30.6-alpine-slimMITimage key tls_front, used by tls-front, digest sha256:5d8bb9437d74a600ec5dbf90c035451c724dc33eac8d3a71078f6f8612c345f6

Images are pinned by tag in the descriptor, and by digest when the descriptor declares one (the offline bundle then refuses a pulled image that does not carry it); the digest is recorded in the mirror of the Manager when the offline bundle is imported, and every pull or load is checked against it.

Supported systems and architectures​

MethodOperating systemsArchitectures
podmanRHEL family (dnf), Debian family (apt), Arch Linux (pacman)x86_64, aarch64 (not restricted by the descriptor)

Certified host systems: RHEL 8/9/10, Rocky Linux 8/9/10, AlmaLinux 8/9/10, Oracle Linux 8/9, CentOS Stream 9/10, Ubuntu 22.04/24.04, Debian 12, Arch Linux (rolling). The host preflight accepts these systems (other releases of a known family give a warning, end of life releases are refused) and the x86_64 and aarch64 architectures.

GPU: NVIDIA GPU given to the component as CDI devices (nvidia.com/gpu): server (when the configuration asks for it).

Prerequisites​

Host​

  • at least 4096 MB of memory (blocking, memory).
  • at least 1 NVIDIA GPU with 4000 MB of memory, only when accelerator is gpu (blocking, gpu).
  • at least 4 CPU, only when accelerator is cpu (warning, cpu_cores).
  • the program podman installed on the host (blocking, podman).
  • at least 20480 MB free for /var/lib/navin (warning, model_disk).

Programs the commands and checks of the service start on the host, outside the managed roots: add them to allowed_commands of the agent (see Security of the Navin agent), else the agent refuses them with command_not_allowed: /usr/bin/nvidia-smi, /usr/bin/podman.

Network and ports​

ComponentPort namePortOpened in the host firewall
serverapi11434/tcpyes
serverapi_internal11434/tcpno
tls-frontapi11434/tcpyes

Services and connections needed​

This service has no dependency.

Installation methods and modes​

MethodDefaultWhat the method uses
podmanyesthe container images of the descriptor, run by Podman under systemd

Components​

ComponentKindInstallation methodsPorts
Ollama server (server)masterpodman11434/tcp, 11434/tcp
TLS front (tls-front)masterpodman11434/tcp

Single instance (sandbox) (single) (default)​

One engine on one CPU or GPU host.

What the mode deploys:

ComponentPlacement
servermin 1, max 1
tls-frontmin 1

Replicated (high availability) (replicated)​

Independent instances with the same models on distinct hosts; LiteLLM balances and fails over between them. The model commands run on every instance.

What the mode deploys:

ComponentPlacement
servermin 2, recommended 2
tls-frontmin 1

Install this service​

The install wizard of the Navin Manager plans, validates and runs the installation; you need the services:install permission on the cluster.

  1. Open the wizard. In Clusters, choose the row action Install services of the target cluster. The wizard opens on its first step, Service.

  2. Choose the service. On the Service step, select Ollama. The card shows the licence MIT.

  3. Choose the hosts and the mode. On the Hosts step, tick the hosts, then choose the Mode: single (default), replicated. Each mode deploys the components listed in Installation methods and modes. With several components, place each one on its hosts in Component placement (Suggest placement proposes a placement that respects the cardinalities).

  4. Bindings. This service has no dependency: the Bindings step has nothing to bind.

  5. Configure. On the Configure step, review the parameters (see Configuration parameters). Passwords left empty with a generated default are generated and sealed by the Manager.

  6. Review and install. On the Install step the Manager validates the plan and shows the installation order; when it says "The plan is valid. Ready to install.", choose Install. A highly available mode is installed only when its HA checks pass.

  7. Verify. The operation ends when the health checks of every instance pass (see Health checks); the service then shows as running in Services.

Connect an existing service​

Schemeshttps, http
Default port11434
Authenticationnone
Health check/api/version
Authentication methodFieldsDescription
none-Ollama has no authentication of its own: keep it on the internal network or behind an authenticating gateway.

Official documentation: https://github.com/ollama/ollama/blob/main/docs/faq.md

High availability​

Clusterreplicas (replication)
High availabilityredundancy (redundancy)
Failoverclient side (client)
Replicationnone (none)
Quorumnone (none)
Discoverystatic (static)
Entry pointany node (any-node)
Official documentationhttps://docs.ollama.com/faq
Referenceshttps://docs.ollama.com/docker, https://docs.litellm.ai/docs/routing

Prerequisites​

PrerequisiteMust be highly availableModesDescription
litellmyesreplicatedHighly available LiteLLM (two proxies or more): it balances and fails over between the instances; agents and applications never call Ollama directly.

Topology per mode​

ModesHighest catalog levelDistributionQuorum componentFault domainsDescription
singlestandalone (standalone)single (single)-1One engine on one CPU or GPU host, no fault tolerance.
replicatedha (ha)active-active (active-active)-2Independent instances with the same models on distinct hosts; LiteLLM fails over between them.

Notes​

  • The models are stored on each host: pull or import them on every instance (the model commands run on all of them) before publishing them in LiteLLM.
  • Ollama serves its API in plain HTTP only (OLLAMA_HOST takes no certificate). With TLS on, a TLS front (nginx with the certificate of the Manager) placed next to each engine takes the API port, the engine stays on the network of the service and LiteLLM verifies the certificate with the CA of the Manager. Turning TLS on or off adds or removes the fronts at the next configuration apply; LiteLLM is then shown with changes to apply.

Configuration parameters​

Models and hosting​

ParameterTypeDefaultAllowed valuesRequiredSecretRestartDescription
Models published in LiteLLM (litellm_models)list["llama3.2"]-nononoModels of this engine LiteLLM exposes (one ollama_chat entry per model and per instance); pull or import them on every instance first.
Keep loaded (keep_alive)string5m^(-1|0|[0-9]+[smh])$nonoyesHow long an idle model stays in memory (OLLAMA_KEEP_ALIVE): 5m, 1h, -1 forever, 0 unload at once.

CPU or GPU host​

ParameterTypeDefaultAllowed valuesRequiredSecretRestartDescription
Host type (accelerator)enumgpugpu, cpunonoyesgpu: NVIDIA GPU host (driver and NVIDIA Container Toolkit CDI specification required); cpu: CPU only host (quantized models).
GPUs (gpu_devices)stringall^(all|[A-Za-z0-9-]+(,[A-Za-z0-9-]+)*)$nonoyesGPUs given to the engine: all, or a comma list of indexes or UUIDs (GPU pool distinct from the vLLM pool).

Concurrency and memory​

ParameterTypeDefaultAllowed valuesRequiredSecretRestartDescription
Parallel requests per model (num_parallel)int4min 1, max 64nonoyesOLLAMA_NUM_PARALLEL: requests a loaded model serves at once (the context memory grows with it).
Loaded models (max_loaded_models)int2min 1, max 32nonoyesOLLAMA_MAX_LOADED_MODELS: models kept loaded at the same time, within the VRAM or the RAM.
Queue (max_queue)int512min 1, max 100000nonoyesOLLAMA_MAX_QUEUE: waiting requests before the engine answers busy (LiteLLM then retries another instance).
Context length (context_length)int4096min 512, max 1048576nonoyesOLLAMA_CONTEXT_LENGTH: default context window of the loaded models.
Flash attention (flash_attention)booltrue-nonoyesOLLAMA_FLASH_ATTENTION: lower memory use of the context on supported GPUs.
KV cache precision (kv_cache_type)enumf16f16, q8_0, q4_0nonoyesOLLAMA_KV_CACHE_TYPE (needs flash attention): q8_0 halves the context memory.

Network​

ParameterTypeDefaultAllowed valuesRequiredSecretRestartDescription
API port (port)port11434-nonoyesPort of the API, bound to the host address and reached by LiteLLM only (served by the TLS front when TLS is on).

Security​

ParameterTypeDefaultAllowed valuesRequiredSecretRestartDescription
TLS of the API (tls_enabled)boolfalse-nonoyesServes the API in HTTPS with the certificate of the Manager: Ollama has no TLS of its own, a TLS front (nginx) placed next to each engine takes the API port and the engine is no longer published on the host. LiteLLM then verifies the certificate with the CA of the Manager.

Endpoints​

EndpointSchemeComponentPortPathTLS parameterBinding parametersBinding secretsProvisioning command
apihttpserver11434 (port)-tls_enabledmodels, engine--

Commands​

CommandComponentTargetDescription
Hosted models (list_models)serverevery hostModels stored on every instance, with their size (ollama list).
Loaded models (running_models)serverevery hostModels loaded in memory on every instance, with the CPU and GPU share (ollama ps).
Download a model (pull_model)serverevery hostDownloads a model on every instance from the Ollama registry or an internal registry (full reference registry/namespace/model:tag).
Import a GGUF model (import_model)serverevery hostCreates a model on every instance from a validated GGUF file copied to /var/lib/navin/ollama/import of each host (offline installation, no download).
Import a fine-tuned model (import_safetensors)serverevery hostCreates a model on every instance from a Safetensors folder of /var/lib/navin/ollama/import (merged export of LLaMA-Factory, copied by its publish_to_ollama command), for the architectures Ollama imports (Llama, Mistral, Gemma, Qwen). Then add the model name to litellm_models.
Delete a model (delete_model)serverevery hostRemoves a model from every instance (ollama rm). (asks for confirmation)
GPU status (gpu_status)serverevery hostUsage, memory and temperature of the GPUs of every host (nvidia-smi).
Recent logs (logs)serverchosen hostLast lines of the engine journal.

Command parameters​

CommandParameterTypeDefaultRequiredDescription
pull_modelModel (model)string-yesModel reference, for example llama3.2:3b or registry.example.internal/library/qwen3:8b.
import_modelModel name (model)string-yesName of the created model, for example qwen3-8b-q4.
import_modelGGUF file (file)string-yesFile name in the import folder of the host.
import_safetensorsModel name (model)string-yesName of the created model, for example support-qwen3-8b.
import_safetensorsFolder (folder)string-yesFolder name in the import folder of the host.
delete_modelModel (model)string-yesModel reference as shown by Hosted models.

Health checks​

Liveness (per instance)​

ComponentCheckDetails
serverHTTP http://{{ host.ip or '127.0.0.1' }}:{{ config.port }}/api/versionExpected 200; 60 retries; interval 2 s; timeout 5 s
server/usr/bin/podman exec navin-{{ service.name }}-server ollama list60 retries; interval 2 s; timeout 10 s
tls-frontHTTP https://{{ host.fqdn }}:{{ config.port }}/api/versionExpected 200; 60 retries; interval 2 s; timeout 5 s

Readiness (service check)​

CheckDetails
HTTP {{ 'https://' ~ host.fqdn if config.tls_enabled else 'http://' ~ (host.ip or '127.0.0.1') }}:{{ config.port }}/api/tagsExpected 200; 10 retries; interval 3 s; timeout 10 s

Preflight checks​

CheckTypeMeaningSeverityComponents
memorymemory_mb {"min": 4096}at least 4096 MB of memoryblockingevery component
gpugpu {"min_count": 1, "min_memory_mb": 4000}at least 1 NVIDIA GPU with 4000 MB of memory, only when accelerator is gpublockingevery component
cpu_corescpu_count {"min": 4}at least 4 CPU, only when accelerator is cpuwarningevery component
podmanbinary {"name": "podman"}the program podman installed on the hostblockingevery component
model_diskdisk_free_mb {"path": "/var/lib/navin", "min": 20480}at least 20480 MB free for /var/lib/navinwarningevery component
api_port_freeport_free {"param": "port"}port 11434 free on the hostblockingevery component

Uninstall​

Paths removed when the data is purged: {{ paths.data }}, {{ paths.log }}.

Upstream documentation​