78 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			HCL
		
	
	
	
			
		
		
	
	
			78 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			HCL
		
	
	
	
| job "democratic-csi-iscsi-node" {
 | |
|   datacenters = ["dc1"]
 | |
| 
 | |
|   # you can run node plugins as service jobs as well, but this ensures
 | |
|   # that all nodes in the DC have a copy.
 | |
|   type = "system"
 | |
| 
 | |
|   group "nodes" {
 | |
|     task "plugin" {
 | |
|       driver = "docker"
 | |
| 
 | |
|       env {
 | |
|         CSI_NODE_ID = "${attr.unique.hostname}"
 | |
|         
 | |
|         # if you run into a scenario where your iscsi volumes are zeroed each time they are mounted,
 | |
|         # you can configure the fs detection system used with the following envvar:
 | |
|         #FILESYSTEM_TYPE_DETECTION_STRATEGY = "blkid"
 | |
|       }
 | |
| 
 | |
|       config {
 | |
|         image = "docker.io/democraticcsi/democratic-csi:latest"
 | |
| 
 | |
|         args = [
 | |
|           "--csi-version=1.5.0",
 | |
|           # must match the csi_plugin.id attribute below
 | |
|           "--csi-name=org.democratic-csi.iscsi",
 | |
|           "--driver-config-file=${NOMAD_TASK_DIR}/driver-config-file.yaml",
 | |
|           "--log-level=info",
 | |
|           "--csi-mode=node",
 | |
|           "--server-socket=/csi/csi.sock",
 | |
|         ]
 | |
| 
 | |
|         # node plugins must run as privileged jobs because they
 | |
|         # mount disks to the host
 | |
|         privileged = true
 | |
|         ipc_mode = "host"
 | |
|         network_mode = "host"
 | |
| 
 | |
|         mount {
 | |
|           type = "bind"
 | |
|           target = "/host"
 | |
|           source = "/"
 | |
|           readonly=false
 | |
|         }
 | |
|         
 | |
|         # if you run into a scenario where your iscsi volumes are zeroed each time they are mounted,
 | |
|         # you can try uncommenting the following additional mount block:
 | |
|         #mount {
 | |
|         #  type     = "bind"
 | |
|         #  target   = "/run/udev"
 | |
|         #  source   = "/run/udev"
 | |
|         #  readonly = true
 | |
|         #}
 | |
|       }
 | |
| 
 | |
|       template {
 | |
|         destination = "${NOMAD_TASK_DIR}/driver-config-file.yaml"
 | |
| 
 | |
|         data = <<EOH
 | |
| config
 | |
| EOH
 | |
|       }
 | |
| 
 | |
|       csi_plugin {
 | |
|         # must match --csi-name arg
 | |
|         id        = "org.democratic-csi.iscsi"
 | |
|         type      = "node"
 | |
|         mount_dir = "/csi"
 | |
|       }
 | |
| 
 | |
|       resources {
 | |
|         cpu    = 500
 | |
|         memory = 256
 | |
|       }
 | |
|     }
 | |
|   }
 | |
| }
 |