# nomad-csi Nomad CSI storage for i80.dk — democratic-csi + NFS on int.i80.dk. ## Architecture - **NFS server**: `int.i80.dk` exports `/opt/csi-volumes` to 192.168.15.0/24 - **CSI driver**: [democratic-csi](https://github.com/democratic-csi/democratic-csi) v1.9.0 - **Plugin ID**: `org.democratic-csi.nfs` ## Deploy ```bash # 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 ```bash # 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 ```hcl 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 `constraint` block Workers need `nfs-common` installed (via Ansible `storage.yml` playbook).