Nomad v1.0.0 Release Notes

Release Date: 2020-12-08 // 5 months ago
  • ๐Ÿ”‹ FEATURES:

    • Event Stream: Subscribe to change events as they occur in real time. [GH-9013]
    • Namespaces OSS: Namespaces are now available in open source Nomad. [GH-9135]
    • Topology Visualization: See all of the clients and allocations in a cluster at once. [GH-9077]
    • HCL 2: Job files can contain variables, expressions, and advanced templating.
    • PostStop: Tasks can now run after all other tasks have finished [GH-8194]

    ๐Ÿ‘Œ IMPROVEMENTS:

    • core: Improved job deregistration error logging. [GH-8745]
    • acl: Allow operators with namespace:dispatch-job capability to force periodic job invocation [GH-9205]
    • api: Added support for cancellation contexts to HTTP API. [GH-8836]
    • api: Job Register API now permits non-zero initial Version to accommodate multi-region deployments. [GH-9071]
    • api: Added ?resources=true query parameter to /v1/nodes and /v1/allocations to include resource allocations in listings. [GH-9055]
    • api: Added ?task_states=false query parameter to /v1/allocations to remove TaskStates from listings. Defaults to being included as before. [GH-9055]
    • build: Updated to Go 1.15.5. [GH-9345]
    • cli: Added autocompletion for recommendation commands [GH-9317]
    • cli: Added client node filtering arguments to nomad operator debug command. [GH-9331]
    • cli: Added goroutine debug pprof output and server-id=all to nomad operator debug capture. [GH-9067]
    • cli: Added metrics to nomad operator debug capture. [GH-9034]
    • cli: Added pprof duration and CSI details to nomad operator debug capture. [GH-9346]
    • cli: Added scale and scaling-events subcommands to the job command. [GH-9023]
    • cli: Added scaling command for interaction with the scaling API endpoint. [GH-9025]
    • client: Use ec2 CPU perf data from AWS API [GH-7830]
    • client: Added support for Azure fingerprinting. [GH-8979]
    • client: Batch state store writes to reduce disk IO. [GH-9093]
    • client: Reduce rate of sending allocation updates when servers are slow. [GH-9435]
    • client: Added support for fingerprinting the client node's Consul segment. [GH-7214]
    • client: Added NOMAD_JOB_ID and NOMAD_PARENT_JOB_ID environment variables to those made available to jobs. [GH-8967]
    • client: Updated consul-template to v0.25.1 - config function_blacklist deprecated and replaced with function_denylist [GH-8988]
    • config: Deprecated terms blacklist and whitelist from configuration and replaced them with denylist and allowlist. [GH-9019]
    • consul: Support advertising CNI and multi-host network addresses to consul [GH-8801]
    • consul: Support Consul namespace (Consul Enterprise) in client configuration. [GH-8849]
    • consul/connect: Dynamically select envoy sidecar at runtime [GH-8945]
    • consul/connect: Enable setting datacenter field on connect upstreams [GH-8964]
    • consul/connect: Envoy concurrency now defaults to 1 rather than number of cores [GH-9341]
    • csi: Support nomad volume detach with previously garbage-collected nodes. [GH-9057]
    • csi: Relaxed validation requirements when checking volume capabilities with controller plugins, to accommodate existing plugin behaviors. [GH-9049]
    • driver/docker: Upgrade pause container and detect architecture [GH-8957]
    • driver/docker: Support pinning tasks to specific CPUs with cpuset_cpus option. [GH-8291]
    • driver/raw_exec: Honor the task user setting when a user runs nomad alloc exec [GH-9439]
    • jobspec: Lowered minimum CPU allowed from 20 to 1. [GH-8996]
    • jobspec: Added support for headers option in artifact stanza [GH-9306]

    BACKWARDS INCOMPATIBILITIES:

    • core: null characters are prohibited in region, datacenter, job name/ID, task group name, and task name [GH-9020]
    • csi: registering a CSI volume with a block-device attachment mode and mount_options now returns a validation error, instead of silently dropping the mount_options. [GH-9044]
    • driver/docker: Tasks are now issued SIGTERM instead of SIGINT when stopping [GH-8932]
    • telemetry: removed backwards compatible/untagged metrics deprecated in 0.7 [GH-9080]

    ๐Ÿ› BUG FIXES:

    • agent (Enterprise): Fixed a bug where audit logging caused websocket and streaming http endpoints to fail [GH-9319]
    • core: Fixed a bug where ACL handling prevented cross-namespace allocation listing [GH-9278]
    • core: Fixed a bug where AllocatedResources contained increasingly duplicated ports [GH-9368]
    • core: Fixed a bug where group level network ports not usable by task resource network stanza [GH-8780]
    • core: Fixed a bug where scaling policy filtering would ignore type query if job query was present [GH-9312]
    • core: Fixed a bug where a request to scale a job would fail if the job was not in the default namespace. [GH-9296]
    • core: Fixed a bug where blocking queries would not include the query's maximum wait time when calculating whether it was safe to retry. [GH-8921]
    • config (Enterprise): Fixed default enterprise config merging. [GH-9083]
    • client: Fixed an fingerprinter issue detecting bridge kernel module [GH-9299]
    • client: Fixed an issue with the Java fingerprinter on macOS causing pop-up notifications when no JVM installed. [GH-9225]
    • client: Fixed an issue in processing device plugin fingerprints which would temporarily hang nomad if no devices were found [GH-9311]
    • client: Fixed an in-place upgrade bug, where a Nomad client may fail to manage tasks that were started with pre-0.9 Nomad client. [GH-9304]
    • consul: Fixed a bug where canary_meta was not being interpolated with environment variables [GH-9096]
    • consul: Fixed a bug to correctly validate task when using script-checks in group-level services [GH-8952]
    • consul: Fixed a bug that caused connect sidecars to be re-registered in Consul every 30 seconds [GH-9330]
    • consul/connect: Fixed a bug to correctly trigger updates on jobspec changes [GH-9029]
    • csi: Fixed a bug where multi-writer volumes were allowed only 1 write claim. [GH-9040]
    • csi: Fixed a bug where garbage collection of plugins could prevent volume claim release. [GH-9141]
    • csi: Fixed a bug where concurrent updates to volumes could result in inconsistent state. [GH-9239]
    • csi: Fixed a bug where nomad volume detach would not accept prefixes for the node ID parameter. [GH-9041]
    • csi: Fixed a bug where nomad alloc status -verbose would display an error when querying volumes. [GH-9354]
    • csi: Fixed a bug where queries for CSI plugins could be interleaved, resulting in inconsistent counts of plugins. [GH-9438]
    • driver/docker: Fixed a bug where the Docker daemon could block longer than the kill_timeout. [GH-9502
    • driver/docker: Fixed a bug where the default image_delay configuration was ignored if the gc configuration was not set. [GH-9101]
    • driver/raw_exec: Fixed a bug where raw_exec attempts to create a freezer cgroups for the tasks even when no_cgroups is set. [GH-9328]
    • scheduler: Fixed a bug where where system jobs would bind on all interfaces instead of the specified host_network. [GH-8822]
    • ui: Fixed a bug in the volume list page where allocation counts were not displayed. [GH-9495]
    • ui: Fixed a bug in the volume status page where read allocations and write allocations were not displayed. [GH-9377]
    • ui: Fixed a bug in the CSI volume and plugin status pages where plugins that don't require controllers were shown as unhealthy. [GH-9416]

Previous changes from v1.0.0-rc1

  • ๐Ÿ”‹ FEATURES:

    • Event Stream : Subscribe to change events as they occur in real time. [GH-9013]
    • Namespaces OSS : Namespaces are now available in open source Nomad. [GH-9135]
    • Topology Visualization : See all of the clients and allocations in a cluster at once. [GH-9077]
    • HCL 2 : Job files can contain variables, expressions, and advanced templating.
    • PostStop : Tasks can now run after all other tasks have finished [GH-8194]

    ๐Ÿ‘Œ IMPROVEMENTS:

    • ๐Ÿ‘ท core: Improved job deregistration error logging. [GH-8745]
    • ๐Ÿ‘ท acl: Allow operators with namespace:dispatch-job capability to force periodic job invocation [GH-9205]
    • ๐Ÿ‘ api: Added support for cancellation contexts to HTTP API. [GH-8836]
    • ๐Ÿš€ api: Job Register API now permits non-zero initial Version to accommodate multi-region deployments. [GH-9071]
    • api: Added ?resources=true query parameter to /v1/nodes and /v1/allocations to include resource allocations in listings. [GH-9055]
    • ๐Ÿšš api: Added ?task_states=false query parameter to /v1/allocations to remove TaskStates from listings. Defaults to being included as before. [GH-9055]
    • โšก๏ธ build: Updated to Go 1.15.5. [GH-9345]
    • cli: Added autocompletion for recommendation commands [GH-9317]
    • ๐Ÿ‘ท cli: Added scale and scaling-events subcommands to the job command. [GH-9023]
    • cli: Added scaling command for interaction with the scaling API endpoint. [GH-9025]
    • client: Use ec2 CPU perf data from AWS API [GH-7830]
    • ๐Ÿ–จ client: Added support for Azure fingerprinting. [GH-8979]
    • client: Batch state store writes to reduce disk IO. [GH-9093]
    • โšก๏ธ client: Reduce rate of sending allocation updates when servers are slow. [GH-9435]
    • ๐Ÿ–จ client: Added support for fingerprinting the client node's Consul segment. [GH-7214]
    • ๐Ÿ‘ท client: Added NOMAD_JOB_ID and NOMAD_PARENT_JOB_ID environment variables to those made available to jobs. [GH-8967]
    • ๐Ÿ—„ client: Updated consul-template to v0.25.0 - config function_blacklist deprecated and replaced with function_denylist [GH-8988]
    • ๐Ÿ”ง config: Deprecated terms blacklist and whitelist from configuration and replaced them with denylist and allowlist. [GH-9019]
    • ๐Ÿ‘ consul: Support advertising CNI and multi-host network addresses to consul [GH-8801]
    • ๐Ÿ”ง consul: Support Consul namespace (Consul Enterprise) in client configuration. [GH-8849]
    • consul/connect: Dynamically select envoy sidecar at runtime [GH-8945]
    • consul/connect: Enable setting datacenter field on connect upstreams [GH-8964]
    • 0๏ธโƒฃ consul/connect: Envoy concurrency now defaults to 1 rather than number of cores [GH-9341]
    • ๐Ÿ‘ csi: Support nomad volume detach with previously garbage-collected nodes. [GH-9057]
    • ๐Ÿ”Œ csi: Relaxed validation requirements when checking volume capabilities with controller plugins, to accommodate existing plugin behaviors. [GH-9049]
    • โฌ†๏ธ driver/docker: Upgrade pause container and detect architecture [GH-8957]
    • ๐Ÿณ driver/docker: Support pinning tasks to specific CPUs with cpuset_cpus option. [GH-8291]
    • driver/raw_exec: Honor the task user setting when a user runs nomad alloc exec [GH-9439]
    • ๐Ÿ‘ท jobspec: Lowered minimum CPU allowed from 10 to 1. [GH-8996]
    • ๐Ÿ‘ท jobspec: Added support for headers option in artifact stanza [GH-9306]

    BACKWARDS INCOMPATIBILITIES:

    • ๐Ÿ‘ท core: null characters are prohibited in region, datacenter, job name/ID, task group name, and task name [GH-9020]
    • csi: registering a CSI volume with a block-device attachment mode and mount_options now returns a validation error, instead of silently dropping the mount_options. [GH-9044]
    • ๐Ÿณ driver/docker: Tasks are now issued SIGTERM instead of SIGINT when stopping [GH-8932]
    • ๐Ÿšš telemetry: removed backwards compatible/untagged metrics deprecated in 0.7 [GH-9080]

    ๐Ÿ› BUG FIXES:

    • ๐Ÿ›  agent (Enterprise): Fixed a bug where audit logging caused websocket and streaming http endpoints to fail [GH-9319]
    • ๐Ÿ›  api: Fixed a bug where the event stream client didn't pass the index query parameters [GH-9419]
    • ๐Ÿ›  core: Fixed a bug where ACL handling prevented cross-namespace allocation listing [GH-9278]
    • ๐Ÿ›  core: Fixed a bug where AllocatedResources contained increasingly duplicated ports [GH-9368]
    • ๐Ÿ›  core: Fixed a bug where group level network ports not usable by task resource network stanza [GH-8780]
    • ๐Ÿ‘ท core: Fixed a bug where scaling policy filtering would ignore type query if job query was present [GH-9312]
    • 0๏ธโƒฃ core: Fixed a bug where a request to scale a job would fail if the job was not in the default namespace. [GH-9296]
    • ๐Ÿ›  core: Fixed a bug where blocking queries would not include the query's maximum wait time when calculating whether it was safe to retry. [GH-8921]
    • ๐Ÿ”€ config (Enterprise): Fixed default enterprise config merging. [GH-9083]
    • ๐Ÿ–จ client: Fixed an fingerprinter issue detecting bridge kernel module [GH-9299]
    • ๐ŸŽ client: Fixed an issue with the Java fingerprinter on macOS causing pop-up notifications when no JVM installed. [GH-9225]
    • ๐Ÿ”Œ client: Fixed an issue in processing device plugin fingerprints which would temporarily hang nomad if no devices were found [GH-9311]
    • โฌ†๏ธ client: Fixed an in-place upgrade bug, where a Nomad client may fail to manage tasks that were started with pre-0.9 Nomad client. [GH-9304]
    • ๐Ÿ›  consul: Fixed a bug where canary_meta was not being interpolated with environment variables [GH-9096]
    • ๐Ÿ›  consul: Fixed a bug to correctly validate task when using script-checks in group-level services [GH-8952]
    • ๐Ÿ›  consul: Fixed a bug that caused connect sidecars to be re-registered in Consul every 30 seconds [GH-9330]
    • โšก๏ธ consul/connect: Fixed a bug to correctly trigger updates on jobspec changes [GH-9029]
    • ๐Ÿ›  csi: Fixed a bug where multi-writer volumes were allowed only 1 write claim. [GH-9040]
    • ๐Ÿš€ csi: Fixed a bug where garbage collection of plugins could prevent volume claim release. [GH-9141]
    • โšก๏ธ csi: Fixed a bug where concurrent updates to volumes could result in inconsistent state. [GH-9239]
    • ๐Ÿ›  csi: Fixed a bug where nomad volume detach would not accept prefixes for the node ID parameter. [GH-9041]
    • ๐Ÿ›  csi: Fixed a bug where nomad alloc status -verbose would display an error when querying volumes. [GH-9354]
    • ๐Ÿ”Œ csi: Fixed a bug where queries for CSI plugins could be interleaved, resulting in inconsistent counts of plugins. [GH-9438]
    • ๐Ÿณ driver/docker: Fixed a bug where the Docker daemon could block longer than the kill_timeout. [GH-9502
    • ๐Ÿณ driver/docker: Fixed a bug where the default image_delay configuration was ignored if the gc configuration was not set. [GH-9101]
    • ๐Ÿ›  driver/raw_exec: Fixed a bug where raw_exec attempts to create a freezer cgroups for the tasks even when no_cgroups is set. [GH-9328]
    • ๐Ÿ’ป ui: Fixed a bug in the volume status page where read allocations and write allocations were not displayed. [GH-9377]
    • ๐Ÿ”Œ ui: Fixed a bug in the CSI volume and plugin status pages where plugins that don't require controllers were shown as unhealthy. [GH-9416]