From 7a63a072b3a83b5ff7142e5d08ca5149c010d598 Mon Sep 17 00:00:00 2001 From: Ben Martin Date: Thu, 20 Mar 2025 01:06:47 +0000 Subject: [PATCH] chore(ollama): add Ollama module and job specification --- main.tf | 4 +++ modules/ollama/jobspec.nomad.hcl | 49 ++++++++++++++++++++++++++++++++ modules/ollama/main.tf | 3 ++ 3 files changed, 56 insertions(+) create mode 100644 modules/ollama/jobspec.nomad.hcl create mode 100644 modules/ollama/main.tf diff --git a/main.tf b/main.tf index 05bf958..ae35fef 100644 --- a/main.tf +++ b/main.tf @@ -41,3 +41,7 @@ module "forgejo" { module "keycloak" { source = "./modules/keycloak" } + +module "ollama" { + source = "./modules/ollama" +} diff --git a/modules/ollama/jobspec.nomad.hcl b/modules/ollama/jobspec.nomad.hcl new file mode 100644 index 0000000..b55675e --- /dev/null +++ b/modules/ollama/jobspec.nomad.hcl @@ -0,0 +1,49 @@ +job "ollama" { + group "ollama" { + + network { + port "api" { + static = 11434 + } + } + + ephemeral_disk { + migrate = true + size = 5000 + } + + task "ollama" { + driver = "docker" + + constraint { + attribute = "${node.unique.name}" + value = "Hestia" + } + + config { + image = "ollama/ollama:latest" + runtime = "nvidia" + ports = ["api"] + + volumes = [ + "alloc/data/:/root/.ollama" + ] + } + + env { + NVIDIA_DRIVER_CAPABILITIES = "all" + NVIDIA_VISIBLE_DEVICES = "all" + } + + resources { + cpu = 100 + memory = 1024 + } + } + + service { + provider = "consul" + port = "api" + } + } +} diff --git a/modules/ollama/main.tf b/modules/ollama/main.tf new file mode 100644 index 0000000..559c995 --- /dev/null +++ b/modules/ollama/main.tf @@ -0,0 +1,3 @@ +resource "nomad_job" "ollama" { + jobspec = file("${path.module}/jobspec.nomad.hcl") +}