github.com/mattyr/nomad@v0.3.3-0.20160919021406-3485a065154a/CHANGELOG.md (about)

     1  ## 0.5.0 (Unreleased)
     2  
     3  IMPROVEMENTS:
     4    * core: Introduce node SecretID which can be used to minimize the available
     5      surface area of RPCs to malicious Nomad Clients [GH-1597] 
     6    * cli: `nomad alloc-status` shows allocation creation time [GH-1623]
     7    * client: Enforce shared allocation directory disk usage [GH-1580]
     8    * client: Introduce a `secrets/` directory to tasks where sensitive data can
     9      be written [GH-1681]
    10  
    11  BUG FIXES:
    12    * client: Prevent race when persisting state file [GH-1682]
    13    * client: Artifact download failures will be retried before failing tasks
    14      [GH-1558]
    15    * client/fingerprint: Fix inconsistent CPU MHz fingerprinting [GH-1366]
    16    * discovery: Fix old services not getting removed from consul on update
    17      [GH-1668]
    18    * discovery: Fix HTTP timeout with Server HTTP health check when there is no
    19      leader [GH-1656]
    20  
    21  ## 0.4.1
    22  
    23  __BACKWARDS INCOMPATIBILITIES:__
    24    * telemetry: Operators will have to explicitly opt-in for Nomad client to
    25      publish allocation and node metrics
    26  
    27  IMPROVEMENTS:
    28    * core: Allow count 0 on system jobs [GH-1421]
    29    * core: Summarize the current status of registered jobs. [GH-1383, GH-1517]
    30    * core: Gracefully handle short lived outages by holding RPC calls [GH-1403]
    31    * core: Introduce a lost state for allocations that were on Nodes that died
    32      [GH-1516]
    33    * api: client Logs endpoint for streaming task logs [GH-1444]
    34    * api/cli: Support for tailing/streaming files [GH-1404, GH-1420]
    35    * api/server: Support for querying job summaries [GH-1455]
    36    * cli: `nomad logs` command for streaming task logs [GH-1444]
    37    * cli: `nomad status` shows the create time of allocations [GH-1540]
    38    * cli: `nomad plan` exit code indicates if changes will occur [GH-1502]
    39    * cli: status commands support JSON output and go template formating [GH-1503]
    40    * cli: Validate and plan command supports reading from stdin [GH-1460,
    41      GH-1458]
    42    * cli: Allow basic authentication through address and environment variable
    43      [GH-1610]
    44    * cli: `nomad node-status` shows volume name for non-physical volumes instead
    45      of showing 0B used [GH-1538]
    46    * cli: Support retrieving job files using go-getter in the `run`, `plan` and
    47      `validate` command [GH-1511]
    48    * client: Add killing event to task state [GH-1457]
    49    * client: Fingerprint network speed on Windows [GH-1443]
    50    * discovery: Support for initial check status [GH-1599]
    51    * discovery: Support for query params in health check urls [GH-1562]
    52    * driver/docker: Allow working directory to be configured [GH-1513]
    53    * driver/docker: Remove docker volumes when removing container [GH-1519]
    54    * driver/docker: Set windows containers network mode to nat by default
    55      [GH-1521]
    56    * driver/exec: Allow chroot environment to be configurable [GH-1518]
    57    * driver/qemu: Allows users to pass extra args to the qemu driver [GH-1596]
    58    * telemetry: Circonus integration for telemetry metrics [GH-1459]
    59    * telemetry: Allow operators to opt-in for publishing metrics [GH-1501]
    60  
    61  BUG FIXES:
    62    * agent: Reload agent configuration on SIGHUP [GH-1566]
    63    * core: Sanitize empty slices/maps in jobs to avoid incorrect create/destroy
    64      updates [GH-1434]
    65    * core: Fix race in which a Node registers and doesn't receive system jobs
    66      [GH-1456]
    67    * core: Fix issue in which Nodes with large amount of reserved ports would
    68      casue dynamic port allocations to fail [GH-1526]
    69    * core: Fix a condition in which old batch allocations could get updated even
    70      after terminal. In a rare case this could cause a server panic [GH-1471]
    71    * core: Do not update the Job attached to Allocations that have been marked
    72      terminal [GH-1508]
    73    * agent: Fix advertise address when using IPv6 [GH-1465]
    74    * cli: Fix node-status when using IPv6 advertise address [GH-1465]
    75    * client: Merging telemetry configuration properly [GH-1670]
    76    * client: Task start errors adhere to restart policy mode [GH-1405]
    77    * client: Reregister with servers if node is unregistered [GH-1593]
    78    * client: Killing an allocation doesn't cause allocation stats to block
    79      [GH-1454]
    80    * driver/docker: Disable swap on docker driver [GH-1480]
    81    * driver/docker: Fix improper gating on priviledged mode [GH-1506]
    82    * driver/docker: Default network type is "nat" on Windows [GH-1521]
    83    * driver/docker: Cleanup created volume when destroying container [GH-1519]
    84    * driver/rkt: Set host environment variables [GH-1581]
    85    * driver/rkt: Validate the command and trust_prefix configs [GH-1493]
    86    * plan: Plan on system jobs discounts nodes that do not meet required
    87      constraints [GH-1568]
    88  
    89  ## 0.4.0
    90  
    91  __BACKWARDS INCOMPATIBILITIES:__
    92    * api: Tasks are no longer allowed to have slashes in their name [GH-1210]
    93    * cli: Remove the eval-monitor command. Users should switch to `nomad
    94      eval-status -monitor`.
    95    * config: Consul configuration has been moved from client options map to
    96      consul block under client configuration
    97    * driver/docker: Enabled SSL by default for pulling images from docker
    98      registries. [GH-1336]
    99  
   100  IMPROVEMENTS:
   101    * core: Scheduler reuses blocked evaluations to avoid unbounded creation of
   102      evaluations under high contention [GH-1199]
   103    * core: Scheduler stores placement failures in evaluations, no longer
   104      generating failed allocations for debug information [GH-1188]
   105    * api: Faster JSON response encoding [GH-1182]
   106    * api: Gzip compress HTTP API requests [GH-1203]
   107    * api: Plan api introduced for the Job endpoint [GH-1168]
   108    * api: Job endpoint can enforce Job Modify Index to ensure job is being
   109      modified from a known state [GH-1243]
   110    * api/client: Add resource usage APIs for retrieving tasks/allocations/host
   111      resource usage [GH-1189]
   112    * cli: Faster when displaying large amounts ouptuts [GH-1362]
   113    * cli: Deprecate `eval-monitor` and introduce `eval-status` [GH-1206]
   114    * cli: Unify the `fs` family of commands to be a single command [GH-1150]
   115    * cli: Introduce `nomad plan` to dry-run a job through the scheduler and
   116      determine its effects [GH-1181]
   117    * cli: node-status command displays host resource usage and allocation
   118      resources [GH-1261]
   119    * cli: Region flag and environment variable introduced to set region
   120      forwarding. Automatic region forwarding for run and plan [GH-1237]
   121    * client: If Consul is available, automatically bootstrap Nomad Client
   122      using the `_nomad` service in Consul. Nomad Servers now register
   123      themselves with Consul to make this possible. [GH-1201]
   124    * drivers: Qemu and Java can be run without an artifact being download. Useful
   125      if the artifact exists inside a chrooted directory [GH-1262]
   126    * driver/docker: Added a client options to set SELinux labels for container
   127      bind mounts. [GH-788]
   128    * driver/docker: Enabled SSL by default for pulling images from docker
   129      registries. [GH-1336]
   130    * server: If Consul is available, automatically bootstrap Nomad Servers
   131      using the `_nomad` service in Consul.  [GH-1276]
   132  
   133  BUG FIXES:
   134    * core: Improve garbage collection of allocations and nodes [GH-1256]
   135    * core: Fix a potential deadlock if establishing leadership fails and is
   136      retried [GH-1231]
   137    * core: Do not restart successful batch jobs when the node is removed/drained
   138      [GH-1205]
   139    * core: Fix an issue in which the scheduler could be invoked with insufficient
   140      state [GH-1339]
   141    * core: Updated User, Meta or Resources in a task cause create/destroy updates
   142      [GH-1128, GH-1153]
   143    * core: Fix blocked evaluations being run without properly accounting for
   144      priority [GH-1183]
   145    * api: Tasks are no longer allowed to have slashes in their name [GH-1210]
   146    * client: Delete tmp files used to communicate with execcutor [GH-1241]
   147    * client: Prevent the client from restoring with incorrect task state [GH-1294]
   148    * discovery: Ensure service and check names are unique [GH-1143, GH-1144]
   149    * driver/docker: Ensure docker client doesn't time out after a minute.
   150      [GH-1184]
   151    * driver/java: Fix issue in which Java on darwin attempted to chroot [GH-1262]
   152    * driver/docker: Fix issue in which logs could be spliced [GH-1322]
   153  
   154  ## 0.3.2 (April 22, 2016)
   155  
   156  IMPROVEMENTS:
   157    * core: Garbage collection partitioned to avoid system delays [GH-1012]
   158    * core: Allow count zero task groups to enable blue/green deploys [GH-931]
   159    * core: Validate driver configurations when submitting jobs [GH-1062, GH-1089]
   160    * core: Job Deregister forces an evaluation for the job even if it doesn't
   161      exist [GH-981]
   162    * core: Rename successfully finished allocations to "Complete" rather than
   163      "Dead" for clarity [GH-975]
   164    * cli: `alloc-status` explains restart decisions [GH-984]
   165    * cli: `node-drain -self` drains the local node [GH-1068]
   166    * cli: `node-status -self` queries the local node [GH-1004]
   167    * cli: Destructive commands now require confirmation [GH-983]
   168    * cli: `alloc-status` display is less verbose by default [GH-946]
   169    * cli: `server-members` displays the current leader in each region [GH-935]
   170    * cli: `run` has an `-output` flag to emit a JSON version of the job [GH-990]
   171    * cli: New `inspect` command to display a submitted job's specification
   172      [GH-952]
   173    * cli: `node-status` display is less verbose by default and shows a node's
   174      total resources [GH-946]
   175    * client: `artifact` source can be interpreted [GH-1070]
   176    * client: Add IP and Port environment variables [GH-1099]
   177    * client: Nomad fingerprinter to detect client's version [GH-965]
   178    * client: Tasks can interpret Meta set in the task group and job [GH-985]
   179    * client: All tasks in a task group are killed when a task fails [GH-962]
   180    * client: Pass environment variables from host to exec based tasks [GH-970]
   181    * client: Allow task's to be run as particular user [GH-950, GH-978]
   182    * client: `artifact` block now supports downloading paths relative to the
   183      task's directory [GH-944]
   184    * docker: Timeout communications with Docker Daemon to avoid deadlocks with
   185      misbehaving Docker Daemon [GH-1117]
   186    * discovery: Support script based health checks [GH-986]
   187    * discovery: Allowing registration of services which don't expose ports
   188      [GH-1092]
   189    * driver/docker: Support for `tty` and `interactive` options [GH-1059]
   190    * jobspec: Improved validation of services referencing port labels [GH-1097]
   191    * periodic: Periodic jobs are always evaluated in UTC timezone [GH-1074]
   192  
   193  BUG FIXES:
   194    * core: Prevent garbage collection of running batch jobs [GH-989]
   195    * core: Trigger System scheduler when Node drain is disabled [GH-1106]
   196    * core: Fix issue where in-place updated allocation double counted resources
   197      [GH-957]
   198    * core: Fix drained, batched allocations from being migrated indefinitely
   199      [GH-1086]
   200    * client: Garbage collect Docker containers on exit [GH-1071]
   201    * client: Fix common exec failures on CentOS and Amazon Linux [GH-1009]
   202    * client: Fix S3 artifact downloading with IAM credentials [GH-1113]
   203    * client: Fix handling of environment variables containing multiple equal
   204      signs [GH-1115]
   205  
   206  ## 0.3.1 (March 16, 2016)
   207  
   208  __BACKWARDS INCOMPATIBILITIES:__
   209    * Service names that dont conform to RFC-1123 and RFC-2782 will fail
   210      validation. To fix, change service name to conform to the RFCs before
   211      running the job [GH-915]
   212    * Jobs that downloaded artifacts will have to be updated to the new syntax and
   213      be resubmitted. The new syntax consolidates artifacts to the `task` rather
   214      than being duplicated inside each driver config [GH-921]
   215  
   216  IMPROVEMENTS:
   217    * cli: Validate job file schemas [GH-900]
   218    * client: Add environment variables for task name, allocation ID/Name/Index
   219      [GH-869, GH-896]
   220    * client: Starting task is retried under the restart policy if the error is
   221      recoverable [GH-859]
   222    * client: Allow tasks to download artifacts, which can be archives, prior to
   223      starting [GH-921]
   224    * config: Validate Nomad configuration files [GH-910]
   225    * config: Client config allows reserving resources [GH-910]
   226    * driver/docker: Support for ECR [GH-858]
   227    * driver/docker: Periodic Fingerprinting [GH-893]
   228    * driver/docker: Preventing port reservation for log collection on Unix platforms [GH-897]
   229    * driver/rkt: Pass DNS information to rkt driver [GH-892]
   230    * jobspec: Require RFC-1123 and RFC-2782 valid service names [GH-915]
   231  
   232  BUG FIXES:
   233    * core: No longer cancel evaluations that are delayed in the plan queue
   234      [GH-884]
   235    * api: Guard client/fs/ APIs from being accessed on a non-client node [GH-890]
   236    * client: Allow dashes in variable names during interprelation [GH-857]
   237    * client: Updating kill timeout adheres to operator specified maximum value [GH-878]
   238    * client: Fix a case in which clients would pull but not run allocations
   239      [GH-906]
   240    * consul: Remove concurrent map access [GH-874]
   241    * driver/exec: Stopping tasks with more than one pid in a cgroup [GH-855]
   242    * executor/linux: Add /run/resolvconf/ to chroot so DNS works [GH-905]
   243  
   244  ## 0.3.0 (February 25, 2016)
   245  
   246  __BACKWARDS INCOMPATIBILITIES:__
   247    * Stdout and Stderr log files of tasks have moved from task/local to
   248      alloc/logs [GH-851]
   249    * Any users of the runtime environment variable `$NOMAD_PORT_` will need to
   250      update to the new `${NOMAD_ADDR_}` varriable [GH-704]
   251    * Service names that include periods will fail validation. To fix, remove any
   252      periods from the service name before running the job [GH-770]
   253    * Task resources are now validated and enforce minimum resources. If a job
   254      specifies resources below the minimum they will need to be updated [GH-739]
   255    * Node ID is no longer specifiable. For users who have set a custom Node
   256      ID, the node should be drained before Nomad is updated and the data_dir
   257      should be deleted before starting for the first time [GH-675]
   258    * Users of custom restart policies should update to the new syntax which adds
   259      a `mode` field. The `mode` can be either `fail` or `delay`. The default for
   260      `batch` and `service` jobs is `fail` and `delay` respectively [GH-594]
   261    * All jobs that interpret variables in constraints or driver configurations
   262      will need to be updated to the new syntax which wraps the interpreted
   263      variable in curly braces. (`$node.class` becomes `${node.class}`) [GH-760]
   264  
   265  IMPROVEMENTS:
   266    * core: Populate job status [GH-663]
   267    * core: Cgroup fingerprinter [GH-712]
   268    * core: Node class constraint [GH-618]
   269    * core: User specifiable kill timeout [GH-624]
   270    * core: Job queueing via blocked evaluations  [GH-726]
   271    * core: Only reschedule failed batch allocations [GH-746]
   272    * core: Add available nodes by DC to AllocMetrics [GH-619]
   273    * core: Improve scheduler retry logic under contention [GH-787]
   274    * core: Computed node class and stack optimization [GH-691, GH-708]
   275    * core: Improved restart policy with more user configuration [GH-594]
   276    * core: Periodic specification for jobs [GH-540, GH-657, GH-659, GH-668]
   277    * core: Batch jobs are garbage collected from the Nomad Servers [GH-586]
   278    * core: Free half the CPUs on leader node for use in plan queue and evaluation
   279      broker [GH-812]
   280    * core: Seed random number generator used to randomize node traversal order
   281      during scheduling [GH-808]
   282    * core: Performance improvements [GH-823, GH-825, GH-827, GH-830, GH-832,
   283      GH-833, GH-834, GH-839]
   284    * core/api: System garbage collection endpoint [GH-828]
   285    * core/api: Allow users to set arbitrary headers via agent config [GH-699]
   286    * core/cli: Prefix based lookups of allocs/nodes/evals/jobs [GH-575]
   287    * core/cli: Print short identifiers and UX cleanup [GH-675, GH-693, GH-692]
   288    * core/client: Client pulls minimum set of required allocations [GH-731]
   289    * cli: Output of agent-info is sorted [GH-617]
   290    * cli: Eval monitor detects zero wait condition [GH-776]
   291    * cli: Ability to navigate allocation directories [GH-709, GH-798]
   292    * client: Batch allocation updates to the server [GH-835]
   293    * client: Log rotation for all drivers [GH-685, GH-763, GH-819]
   294    * client: Only download artifacts from http, https, and S3 [GH-841]
   295    * client: Create a tmp/ directory inside each task directory [GH-757]
   296    * client: Store when an allocation was received by the client [GH-821]
   297    * client: Heartbeating and saving state resilient under high load [GH-811]
   298    * client: Handle updates to tasks Restart Policy and KillTimeout [GH-751]
   299    * client: Killing a driver handle is retried with an exponential backoff
   300      [GH-809]
   301    * client: Send Node to server when periodic fingerprinters change Node
   302      attributes/metadata [GH-749]
   303    * client/api: File-system access to allocation directories [GH-669]
   304    * drivers: Validate the "command" field contains a single value [GH-842]
   305    * drivers: Interpret Nomad variables in environment variables/args [GH-653]
   306    * driver/rkt: Add support for CPU/Memory isolation [GH-610]
   307    * driver/rkt: Add support for mounting alloc/task directory [GH-645]
   308    * driver/docker: Support for .dockercfg based auth for private registries
   309      [GH-773]
   310  
   311  BUG FIXES:
   312    * core: Node drain could only be partially applied [GH-750]
   313    * core: Fix panic when eval Ack occurs at delivery limit [GH-790]
   314    * cli: Handle parsing of un-named ports [GH-604]
   315    * cli: Enforce absolute paths for data directories [GH-622]
   316    * client: Cleanup of the allocation directory [GH-755]
   317    * client: Improved stability under high contention [GH-789]
   318    * client: Handle non-200 codes when parsing AWS metadata [GH-614]
   319    * client: Unmounted of shared alloc dir when client is rebooted [GH-755]
   320    * client/consul: Service name changes handled properly [GH-766]
   321    * driver/rkt: handle broader format of rkt version outputs [GH-745]
   322    * driver/qemu: failed to load image and kvm accelerator fixes [GH-656]
   323  
   324  ## 0.2.3 (December 17, 2015)
   325  
   326  BUG FIXES:
   327    * core: Task States not being properly updated [GH-600]
   328    * client: Fixes for user lookup to support CoreOS [GH-591]
   329    * discovery: Using a random prefix for nomad managed services [GH-579]
   330    * discovery: De-Registering Tasks while Nomad sleeps before failed tasks are
   331      restarted.
   332    * discovery: Fixes for service registration when multiple allocations are bin
   333      packed on a node [GH-583]
   334    * configuration: Sort configuration files [GH-588]
   335    * cli: RetryInterval was not being applied properly [GH-601]
   336  
   337  ## 0.2.2 (December 11, 2015)
   338  
   339  IMPROVEMENTS:
   340    * core: Enable `raw_exec` driver in dev mode [GH-558]
   341    * cli: Server join/retry-join command line and config options [GH-527]
   342    * cli: Nomad reports which config files are loaded at start time, or if none
   343      are loaded [GH-536], [GH-553]
   344  
   345  BUG FIXES:
   346    * core: Send syslog to `LOCAL0` by default as previously documented [GH-547]
   347    * client: remove all calls to default logger [GH-570]
   348    * consul: Nomad is less noisy when Consul is not running [GH-567]
   349    * consul: Nomad only deregisters services that it created [GH-568]
   350    * driver/exec: Shutdown a task now sends the interrupt signal first to the
   351      process before forcefully killing it. [GH-543]
   352    * driver/docker: Docker driver no longer leaks unix domain socket connections
   353      [GH-556]
   354    * fingerprint/network: Now correctly detects interfaces on Windows [GH-382]
   355  
   356  ## 0.2.1 (November 28, 2015)
   357  
   358  IMPROVEMENTS:
   359  
   360    * core: Can specify a whitelist for activating drivers [GH-467]
   361    * core: Can specify a whitelist for activating fingerprinters [GH-488]
   362    * core/api: Can list all known regions in the cluster [GH-495]
   363    * client/spawn: spawn package tests made portable (work on Windows) [GH-442]
   364    * client/executor: executor package tests made portable (work on Windows) [GH-497]
   365    * client/driver: driver package tests made portable (work on windows) [GH-502]
   366    * client/discovery: Added more consul client api configuration options [GH-503]
   367    * driver/docker: Added TLS client options to the config file [GH-480]
   368    * jobspec: More flexibility in naming Services [GH-509]
   369  
   370  BUG FIXES:
   371  
   372    * core: Shared reference to DynamicPorts caused port conflicts when scheduling
   373      count > 1 [GH-494]
   374    * client/restart policy: Not restarting Batch Jobs if the exit code is 0 [GH-491]
   375    * client/service discovery: Make Service IDs unique [GH-479]
   376    * client/service: Fixes update to check definitions and services which are already registered [GH-498]
   377    * driver/docker: Expose the container port instead of the host port [GH-466]
   378    * driver/docker: Support `port_map` for static ports [GH-476]
   379    * driver/docker: Pass 0.2.0-style port environment variables to the docker container [GH-476]
   380    * jobspec: distinct_hosts constraint can be specified as a boolean (previously panicked) [GH-501]
   381  
   382  ## 0.2.0 (November 18, 2015)
   383  
   384  __BACKWARDS INCOMPATIBILITIES:__
   385  
   386    * core: HTTP API `/v1/node/<id>/allocations` returns full Allocation and not
   387      stub [GH-402]
   388    * core: Removed weight and hard/soft fields in constraints [GH-351]
   389    * drivers: Qemu and Java driver configurations have been updated to both use
   390      `artifact_source` as the source for external images/jars to be ran
   391    * jobspec: New reserved and dynamic port specification [GH-415]
   392    * jobspec/drivers: Driver configuration supports arbitrary struct to be
   393      passed in jobspec [GH-415]
   394  
   395  FEATURES:
   396  
   397    * core: Blocking queries supported in API [GH-366]
   398    * core: System Scheduler that runs tasks on every node [GH-287]
   399    * core: Regexp, version and lexical ordering constraints [GH-271]
   400    * core: distinctHost constraint ensures Task Groups are running on distinct
   401      clients [GH-321]
   402    * core: Service block definition with Consul registration [GH-463, GH-460,
   403      GH-458, GH-455, GH-446, GH-425]
   404    * client: GCE Fingerprinting [GH-215]
   405    * client: Restart policy for task groups enforced by the client [GH-369,
   406      GH-393]
   407    * driver/rawexec: Raw Fork/Exec Driver [GH-237]
   408    * driver/rkt: Experimental Rkt Driver [GH-165, GH-247]
   409    * drivers: Add support for downloading external artifacts to execute for
   410      Exec, Raw exec drivers [GH-381]
   411  
   412  IMPROVEMENTS:
   413  
   414    * core: Configurable Node GC threshold [GH-362]
   415    * core: Overlap plan verification and plan application for increased
   416      throughput [GH-272]
   417    * cli: Output of `alloc-status` also displays task state [GH-424]
   418    * cli: Output of `server-members` is sorted [GH-323]
   419    * cli: Show node attributes in `node-status` [GH-313]
   420    * client/fingerprint: Network fingerprinter detects interface suitable for
   421      use, rather than defaulting to eth0 [GH-334, GH-356]
   422    * client: Client Restore State properly reattaches to tasks and recreates
   423      them as needed [GH-364, GH-380, GH-388, GH-392, GH-394, GH-397, GH-408]
   424    * client: Periodic Fingerprinting [GH-391]
   425    * client: Precise snapshotting of TaskRunner and AllocRunner [GH-403, GH-411]
   426    * client: Task State is tracked by client [GH-416]
   427    * client: Test Skip Detection [GH-221]
   428    * driver/docker: Can now specify auth for docker pull [GH-390]
   429    * driver/docker: Can now specify DNS and DNSSearch options [GH-390]
   430    * driver/docker: Can now specify the container's hostname [GH-426]
   431    * driver/docker: Containers now have names based on the task name. [GH-389]
   432    * driver/docker: Mount task local and alloc directory to docker containers [GH-290]
   433    * driver/docker: Now accepts any value for `network_mode` to support userspace networking plugins in docker 1.9
   434    * driver/java: Pass JVM options in java driver [GH-293, GH-297]
   435    * drivers: Use BlkioWeight rather than BlkioThrottleReadIopsDevice [GH-222]
   436    * jobspec and drivers: Driver configuration supports arbitrary struct to be passed in jobspec [GH-415]
   437  
   438  BUG FIXES:
   439  
   440    * core: Nomad Client/Server RPC codec encodes strings properly [GH-420]
   441    * core: Reset Nack timer in response to scheduler operations [GH-325]
   442    * core: Scheduler checks for updates to environment variables [GH-327]
   443    * cli: Fix crash when -config was given a directory or empty path [GH-119]
   444    * client/fingerprint: Use correct local interface on OS X [GH-361, GH-365]
   445    * client: Nomad Client doesn't restart failed containers [GH-198]
   446    * client: Reap spawn-daemon process, avoiding a zombie process [GH-240]
   447    * client: Resource exhausted errors because of link-speed zero [GH-146,
   448      GH-205]
   449    * client: Restarting Nomad Client leads to orphaned containers [GH-159]
   450    * driver/docker: Apply SELinux label for mounting directories in docker
   451      [GH-377]
   452    * driver/docker: Docker driver exposes ports when creating container [GH-212,
   453      GH-412]
   454    * driver/docker: Docker driver uses docker environment variables correctly
   455      [GH-407]
   456    * driver/qemu: Qemu fingerprint and tests work on both windows/linux [GH-352]
   457  
   458  ## 0.1.2 (October 6, 2015)
   459  
   460  IMPROVEMENTS:
   461  
   462    * client: Nomad client cleans allocations on exit when in dev mode [GH-214]
   463    * drivers: Use go-getter for artifact retrieval, add artifact support to
   464      Exec, Raw Exec drivers [GH-288]
   465  
   466  ## 0.1.1 (October 5, 2015)
   467  
   468  IMPROVEMENTS:
   469  
   470    * cli: Nomad Client configurable from command-line [GH-191]
   471    * client/fingerprint: Native IP detection and user specifiable network
   472      interface for fingerprinting [GH-189]
   473    * driver/docker: Docker networking mode is configurable [GH-184]
   474    * drivers: Set task environment variables [GH-206]
   475  
   476  BUG FIXES:
   477  
   478    * client/fingerprint: Network fingerprinting failed if default network
   479      interface did not exist [GH-189]
   480    * client: Fixed issue where network resources throughput would be set to 0
   481      MBits if the link speed could not be determined [GH-205]
   482    * client: Improved detection of Nomad binary [GH-181]
   483    * driver/docker: Docker dynamic port mapping were not being set properly
   484      [GH-199]
   485  
   486  ## 0.1.0 (September 28, 2015)
   487  
   488    * Initial release
   489