All checks were successful
Deploy CSI Jobs / deploy (push) Successful in 36s
Both plugin jobs are pinned to int with count = 1 and had no restart or reschedule stanza. When int goes away the allocations are marked Lost and never return — csi-nfs-node showed 1 Complete / 3 Lost / 0 Failed, so these were never application crashes, they were the node disappearing. The plugin has been down since 2026-06-08 as a result. Adds restart + unlimited reschedule with exponential backoff so they recover on their own. The image was :latest, against our own rule for Nomad. The copy cached on int is sha256:944d0e65 and roughly seven months old, so any fresh pull on another node would get a different build — a good way to make failures irreproducible. Pinned to the digest that has actually been running. Memory was 128 MB for a Node.js process. Raised to 256 with memory_max so mount and provisioning activity can burst without permanently reserving it. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
nomad-csi
Nomad CSI storage for i80.dk — democratic-csi + NFS on int.i80.dk.
Architecture
- NFS server:
int.i80.dkexports/opt/csi-volumesto 192.168.15.0/24 - CSI driver: democratic-csi v1.9.0
- Plugin ID:
org.democratic-csi.nfs
Deploy
# One-time: deploy CSI controller + node plugin
nomad job run csi/controller.nomad
nomad job run csi/node.nomad
# Verify
nomad plugin status org.democratic-csi.nfs
Create a volume
# Edit csi/volumes/example.hcl with your id/name/size, then:
nomad volume create csi/volumes/my-volume.hcl
# Volumes are persistent — only deleted explicitly:
nomad volume delete my-volume-id
Use in a job
volume "data" {
type = "csi"
source = "my-volume-id"
access_mode = "single-node-writer"
attachment_mode = "file-system"
}
# ...in the task:
volume_mount {
volume = "data"
destination = "/data"
}
Expanding to all workers
When ready, update csi/node.nomad:
- Change
type = "service"→type = "system" - Remove the
constraintblock
Workers need nfs-common installed (via Ansible storage.yml playbook).
Description
Languages
HCL
100%