nf-nomad @ 0.5.0-edge7
Summary
This plugin implements a Nextflow executor for Hashicorp Nomad, enabling Nextflow pipelines to execute tasks on Nomad clusters. It is a community-contributed plugin developed collaboratively by Abhinav Sharma, Jorge Aguilera, Tomas, and the Center For Medical Genetics Ghent team.
Get Started
To use this plugin in your Nextflow pipeline, add the following to your nextflow.config file:
plugins {
id 'nf-nomad'
}
process {
executor = 'nomad'
}
nomad {
client {
address = 'http://your-nomad-server:4646'
}
}
Unit Testing
Run the following command in the project root directory:
./gradlew check
Test Environment Selection
The Gradle test task supports selecting the target environment with -PtestEnv:
./gradlew test→ unit tests only./gradlew test -PtestEnv=mock→ unit + mock tests./gradlew test -PtestEnv=local→ unit + local Nomad integration tests./gradlew test -PtestEnv=oci→ unit + OCI Nomad integration tests
For local integration tests with a custom endpoint:
./gradlew test -PtestEnv=local -PnomadAddr=http://<host>:4646
Development Environment Setup
-
Clone the Nextflow repository:
git clone --depth 1 https://github.com/nextflow-io/nextflow _resources/nextflow -
Generate the nextflow class path:
cd _resources/nextflow && ./gradlew exportClasspath -
Compile the plugin:
cd ../../ && ./gradlew compileGroovy -
Run Nextflow with the plugin:
./launch.sh run main.nf -plugins nf-nomad
Examples
Basic Process Configuration with Custom Resources
The following example demonstrates how to configure a Nextflow pipeline to target a specific process to run on Nomad with customized datacenters and resource limits:
// nextflow.config
plugins {
id 'nf-nomad'
}
process {
executor = 'nomad'
withName: runAlignment {
nomadOptions = [
datacenters: ['dc-analytics'],
priority: 'high',
resources: [
cores: 8,
memoryMax: '32 GB'
]
]
}
}
Advanced Process-Level Nomad Options
Process directives support map-based nomadOptions for comprehensive control:
process {
withName: sayHello {
nomadOptions = [
datacenters: ['dc1', 'dc2'],
namespace: 'bio',
constraints: { node { unique = [name: params.RUN_IN_NODE] } },
affinity: [attribute: '${meta.workload}', operator: '=', value: 'batch', weight: 25],
meta: [owner: 'team-x', step: 'align'],
shutdownDelay: '15s',
failures: [
restart: [attempts: 1, delay: '5s', mode: 'fail'],
reschedule: [attempts: 2, delay: '10s']
],
volumes: [[type: 'host', name: 'ref-data', path: '/ref', readOnly: true]],
secretsPath: 'secret/projects/team-x',
secrets: ['MY_ACCESS_KEY', 'MY_SECRET_KEY'],
spread: [name: 'node.datacenter', weight: 50, targets: ['us-east1': 70, 'us-east2': 30]],
priority: 'high',
resources: [memoryMax: '64 GB', cores: 4, device: [[name: 'nvidia/gpu', count: 1]]]
]
}
}
CPU Mode Configuration
Control task concurrency by setting the CPU mode:
nomad {
jobs {
cpuMode = 'cpu' // oversubscribe; default is 'cores'
}
}
Sizing Configuration for Large Runs
Configure executor queue size and placement failure handling:
executor {
queueSize = 12 // e.g. one 48-core node, cpus = 4, cpuMode = 'cores'
}
nomad {
jobs {
failOnPlacementFailure = true
placementFailureTimeout = '30m'
}
}
License
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.
| Nextflow version | >=26.04.3 |
|---|---|
| Depends On | - |
| Release Date | 04 Sep 2026 18:31:57 (UTC) |
| Release Notes | https://github.com/nextflow-io/nf-nomad/releases/tag/0.5.0-edge7 |
| Download URL | https://registry.nextflow.io/api/v1/plugins/nf-nomad/0.5.0-edge7/download/nf-nomad-0.5.0-edge7.zip |
| Store URL | https://public.cr.seqera.io/v2/nextflow/plugin/nf-nomad/blobs/sha256:0a273270c5e2144e00e1a74e6f668dd86724d23635321baebc9701b583558a5b |
| Size | 4.6 MB |
| Checksum | 73049972706554bd0b69eb124e5da1b41b5e2d00220ed2df33ac95d84eda9a31cdab579a939ab39ed7d1eec8f236e2f64dc44e8207fdb758058adbf905171a40 |
| Total downloads | 28 View trends |
| Security Scan |
| Version | Nextflow version | Date | Status | Downloads |
|---|---|---|---|---|
| 0.5.0-edge7 | >=26.04.3 | 04 Sep 2026 18:31:57 (UTC) | 28 | |
| 0.5.0-edge6 | >=26.04.3 | 31 Aug 2026 12:54:29 (UTC) | 17 | |
| 0.5.0-edge5 | >=26.04.3 | 30 Aug 2026 10:30:00 (UTC) | 22 | |
| 0.5.0-edge4 | >=26.04.3 | 28 Aug 2026 05:26:05 (UTC) | 41 | |
| 0.5.0-edge3 | >=26.04.3 | 03 Aug 2026 15:14:20 (UTC) | 12 | |
| 0.4.4 | >=26.04.3 | 30 Jun 2026 19:58:39 (UTC) | 62 | |
| 0.5.0-edge2 | >=26.04.3 | 30 Jun 2026 12:01:45 (UTC) | 4 | |
| 0.4.3 | >=26.04.3 | 30 Jun 2026 11:03:49 (UTC) | 5 | |
| 0.4.2 | >=26.04.3 | 30 Jun 2026 10:19:54 (UTC) | 3 | |
| 0.4.1 | >=25.10.4 | 17 Jun 2026 08:43:43 (UTC) | 778 | |
| 0.5.0-edge1 | >=26.04.3 | 07 Jun 2026 10:40:59 (UTC) | 8 | |
| 0.4.0 | >=25.10.4 | 06 Jun 2026 06:42:08 (UTC) | 205 | |
| 0.4.0-edge8 | >=25.10.4 | 04 Jun 2026 06:43:24 (UTC) | 36 | |
| 0.4.0-edge7 | >=25.10.4 | 26 May 2026 09:52:03 (UTC) | 105 | |
| 0.4.0-edge6 | >=25.10.4 | 25 May 2026 16:58:35 (UTC) | 4 | |
| 0.4.0-edge5 |