×

nf-nomad @ 0.5.0-edge7

Provider: nextflow-io
Claimed: 05 Sep 2025 07:05:53 (UTC)
Description: This plugin enables Nextflow to execute computational tasks on HashiCorp Nomad clusters, allowing users to leverage Nomad's resource orchestration capabilities for pipeline workflows. It solves the problem of integrating Nextflow with Nomad infrastructure by providing a custom executor with support for advanced features like resource constraints, datacenter targeting, and failure handling. Bioinformatics teams and researchers using Nomad-based infrastructure would use this plugin to run their Nextflow pipelines across distributed cluster resources.
Latest version: 0.5.0-edge7
Total downloads: 7.1K View trends

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

  1. Clone the Nextflow repository:

    git clone --depth 1 https://github.com/nextflow-io/nextflow _resources/nextflow
    
  2. Generate the nextflow class path:

    cd _resources/nextflow && ./gradlew exportClasspath
    
  3. Compile the plugin:

    cd ../../ && ./gradlew compileGroovy
    
  4. 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