What's Changed
Migration to Temporal for NOMAD v1.4.0 Processing
The Docker Compose setup has been updated to support Temporal-based workflows.
By default, the docker-compose.yaml now runs four worker replicas. Adjust this number based on your server capacity. Refer to the README section on configuring worker replicas and resource limits for guidance.
You can monitor resource usage with:
docker statsand check CPU and memory capacity using:
lscpu && free -hUse these commands to tune your worker replica count for optimal performance.
Infrastructure for NOMAD Actions
NOMAD v1.4.0 introduces NOMAD Actions, a powerful new framework that lets plugin authors build durable, fault-tolerant, and reproducible workflows powered by Temporal. With Actions, you can orchestrate complex computations directly within NOMAD while maintaining full control over execution and recovery.
See the documentation for details: How to Define an Action
In this template, the build steps for cpuworker and gpuworker images are commented out by default. To enable Actions, follow the Enabling NOMAD Actions guide after adding a plugin that includes an ActionEntryPoint.
Secret Management
NOMAD v1.4.0 enforces stricter API secret handling. The system now raises an error if no API secret is set.
Use the provided script to generate a secure secret and store it in the .env file (which is gitignored):
scripts/generate-env.shNew Test for App Entry Points
A new test file, test_app_entry_points.py, has been added to validate that all app entry points are defined correctly.
Previously, misconfigured entry points could cause an app to crash when opened in the browser.
With this test, such issues are now detected early in the development pipeline.
Updating from the Template
To merge updates from the latest template release:
git remote add template https://github.com/FAIRmat-NFDI/nomad-distro-template
git fetch template
git merge v2.2.0 --allow-unrelated-historiesResolve merge conflicts as needed. At minimum, take the following files from the template (“theirs”):
git checkout --theirs Dockerfile
git checkout --theirs .github/workflows/docker-publish.ymlFor docker-compose.yaml, accept the template version and then update image URLs as required.
The .github/workflows/initialize.yml workflow can update image URLs automatically:
git checkout --theirs docker-compose.yamlIf desired, keep your existing dependency lock file:
git checkout --ours uv.lockThese updates align the distribution with NOMAD v1.4.0’s Temporal-based infrastructure and security improvements.
Full Changelog: v2.1.0...v2.2.0