Releases: hashicorp/nomad
Releases · hashicorp/nomad
Release list
v2.0.7
IMPROVEMENTS:
- dependency: Upgrade to the latest buf (1.72.0), protoc-gen-go (1.36.6), and protoc-gen-go-grpc (1.5.1) [GH-28525]
- services: the default workload identity policy now allows using wildcard namespace queries for Nomad native services [GH-28534]
- ui: fixed accessibility color contrast issues [GH-28022]
BUG FIXES:
- api: Fix job statuses error when request body is empty using HTTP2 [GH-28541]
- client: Fixed a bug where task restart skipped
shutdown_delay[GH-25289] - core: Fixed a bug where re-submitting an otherwise unchanged job with a different ACL token created a new job version and deployment [GH-26810]
- deployments: Fixed a bug where system job updates would not result in a new deployment if the prior deployment failed [GH-28545]
- docker: Fixed a bug where image_pull_timeout was not respected if more than 5min [GH-28543]
- identity: Fixed a bug where clients would not attempt to recreate expired node identities [GH-28566]
- namespaces: Fixed a bug where an invalid replication token could delete namespaces in a federated follower region [GH-28552]
- namespaces: Fixed a bug where namespaces could stop replicating between federated regions [GH-28552]
- node pools: Fixed a bug where an invalid replication token could delete node pools in a federated follower region [GH-28552]
- node pools: Fixed a bug where blocking queries would not unblock if a node pool was added automatically by registering a node [GH-28552]
- node pools: Fixed a bug where node pools could stop replicating between federated regions [GH-28552]
v2.0.6
SECURITY:
- dependency: Upgrade to the latests go-getter [GH-28510]
IMPROVEMENTS:
- api: Updated the Go module to require at least 1.26.0 [GH-28460]
- build: Updated Go to v1.27.1 [GH-28451]
- client: Added the
unique.host_idnode attribute to the host fingerprint, when available [GH-28406] - job: Allow setting
reschedule.delayto values as low as 1s [GH-28477] - jobspec2: Decouple from Nomad core with isolated Go module named
github.com/hashicorp/nomad/jobspec2[GH-28419] - scheduler: Improved robustness of reschedule logic for invalid states [GH-28445]
- ui: prevent stuck requests due to exceeding connection limit, enable HTTP2 [GH-28364]
BUG FIXES:
- api: Fixed a bug where a job plan diff sorted indexed fields such as
argslexically, listingargs[10]beforeargs[2][GH-4421] - client: prevent Alloc FS API from accessing secret dir when symlinked into task [GH-28468]
- core: Fixed a bug where an artifact
checksumof the formfile:<url>(fetching the checksum from a remote file) was rejected during job validation [GH-9764] - jobspec: Fixed a bug where a task group containing only lifecycle tasks and no main task was accepted during job validation [GH-17570]
- planner: Fixed a bug where valid evaluations could be unnecessarily retried, delaying workload placement under load [GH-28452]
- scheduler: Fixed a bug where task groups with
per_allocvolumes could skip real feasibility checks for allocs after the first placement failure in the same task group [GH-28422] - state: Fixed a bug where plans from older versioned followers did not have allocation resource schemas upgraded when written on the leader [GH-28447]
- vault: Fixed a bug where a task's change_mode was triggered on each Vault token renewal [GH-28409]
- vault: fixes an issue where dead tasks continued to have their tokens renewed [GH-28501]
v2.0.5
BREAKING CHANGES:
- plugin: The
DriverNetwork.Hashmethod has been removed from theplugin/driverspackage. [GH-28342]
IMPROVEMENTS:
- build: Update Go to v1.26.5 [GH-28260]
- checks: Nomad native service check IDs are now SHA256 [GH-28361]
- cli: add
-json-outputand-tflags tonomad job planfor structured plan output [GH-27369] - consul: Added the issuing Nomad client's node ID to the metadata of Consul tokens created via workload identity [GH-28133]
- consul: Check IDs are now derived from SHA256 instead of SHA1 [GH-28362]
- jobspec: Removed the requirement that a variable validation
error_messagebe a full English sentence, allowing messages written in any language [GH-28246] - planner: Added plan_apply_pipeline configuration that allows the leader to have more outstanding Raft writes when evaluating plans [GH-28249]
- services: rendezvous hashes are now SHA256 [GH-28363]
- template: Add
run_on_first_renderoption tochange_scriptto execute scripts on the initial template render via the task Poststart lifecycle hook. [GH-27819]
BUG FIXES:
- agent: Fixed a bug where the startup banner would display the wrong node ID for servers after restart [GH-28276]
- api: Fixed a bug where the client allocation endpoints returned a 500 error instead of a 404 when the allocation's node could not be found [GH-28261]
- auth: Fixed a bug where nodes could not sync allocations placed on them after being moved to a different node pool [GH-28110]
- cli: Fixed a bug where
nomad operator root keyring removewould not accept an abbreviated key ID [GH-24148] - client: Fix issue where deleted allocations may remain running [GH-28394]
- client: Fixed a bug where a client could panic after an alloc is GC'd [GH-28187]
- client: Fixed a bug where the client would not remount the secret and private tmpfs after a restart [GH-28345]
- client: Fixed a bug where the previous allocation watcher would retry forever when the server returned a permanent error during data migration [GH-28191]
- csi: Fixed a bug where evals blocked on missing CSI volumes would not unblock [GH-28275]
- deployments: Fix garbage collection to respect threshold [GH-28225]
- docker: Fixed a bug where tasks could execute outside of their assigned cpuset range [GH-28272]
- drivers/java: Fixed a bug where the Java driver did not correctly decode the
work_diroption [GH-28330] - jobspec: Fixed a bug where a negative
coresvalue in a task's resource block was accepted during job validation and registration [GH-10511] - quota (Enterprise): Fixed a bug where disabling the use of cores in a quota would block the ability to use either cores or CPU in a job
- scheduler: Ensure deployment IDs are not written to an evaluation when the generated deployment is not persisted to state due to plan apply retries [GH-28307]
- scheduler: Fixed a bug where the scheduler could panic with a nil pointer dereference when checking host volume feasibility for an allocation whose job had been purged [GH-28301]
- secrets: Fixed hooks to allow refetch during prestart [GH-28237]
- services: Fixed a bug where task secrets were not interpolated into service check
HeaderandArgs, or into serviceTags[GH-28212] - ui: Fixed SSO sign in display not displaying when SSO enabled [GH-28262]
- ui: Fixed a bug where the job status panel would show "Complete" instead of "Scaled Down" for system and sysbatch jobs with zero allocations [GH-27949]
- ui: Fixed the region identifier header showing as empty in single region clusters [GH-28310]
- ui: Fixed version diff display and missing deployment version numbers [GH-28294]
- ui: check websocket upgrade headers with multiple values [GH-28234]
- ui: refetch nomad license when logging in with new token [GH-28284]
v1.11.8 (Enterprise)
SECURITY:
- docker: Enforce
allowed_modesorallow_privilegedrequirement to set host namespace modes in task. This is CVE-2026-14891. [GH-28190] - docker: Fixed a bug where docker tasks could use a symlink to bypass the plugin configuration for volumes.enabled=false. This is CVE-2026-14896. [GH-28177]
- dynamic host volumes: Fixed a bug where users with
host-volume-deletein one namespace could delete claims from another namespace [GH-28205]
IMPROVEMENTS:
- consul: Allow service, template, and connect blocks to fallback to the Nomad client agent's Consul token if workload identity is unavailable [GH-28106]
- driver: Added optional
Initfunction for task driver plugins [GH-28104] - driver: Added optional
Shutdownfunction for task driver plugins [GH-28102]
BUG FIXES:
- api: allow using WI tokens on plan endpoint [GH-28139]
- cli: Fixed a bug where complex HCL variables passed via -var flag could not be edited in the web UI [GH-28138]
- dynamic host volumes: Fixed a bug where allocations claiming host volumes with the per_alloc flag would not prevent the volume from being deleted [GH-28198]
- metrics: expired metrics are now periodically cleared from the Prometheus sink even if no collection occurs [GH-28170]
- scheduler: Fixed a bug where a node could be marked feasible for a task group requesting multiple host volumes when a satisfied sticky volume request short-circuited the checks for the remaining requests [GH-28097]
- scheduler: Fixed a bug where setting
stickyon a static host volume could fail the evaluation instead of being rejected during feasibility checking [GH-28097] - scheduler: keep draining batch alloc counted when node is re-enabled [GH-28018]
- task runner: Improve the memory management for secrets [GH-28140]
- ui: Fixed a bug where jobs that share a ModifyIndex (for example, several jobs rescheduled in a single Raft transaction after a node failure) were omitted from the jobs page and the
/v1/jobs/statusesendpoint [GH-28132] - ui: fixes an issue where streaming task logs would error [GH-28137]
v1.10.14 (Enterprise)
SECURITY:
- docker: Enforce
allowed_modesorallow_privilegedrequirement to set host namespace modes in task. This is CVE-2026-14891. [GH-28190] - docker: Fixed a bug where docker tasks could use a symlink to bypass the plugin configuration for volumes.enabled=false. This is CVE-2026-14896. [GH-28177]
- dynamic host volumes: Fixed a bug where users with
host-volume-deletein one namespace could delete claims from another namespace [GH-28205]
IMPROVEMENTS:
- consul: Allow service, template, and connect blocks to fallback to the Nomad client agent's Consul token if workload identity is unavailable [GH-28106]
- driver: Added optional
Initfunction for task driver plugins [GH-28104] - driver: Added optional
Shutdownfunction for task driver plugins [GH-28102]
BUG FIXES:
- api: allow using WI tokens on plan endpoint [GH-28139]
- cli: Fixed a bug where complex HCL variables passed via -var flag could not be edited in the web UI [GH-28138]
- dynamic host volumes: Fixed a bug where allocations claiming host volumes with the per_alloc flag would not prevent the volume from being deleted [GH-28198]
- metrics: expired metrics are now periodically cleared from the Prometheus sink even if no collection occurs [GH-28170]
- scheduler: Fixed a bug where a node could be marked feasible for a task group requesting multiple host volumes when a satisfied sticky volume request short-circuited the checks for the remaining requests [GH-28097]
- scheduler: Fixed a bug where setting
stickyon a static host volume could fail the evaluation instead of being rejected during feasibility checking [GH-28097] - scheduler: keep draining batch alloc counted when node is re-enabled [GH-28018]
- task runner: Improve the memory management for secrets [GH-28140]
- ui: Fixed a bug where jobs that share a ModifyIndex (for example, several jobs rescheduled in a single Raft transaction after a node failure) were omitted from the jobs page and the
/v1/jobs/statusesendpoint [GH-28132] - ui: fixes an issue where streaming task logs would error [GH-28137]
v2.0.4
2.0.4 (July 07, 2026)
SECURITY:
- docker: Enforce
allowed_modesorallow_privilegedrequirement to set host namespace modes in task. This is CVE-2026-14891. [GH-28190] - docker: Fixed a bug where docker tasks could use a symlink to bypass the plugin configuration for volumes.enabled=false. This is CVE-2026-14896. [GH-28177]
- dynamic host volumes: Fixed a bug where users with
host-volume-deletein one namespace could delete claims from another namespace [GH-28205]
IMPROVEMENTS:
- cli: Add a
-kv-pathflag tonomad setup vaultto configure the Vault KV mount used by the generated workload policy [GH-28183] - cli: Added
-jsonand-toptions to theoperator autopilot get-configcommand. [GH-27991] - client: Add tunable for Vault default lease duration on templates for paths without leases. [GH-28199]
- consul: Allow service, template, and connect blocks to fallback to the Nomad client agent's Consul token if workload identity is unavailable [GH-28106]
- driver: Added optional
Initfunction for task driver plugins [GH-28104] - driver: Added optional
Shutdownfunction for task driver plugins [GH-28102] - scheduler: Stop failed allocations first when downscaling a task group [GH-27971]
DEPRECATIONS:
- agent: Unauthenticated server join via the CLI or API is deprecated. [GH-28176]
BUG FIXES:
- api: allow using WI tokens on plan endpoint [GH-28139]
- cli: Fixed a bug where complex HCL variables passed via -var flag could not be edited in the web UI [GH-28138]
- client: Fixed a bug where a client could panic after an alloc is GC'd [GH-28187]
- dynamic host volumes: Fixed a bug where allocations claiming host volumes with the per_alloc flag would not prevent the volume from being deleted [GH-28198]
- metrics: expired metrics are now periodically cleared from the Prometheus sink even if no collection occurs [GH-28170]
- scheduler: Fixed a bug where a node could be marked feasible for a task group requesting multiple host volumes when a satisfied sticky volume request short-circuited the checks for the remaining requests [GH-28097]
- scheduler: Fixed a bug where setting
stickyon a static host volume could fail the evaluation instead of being rejected during feasibility checking [GH-28097] - scheduler: keep draining batch alloc counted when node is re-enabled [GH-28018]
- task runner: Improve the memory management for secrets [GH-28140]
- ui: Fixed a bug where jobs that share a ModifyIndex (for example, several jobs rescheduled in a single Raft transaction after a node failure) were omitted from the jobs page and the
/v1/jobs/statusesendpoint [GH-28132] - ui: fixes an issue where streaming task logs would error [GH-28137]
v2.0.3
FEATURES:
- core: timeouts for batch jobs [GH-27803]
SECURITY:
- cli: Redact token and certificate key CLI flags and environment variables when writing debug bundle [GH-28063]
IMPROVEMENTS:
- acl: Support uploading client ACL tokens [GH-27741]
- alloc: don't restore when allocDir is inaccessible [GH-27933]
- api: added agent reload endpoint [GH-27106]
- build: Updated Go to 1.26.4 [GH-28080]
- client: Adds default_ineligible configuration option [GH-27965]
- identity: allow additional claims to be added to workload identities [GH-27786]
- vault: adds token renewal retries [GH-27947]
BUG FIXES:
- audit (Enterprise): Fixed a bug where alloc exec and job actions requests from the webbrowser would be marked as anonymous in audit logs [GH-28025]
- cli: Fixed
job dispatchandjob periodic forcefailing with a paginator error against servers older than the CLI [GH-27680] - client: Fixed a bug where tasks could accidentally get killed mid-restart on template re-render [GH-27960]
- consul: re-write consul service identity token when reattaching to task [GH-27936]
- job (Enterprise): Renabled use of multiple vault namespaces in a single job
- plugins: store verified and canonicalised plugin configuration in the agent [GH-28083]
- template: Fixed a bug where templates with
change_mode=noopwould stop monitoring templates that fatally fail after initial rendering [GH-28016] - ui: Fix a bug where jobs with HCL variables submitted via Terraform could not be started or stopped in the web UI [GH-28095]
- ui: Fix service detail page not rendering [GH-28005]
- ui: Fixed flickering on the log streaming pop out when viewing them from job overview page [GH-28074]
- ui: Fixed the client drain popover form to provide an accessible name for assistive technologies [GH-28047]
- ui: Fixed the drain popover deadline field so its label is properly associated with the input for improved accessibility [GH-28029]
- ui: Fixed the namespace list being continually fetched when on the job overview page [GH-28074]
v1.11.7 (Enterprise)
SECURITY:
- cli: Redact token and certificate key CLI flags and environment variables when writing debug bundle [GH-28063]
IMPROVEMENTS:
BUG FIXES:
- audit (Enterprise): Fixed a bug where alloc exec and job actions requests from the webbrowser would be marked as anonymous in audit logs [GH-28025]
- client: Fixed a bug where tasks could accidentally get killed mid-restart on template re-render [GH-27960]
- client: fix a bug where we could accidentally overwrite task states [GH-27944]
- consul: re-write consul service identity token when reattaching to task [GH-27936]
- job (Enterprise): Renabled use of multiple vault namespaces in a single job
- plugins: store verified and canonicalised plugin configuration in the agent [GH-28083]
- template: Fixed a bug where templates with
change_mode=noopwould stop monitoring templates that fatally fail after initial rendering [GH-28016] - ui: Fix a bug where jobs with HCL variables submitted via Terraform could not be started or stopped in the web UI [GH-28095]
- ui: Fix service detail page not rendering [GH-28005]
- ui: Fixed a bug where the evaluation detail panel would render improperly [GH-27987]
- ui: Fixed flickering on the log streaming pop out when viewing them from job overview page [GH-28074]
- ui: Fixed the client drain popover form to provide an accessible name for assistive technologies [GH-28047]
- ui: Fixed the drain popover deadline field so its label is properly associated with the input for improved accessibility [GH-28029]
- ui: Fixed the namespace list being continually fetched when on the job overview page [GH-28074]
v1.10.13 (Enterprise)
SECURITY:
- cli: Redact token and certificate key CLI flags and environment variables when writing debug bundle [GH-28063]
IMPROVEMENTS:
BUG FIXES:
- audit (Enterprise): Fixed a bug where alloc exec and job actions requests from the webbrowser would be marked as anonymous in audit logs [GH-28025]
- client: Fixed a bug where tasks could accidentally get killed mid-restart on template re-render [GH-27960]
- client: fix a bug where we could accidentally overwrite task states [GH-27944]
- consul: re-write consul service identity token when reattaching to task [GH-27936]
- job (Enterprise): Renabled use of multiple vault namespaces in a single job
- plugins: store verified and canonicalised plugin configuration in the agent [GH-28083]
- template: Fixed a bug where templates with
change_mode=noopwould stop monitoring templates that fatally fail after initial rendering [GH-28016] - ui: Fix a bug where jobs with HCL variables submitted via Terraform could not be started or stopped in the web UI [GH-28095]
- ui: Fix service detail page not rendering [GH-28005]
- ui: Fixed a bug where the evaluation detail panel would render improperly [GH-27987]
- ui: Fixed flickering on the log streaming pop out when viewing them from job overview page [GH-28074]
- ui: Fixed the client drain popover form to provide an accessible name for assistive technologies [GH-28047]
- ui: Fixed the drain popover deadline field so its label is properly associated with the input for improved accessibility [GH-28029]
- ui: Fixed the namespace list being continually fetched when on the job overview page [GH-28074]
v2.0.2
2.0.2 (May 22, 2026)
BUG FIXES:
- acl: fix rpc permission denied error when using node_pool="all" [GH-27973]
- ui: Fixed a bug where the client detail page would fail to render [GH-27958]
- ui: Fixed a bug where the topology page would fail to render [GH-27958]
- ui: Fixed a bug where the evaluation detail panel would render improperly [GH-27987]