github.com/ranjib/nomad@v0.1.1-0.20160225204057-97751b02f70b/CHANGELOG.md (about) 1 ## 0.3.0 2 3 __BACKWARDS INCOMPATIBILITIES:__ 4 * Stdout and Stderr log files of tasks have moved from task/local to 5 alloc/logs [GH-851] 6 * Any users of the runtime environment variable `$NOMAD_PORT_` will need to 7 update to the new `${NOMAD_ADDR_}` varriable [GH-704] 8 * Service names that include periods will fail validation. To fix, remove any 9 periods from the service name before running the job [GH-770] 10 * Task resources are now validated and enforce minimum resources. If a job 11 specifies resources below the minimum they will need to be updated [GH-739] 12 * Node ID is no longer specifiable. For users who have set a custom Node 13 ID, the node should be drained before Nomad is updated and the data_dir 14 should be deleted before starting for the first time [GH-675] 15 * Users of custom restart policies should update to the new syntax which adds 16 a `mode` field. The `mode` can be either `fail` or `delay`. The default for 17 `batch` and `service` jobs is `fail` and `delay` respectively [GH-594] 18 * All jobs that interpret variables in constraints or driver configurations 19 will need to be updated to the new syntax which wraps the interpreted 20 variable in curly braces. (`$node.class` becomes `${node.class}`) [GH-760] 21 22 IMPROVEMENTS: 23 * core: Populate job status [GH-663] 24 * core: Cgroup fingerprinter [GH-712] 25 * core: Node class constraint [GH-618] 26 * core: User specifiable kill timeout [GH-624] 27 * core: Job queueing via blocked evaluations [GH-726] 28 * core: Only reschedule failed batch allocations [GH-746] 29 * core: Add available nodes by DC to AllocMetrics [GH-619] 30 * core: Improve scheduler retry logic under contention [GH-787] 31 * core: Computed node class and stack optimization [GH-691, GH-708] 32 * core: Improved restart policy with more user configuration [GH-594] 33 * core: Periodic specification for jobs [GH-540, GH-657, GH-659, GH-668] 34 * core: Batch jobs are garbage collected from the Nomad Servers [GH-586] 35 * core: Free half the CPUs on leader node for use in plan queue and evaluation 36 broker [GH-812] 37 * core: Seed random number generator used to randomize node traversal order 38 during scheduling [GH-808] 39 * core: Performance improvements [GH-823, GH-825, GH-827, GH-830, GH-832, 40 GH-833, GH-834, GH-839] 41 * core/api: System garbage collection endpoint [GH-828] 42 * core/api: Allow users to set arbitrary headers via agent config [GH-699] 43 * core/cli: Prefix based lookups of allocs/nodes/evals/jobs [GH-575] 44 * core/cli: Print short identifiers and UX cleanup [GH-675, GH-693, GH-692] 45 * core/client: Client pulls minimum set of required allocations [GH-731] 46 * cli: Output of agent-info is sorted [GH-617] 47 * cli: Eval monitor detects zero wait condition [GH-776] 48 * cli: Ability to navigate allocation directories [GH-709, GH-798] 49 * client: Batch allocation updates to the server [GH-835] 50 * client: Log rotation for all drivers [GH-685, GH-763, GH-819] 51 * client: Only download artifacts from http, https, and S3 [GH-841] 52 * client: Create a tmp/ directory inside each task directory [GH-757] 53 * client: Store when an allocation was received by the client [GH-821] 54 * client: Heartbeating and saving state resilient under high load [GH-811] 55 * client: Handle updates to tasks Restart Policy and KillTimeout [GH-751] 56 * client: Killing a driver handle is retried with an exponential backoff 57 [GH-809] 58 * client: Send Node to server when periodic fingerprinters change Node 59 attributes/metadata [GH-749] 60 * client/api: File-system access to allocation directories [GH-669] 61 * drivers: Validate the "command" field contains a single value [GH-842] 62 * drivers: Interpret Nomad variables in environment variables/args [GH-653] 63 * driver/rkt: Add support for CPU/Memory isolation [GH-610] 64 * driver/rkt: Add support for mounting alloc/task directory [GH-645] 65 * driver/docker: Support for .dockercfg based auth for private registries 66 [GH-773] 67 68 BUG FIXES: 69 * core: Node drain could only be partially applied [GH-750] 70 * core: Fix panic when eval Ack occurs at delivery limit [GH-790] 71 * cli: Handle parsing of un-named ports [GH-604] 72 * cli: Enforce absolute paths for data directories [GH-622] 73 * client: Cleanup of the allocation directory [GH-755] 74 * client: Improved stability under high contention [GH-789] 75 * client: Handle non-200 codes when parsing AWS metadata [GH-614] 76 * client: Unmounted of shared alloc dir when client is rebooted [GH-755] 77 * client/consul: Service name changes handled properly [GH-766] 78 * driver/rkt: handle broader format of rkt version outputs [GH-745] 79 * driver/qemu: failed to load image and kvm accelerator fixes [GH-656] 80 81 ## 0.2.3 (December 17, 2015) 82 83 BUG FIXES: 84 * core: Task States not being properly updated [GH-600] 85 * client: Fixes for user lookup to support CoreOS [GH-591] 86 * discovery: Using a random prefix for nomad managed services [GH-579] 87 * discovery: De-Registering Tasks while Nomad sleeps before failed tasks are 88 restarted. 89 * discovery: Fixes for service registration when multiple allocations are bin 90 packed on a node [GH-583] 91 * configuration: Sort configuration files [GH-588] 92 * cli: RetryInterval was not being applied properly [GH-601] 93 94 ## 0.2.2 (December 11, 2015) 95 96 IMPROVEMENTS: 97 * core: Enable `raw_exec` driver in dev mode [GH-558] 98 * cli: Server join/retry-join command line and config options [GH-527] 99 * cli: Nomad reports which config files are loaded at start time, or if none 100 are loaded [GH-536], [GH-553] 101 102 BUG FIXES: 103 * core: Send syslog to `LOCAL0` by default as previously documented [GH-547] 104 * client: remove all calls to default logger [GH-570] 105 * consul: Nomad is less noisy when Consul is not running [GH-567] 106 * consul: Nomad only deregisters services that it created [GH-568] 107 * driver/exec: Shutdown a task now sends the interrupt signal first to the 108 process before forcefully killing it. [GH-543] 109 * driver/docker: Docker driver no longer leaks unix domain socket connections 110 [GH-556] 111 * fingerprint/network: Now correctly detects interfaces on Windows [GH-382] 112 113 ## 0.2.1 (November 28, 2015) 114 115 IMPROVEMENTS: 116 117 * core: Can specify a whitelist for activating drivers [GH-467] 118 * core: Can specify a whitelist for activating fingerprinters [GH-488] 119 * core/api: Can list all known regions in the cluster [GH-495] 120 * client/spawn: spawn package tests made portable (work on Windows) [GH-442] 121 * client/executor: executor package tests made portable (work on Windows) [GH-497] 122 * client/driver: driver package tests made portable (work on windows) [GH-502] 123 * client/discovery: Added more consul client api configuration options [GH-503] 124 * driver/docker: Added TLS client options to the config file [GH-480] 125 * jobspec: More flexibility in naming Services [GH-509] 126 127 BUG FIXES: 128 129 * core: Shared reference to DynamicPorts caused port conflicts when scheduling 130 count > 1 [GH-494] 131 * client/restart policy: Not restarting Batch Jobs if the exit code is 0 [GH-491] 132 * client/service discovery: Make Service IDs unique [GH-479] 133 * client/service: Fixes update to check definitions and services which are already registered [GH-498] 134 * driver/docker: Expose the container port instead of the host port [GH-466] 135 * driver/docker: Support `port_map` for static ports [GH-476] 136 * driver/docker: Pass 0.2.0-style port environment variables to the docker container [GH-476] 137 * jobspec: distinct_hosts constraint can be specified as a boolean (previously panicked) [GH-501] 138 139 ## 0.2.0 (November 18, 2015) 140 141 __BACKWARDS INCOMPATIBILITIES:__ 142 143 * core: HTTP API `/v1/node/<id>/allocations` returns full Allocation and not 144 stub [GH-402] 145 * core: Removed weight and hard/soft fields in constraints [GH-351] 146 * drivers: Qemu and Java driver configurations have been updated to both use 147 `artifact_source` as the source for external images/jars to be ran 148 * jobspec: New reserved and dynamic port specification [GH-415] 149 * jobspec/drivers: Driver configuration supports arbitrary struct to be 150 passed in jobspec [GH-415] 151 152 FEATURES: 153 154 * core: Blocking queries supported in API [GH-366] 155 * core: System Scheduler that runs tasks on every node [GH-287] 156 * core: Regexp, version and lexical ordering constraints [GH-271] 157 * core: distinctHost constraint ensures Task Groups are running on distinct 158 clients [GH-321] 159 * core: Service block definition with Consul registration [GH-463, GH-460, 160 GH-458, GH-455, GH-446, GH-425] 161 * client: GCE Fingerprinting [GH-215] 162 * client: Restart policy for task groups enforced by the client [GH-369, 163 GH-393] 164 * driver/rawexec: Raw Fork/Exec Driver [GH-237] 165 * driver/rkt: Experimental Rkt Driver [GH-165, GH-247] 166 * drivers: Add support for downloading external artifacts to execute for 167 Exec, Raw exec drivers [GH-381] 168 169 IMPROVEMENTS: 170 171 * core: Configurable Node GC threshold [GH-362] 172 * core: Overlap plan verification and plan application for increased 173 throughput [GH-272] 174 * cli: Output of `alloc-status` also displays task state [GH-424] 175 * cli: Output of `server-members` is sorted [GH-323] 176 * cli: Show node attributes in `node-status` [GH-313] 177 * client/fingerprint: Network fingerprinter detects interface suitable for 178 use, rather than defaulting to eth0 [GH-334, GH-356] 179 * client: Client Restore State properly reattaches to tasks and recreates 180 them as needed [GH-364, GH-380, GH-388, GH-392, GH-394, GH-397, GH-408] 181 * client: Periodic Fingerprinting [GH-391] 182 * client: Precise snapshotting of TaskRunner and AllocRunner [GH-403, GH-411] 183 * client: Task State is tracked by client [GH-416] 184 * client: Test Skip Detection [GH-221] 185 * driver/docker: Can now specify auth for docker pull [GH-390] 186 * driver/docker: Can now specify DNS and DNSSearch options [GH-390] 187 * driver/docker: Can now specify the container's hostname [GH-426] 188 * driver/docker: Containers now have names based on the task name. [GH-389] 189 * driver/docker: Mount task local and alloc directory to docker containers [GH-290] 190 * driver/docker: Now accepts any value for `network_mode` to support userspace networking plugins in docker 1.9 191 * driver/java: Pass JVM options in java driver [GH-293, GH-297] 192 * drivers: Use BlkioWeight rather than BlkioThrottleReadIopsDevice [GH-222] 193 * jobspec and drivers: Driver configuration supports arbitrary struct to be passed in jobspec [GH-415] 194 195 BUG FIXES: 196 197 * core: Nomad Client/Server RPC codec encodes strings properly [GH-420] 198 * core: Reset Nack timer in response to scheduler operations [GH-325] 199 * core: Scheduler checks for updates to environment variables [GH-327] 200 * cli: Fix crash when -config was given a directory or empty path [GH-119] 201 * client/fingerprint: Use correct local interface on OS X [GH-361, GH-365] 202 * client: Nomad Client doesn't restart failed containers [GH-198] 203 * client: Reap spawn-daemon process, avoiding a zombie process [GH-240] 204 * client: Resource exhausted errors because of link-speed zero [GH-146, 205 GH-205] 206 * client: Restarting Nomad Client leads to orphaned containers [GH-159] 207 * driver/docker: Apply SELinux label for mounting directories in docker 208 [GH-377] 209 * driver/docker: Docker driver exposes ports when creating container [GH-212, 210 GH-412] 211 * driver/docker: Docker driver uses docker environment variables correctly 212 [GH-407] 213 * driver/qemu: Qemu fingerprint and tests work on both windows/linux [GH-352] 214 215 ## 0.1.2 (October 6, 2015) 216 217 IMPROVEMENTS: 218 219 * client: Nomad client cleans allocations on exit when in dev mode [GH-214] 220 * drivers: Use go-getter for artifact retrieval, add artifact support to 221 Exec, Raw Exec drivers [GH-288] 222 223 ## 0.1.1 (October 5, 2015) 224 225 IMPROVEMENTS: 226 227 * cli: Nomad Client configurable from command-line [GH-191] 228 * client/fingerprint: Native IP detection and user specifiable network 229 interface for fingerprinting [GH-189] 230 * driver/docker: Docker networking mode is configurable [GH-184] 231 * drivers: Set task environment variables [GH-206] 232 233 BUG FIXES: 234 235 * client/fingerprint: Network fingerprinting failed if default network 236 interface did not exist [GH-189] 237 * client: Fixed issue where network resources throughput would be set to 0 238 MBits if the link speed could not be determined [GH-205] 239 * client: Improved detection of Nomad binary [GH-181] 240 * driver/docker: Docker dynamic port mapping were not being set properly 241 [GH-199] 242 243 ## 0.1.0 (September 28, 2015) 244 245 * Initial release 246