From 75104f8f282bed911e933f11c72dd5cb867698f1 Mon Sep 17 00:00:00 2001 From: Alex Dadgar Date: Mon, 28 Jan 2019 14:56:45 -0800 Subject: [PATCH 1/3] changelog --- CHANGELOG.md | 99 ++++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 73 insertions(+), 26 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c4ac846a9..d18a64a67 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,7 @@ ## 0.9.0 (Unreleased) __BACKWARDS INCOMPATIBILITIES:__ + * core: Switch to structured logging using [go-hclog](https://github.com/hashicorp/go-hclog) * core: IOPS as a resource is now deprecated [[GH-4970](https://github.com/hashicorp/nomad/issues/4970)] * core: Allow the != constraint to match against keys that do not exist [[GH-4875](https://github.com/hashicorp/nomad/pull/4875)] @@ -10,44 +11,88 @@ __BACKWARDS INCOMPATIBILITIES:__ * client: Node metadata variables must have valid identifiers, whether specified in the config file (`client.meta` stanza) or on the command line (`-meta`). [[GH-5158](https://github.com/hashicorp/nomad/pull/5158)] + * driver/lxc: The LXC driver is no longer packaged with Nomad and is instead + distributed separately as a driver plugin. Further, the LXC driver codebase + is now in a separate + [repository](https://github.com/hashicorp/nomad-driver-lxc). If you are using + LXC, please follow the 0.9.0 upgrade guide as you will have to install the + LXC driver before conducting an in-place upgrade to Nomad 0.9.0 [[GH-5162](https://github.com/hashicorp/nomad/issues/5162)] + +FEATURES: + + * **Affinities and Spread**: Job's may now specify affinities towards certain + node attributes. Affinities act as soft constraints, and inform the scheduler + that a preference for certain node properties exists. The new spread stanza + informs the scheduler that allocations should be spread across a specific + property such as datacenter or availability zone. This is useful to increase + failure tolerance of critical applications. + * **System Job Preemption**: System jobs may now preempt lower priority + allocations. The ability to place system jobs on all targeted nodes is + critical since system jobs often run applications that provide services for + all allocations on the node. + * **Driver Plugins**: Nomad now supports task drivers as plugins. Driver + plugins operate the same as built-in drivers and can be developed and + distributed independently from Nomad. + * **Device Plugins**: Nomad now supports scheduling and mounting devices via + device plugins. Device plugins expose hardware devices such as GPUs to Nomad + and instruct the client on how to make them available to tasks. Device + plugins can expose the health of devices, the devices attributes, and device + usage statistics. Device plugins can be developed and distributed + independently from Nomad. + * **Nvidia GPU Device Plugin**: Nomad builds-in a Nvidia GPU device plugin to + add out of the box support for scheduling Nvidia GPUs. + * **Client Refactor**: Major focus has been put in this release to refactor the + Nomad Client codebase. The goal of the refactor has been to make the + codebase more modular to increase developer velocity and testability. + * **Mobile UI Views:** The side-bar navigation, breadcrumbs, and various other page + elements are now responsively resized and repositioned based on your browser size. + * **Job Authoring from the UI:** It is now possible to plan and submit new jobs, edit + existing jobs, stop and start jobs, and promote canaries all from the UI. + * **Improved Stat Tracking in UI:** The client detail, allocation detail, and task + detail pages now have line charts that plot CPU and Memory usage changes over time. + * **Structured Logging**: Nomad now uses structured logging with the ability to + output logs in a JSON format. IMPROVEMENTS: + * core: Added advertise address to client node meta data [[GH-4390](https://github.com/hashicorp/nomad/issues/4390)] - * core: Added support for specifying node affinities. Affinities allow job operators to specify weighted placement preferences - according to different node attributes [[GH-4512](https://github.com/hashicorp/nomad/issues/4512)] - * core: Added support for spreading allocations across a specific attribute. Operators can specify spread - target percentages across failure domains such as datacenter or rack [[GH-4512](https://github.com/hashicorp/nomad/issues/4512)] + * core: Added support for specifying node affinities. Affinities allow job operators to specify weighted placement preferences according to different node attributes [[GH-4512](https://github.com/hashicorp/nomad/issues/4512)] + * core: Added support for spreading allocations across a specific attribute. Operators can specify spread target percentages across failure domains such as datacenter or rack [[GH-4512](https://github.com/hashicorp/nomad/issues/4512)] * core: Added preemption support for system jobs. System jobs can now preempt other jobs of lower priority. See [preemption](https://www.nomadproject.io/docs/internals/scheduling/preemption.html) for more details. [[GH-4794](https://github.com/hashicorp/nomad/pull/4794)] + * acls: Allow support for using globs in namespace definitions [[GH-4982](https://github.com/hashicorp/nomad/pull/4982)] * agent: Support JSON log output [[GH-5173](https://github.com/hashicorp/nomad/issues/5173)] * api: Reduced api package dependencies [[GH-5213](https://github.com/hashicorp/nomad/pull/5213)] - * client: Added service metadata tag that enables the Consul UI to show a Nomad - icon for services registered by Nomad [[GH-4889](https://github.com/hashicorp/nomad/issues/4889)] - * client: Refactor client to support plugins and improve state handling [[GH-4792](https://github.com/hashicorp/nomad/pull/4792)] * client: Extend timeout to 60 seconds for Windows CPU fingerprinting [[GH-4441](https://github.com/hashicorp/nomad/pull/4441)] + * client: Refactor client to support plugins and improve state handling [[GH-4792](https://github.com/hashicorp/nomad/pull/4792)] * client: Updated consul-template library to pick up recent fixes and improvements[[GH-4885](https://github.com/hashicorp/nomad/pull/4885)] - * driver/docker: Report container images with user friendly name rather than underlying image ID [[GH-4926](https://github.com/hashicorp/nomad/pull/4926)] + * client: Added service metadata tag that enables the Consul UI to show a Nomad icon for services registered by Nomad [[GH-4889](https://github.com/hashicorp/nomad/issues/4889)] + * driver/docker: Support logs when using Docker for Mac [[GH-4758](https://github.com/hashicorp/nomad/issues/4758)] * driver/docker: Added support for specifying `storage_opt` in the Docker driver [[GH-4908](https://github.com/hashicorp/nomad/pull/4908)] * driver/docker: Added support for specifying `cpu_cfs_period` in the Docker driver [[GH-4462](https://github.com/hashicorp/nomad/pull/4462)] * driver/docker: Added support for setting bind and tmpfs mounts in the Docker driver [[GH-4924](https://github.com/hashicorp/nomad/pull/4924)] + * driver/docker: Report container images with user friendly name rather than underlying image ID [[GH-4926](https://github.com/hashicorp/nomad/pull/4926)] * drivers: Added total memory usage to task resource metrics [[GH-5190](https://github.com/hashicorp/nomad/pull/5190)] + * server/rpc: Reduce logging when undergoing temporary network errors such as hitting file descriptor limits [[GH-4974](https://github.com/hashicorp/nomad/issues/4974)] * server/vault: Tweaked logs to better identify vault connection errors [[GH-5228](https://github.com/hashicorp/nomad/pull/5228)] * server/vault: Added Vault token expiry info in `nomad status` CLI, and some improvements to token refresh process [[GH-4817](https://github.com/hashicorp/nomad/pull/4817)] * telemetry: All client metrics include a new `node_class` tag [[GH-3882](https://github.com/hashicorp/nomad/issues/3882)] - * telemetry: Added new tags with value of child job id and parent job id for - parameterized and periodic jobs [[GH-4392](https://github.com/hashicorp/nomad/issues/4392)] - * ui: CPU and Memory metrics are plotted over time during a session in line charts on node detail, allocation detail, and task detail pages [[GH-4661](https://github.com/hashicorp/nomad/issues/4661)], [[GH-4718](https://github.com/hashicorp/nomad/issues/4718)], [[GH-4727](https://github.com/hashicorp/nomad/issues/4727)] - * ui: Switching namespaces in the UI will now always "reset" back to the jobs list page [[GH-4533](https://github.com/hashicorp/nomad/issues/4533)] - * ui: Refactored breadcrumbs and adjusted the breadcrumb paths on each page [[GH-4458](https://github.com/hashicorp/nomad/issues/4458)] - * ui: Jobs can be authored, planned, submitted, and edited from the UI [[GH-4600](https://github.com/hashicorp/nomad/issues/4600)] - * ui: Added links to Jobs and Clients from the error page template [[GH-4850](https://github.com/hashicorp/nomad/issues/4850)] - * ui: Gracefully handle errors from the stats end points [[GH-4833](https://github.com/hashicorp/nomad/issues/4833)] - * ui: Stopped jobs can be restarted from the UI [[GH-4615](https://github.com/hashicorp/nomad/issues/4615)] - * ui: Canaries can now be promoted from the UI [[GH-4616](https://github.com/hashicorp/nomad/issues/4616)] + * telemetry: Added new tags with value of child job id and parent job id for parameterized and periodic jobs [[GH-4392](https://github.com/hashicorp/nomad/issues/4392)] + * ui: Improved JSON editor [[GH-4541](https://github.com/hashicorp/nomad/issues/4541)] + * ui: Mobile friendly views [[GH-4536](https://github.com/hashicorp/nomad/issues/4536)] * ui: Filled out the styleguide [[GH-4468](https://github.com/hashicorp/nomad/issues/4468)] - * vendor: Removed library obsoleted by go 1.8 [[GH-4469](https://github.com/hashicorp/nomad/issues/4469)] - * acls: Allow support for using globs in namespace definitions [[GH-4982](https://github.com/hashicorp/nomad/pull/4982)] + * ui: Support switching regions [[GH-4572](https://github.com/hashicorp/nomad/issues/4572)] + * ui: Canaries can now be promoted from the UI [[GH-4616](https://github.com/hashicorp/nomad/issues/4616)] + * ui: Stopped jobs can be restarted from the UI [[GH-4615](https://github.com/hashicorp/nomad/issues/4615)] + * ui: Gracefully handle errors from the stats end points [[GH-4833](https://github.com/hashicorp/nomad/issues/4833)] + * ui: Added links to Jobs and Clients from the error page template [[GH-4850](https://github.com/hashicorp/nomad/issues/4850)] + * ui: Jobs can be authored, planned, submitted, and edited from the UI [[GH-4600](https://github.com/hashicorp/nomad/issues/4600)] + * ui: Display recent allocations on job page and introduce allocation tab [[GH-4529](https://github.com/hashicorp/nomad/issues/4529)] + * ui: Refactored breadcrumbs and adjusted the breadcrumb paths on each page [[GH-4458](https://github.com/hashicorp/nomad/issues/4458)] + * ui: Switching namespaces in the UI will now always "reset" back to the jobs list page [[GH-4533](https://github.com/hashicorp/nomad/issues/4533)] + * ui: CPU and Memory metrics are plotted over time during a session in line charts on node detail, allocation detail, and task detail pages [[GH-4661](https://github.com/hashicorp/nomad/issues/4661)], [[GH-4718](https://github.com/hashicorp/nomad/issues/4718)], [[GH-4727](https://github.com/hashicorp/nomad/issues/4727)] BUG FIXES: + * core: Removed some GPL code inadvertently added for macOS support [[GH-5202](https://github.com/hashicorp/nomad/pull/5202)] * core: Fix an issue where artifact checksums containing interpolated variables failed validation [[GH-4810](https://github.com/hashicorp/nomad/pull/4819)] * core: Fix an issue where job summaries for parent dispatch/periodic jobs were not being computed correctly [[GH-5205](https://github.com/hashicorp/nomad/pull/5205)] @@ -56,14 +101,16 @@ BUG FIXES: * driver/docker: Fix a path traversal issue where mounting paths outside alloc dir might be possible despite `docker.volumes.enabled` set to false [[GH-4983](https://github.com/hashicorp/nomad/pull/4983)] * driver/raw_exec: Fix an issue where tasks that used an interpolated command in driver configuration would not start [[GH-4813](https://github.com/hashicorp/nomad/pull/4813)] * quota: Fixed a bug in Nomad enterprise where quota specifications were not being replicated to non authoritative regions correctly. + * scheduler: Allow schedulers to handle evaluations that are created due to previous evaluation failures [[GH-4712](https://github.com/hashicorp/nomad/issues/4712)] * server/vault: Fixed bug in Vault token renewal that could panic on a malformed Vault response [[GH-4904](https://github.com/hashicorp/nomad/issues/4904)], [[GH-4937](https://github.com/hashicorp/nomad/pull/4937)] - * template: Fix parsing of environment templates when destination path is - interpolated [[GH-5253](https://github.com/hashicorp/nomad/issues/5253)] - * ui: Fixed an issue where distribution bar corners weren't rounded when there was only one or two slices in the chart [[GH-4507](https://github.com/hashicorp/nomad/issues/4507)] - * ui: Fixed an issue where dispatched jobs would get the wrong template type which could cause runtime errors [[GH-4852](https://github.com/hashicorp/nomad/issues/4852)] - * ui: Added an empty state for the tasks list on the allocation detail page, for when an alloc has no tasks [[GH-4860](https://github.com/hashicorp/nomad/issues/4860)] - * ui: Fixed an issue where the task group breadcrumb didn't always include the namesapce query param [[GH-4801](https://github.com/hashicorp/nomad/issues/4801)] + * template: Fix parsing of environment templates when destination path is interpolated [[GH-5253](https://github.com/hashicorp/nomad/issues/5253)] + * ui: Fixes for viewing objects that contain dots in their names [[GH-4994](https://github.com/hashicorp/nomad/issues/4994)] * ui: Correctly labeled certain classes of unknown errors as 404 errors [[GH-4841](https://github.com/hashicorp/nomad/issues/4841)] + * ui: Fixed an issue where searching while viewing a paginated table could display no results [[GH-4822](https://github.com/hashicorp/nomad/issues/4822)] + * ui: Fixed an issue where the task group breadcrumb didn't always include the namesapce query param [[GH-4801](https://github.com/hashicorp/nomad/issues/4801)] + * ui: Added an empty state for the tasks list on the allocation detail page, for when an alloc has no tasks [[GH-4860](https://github.com/hashicorp/nomad/issues/4860)] + * ui: Fixed an issue where dispatched jobs would get the wrong template type which could cause runtime errors [[GH-4852](https://github.com/hashicorp/nomad/issues/4852)] + * ui: Fixed an issue where distribution bar corners weren't rounded when there was only one or two slices in the chart [[GH-4507](https://github.com/hashicorp/nomad/issues/4507)] ## 0.8.7 (January 14, 2019) From c7fe892bbee24d56bc42a8597cef3799d181c944 Mon Sep 17 00:00:00 2001 From: Alex Dadgar Date: Mon, 28 Jan 2019 15:16:42 -0800 Subject: [PATCH 2/3] add more detail to backwards incompatabilities --- CHANGELOG.md | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d18a64a67..08c35e66d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,8 +2,14 @@ __BACKWARDS INCOMPATIBILITIES:__ - * core: Switch to structured logging using [go-hclog](https://github.com/hashicorp/go-hclog) - * core: IOPS as a resource is now deprecated [[GH-4970](https://github.com/hashicorp/nomad/issues/4970)] + * core: Switch to structured logging using + [go-hclog](https://github.com/hashicorp/go-hclog). If you have tooling that + parses Nomad's logs, the format of logs has changed and your tools may need + updating. + * core: IOPS as a resource is now deprecated + [[GH-4970](https://github.com/hashicorp/nomad/issues/4970)]. Nomad continues + to parse IOPS in job's to allow job authors time to remove iops from their + jobs. * core: Allow the != constraint to match against keys that do not exist [[GH-4875](https://github.com/hashicorp/nomad/pull/4875)] * client: Task config interpolation requires names to be valid identifiers (`node.region` or `NOMAD_DC`). Interpolating other variables requires a new From 528c3041818135cf618de6fca79631daa569673f Mon Sep 17 00:00:00 2001 From: Alex Dadgar Date: Mon, 28 Jan 2019 15:48:33 -0800 Subject: [PATCH 3/3] Update CHANGELOG.md --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 08c35e66d..1d950fe44 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -26,7 +26,7 @@ __BACKWARDS INCOMPATIBILITIES:__ FEATURES: - * **Affinities and Spread**: Job's may now specify affinities towards certain + * **Affinities and Spread**: Jobs may now specify affinities towards certain node attributes. Affinities act as soft constraints, and inform the scheduler that a preference for certain node properties exists. The new spread stanza informs the scheduler that allocations should be spread across a specific