This project is mirrored from https://gitee.com/mirrors/nomad.git.
Pull mirroring failed .
Repository mirroring has been paused due to too many failed attempts. It can be resumed by a project maintainer.
Repository mirroring has been paused due to too many failed attempts. It can be resumed by a project maintainer.
- 01 Sep, 2022 1 commit
-
-
James Rasell authored
Log lines which include an error should use the full term "error" as the context key. This provides consistency across the codebase and avoids a Go style which operators might not be aware of.
-
- 04 Aug, 2022 2 commits
-
-
Luiz Aoqui authored
The QEMU driver can take an optional `graceful_shutdown` configuration which will create a Unix socket to send ACPI shutdown signal to the VM. Unix sockets have a hard length limit and the driver implementation assumed that QEMU versions 2.10.1 were able to handle longer paths. This is not correct, the linked QEMU fix only changed the behaviour from silently truncating longer socket paths to throwing an error. By validating the socket path before starting the QEMU machine we can provide users a more actionable and meaningful error message, and by using a shorter socket file name we leave a bit more room for user-defined values in the path, such as the task name. The maximum length allowed is also platform-dependant, so validation needs to be different for each OS.
-
Luiz Aoqui authored
When a QEMU task is recovered the monitor socket path was not being restored into the task handler, so the `graceful_shutdown` configuration was effectively ignored if the client restarted.
-
- 10 Jun, 2022 1 commit
-
-
Daniel Rossbach authored
-
- 09 Jun, 2022 1 commit
-
-
phreakocious authored
Add boolean 'guest_agent' config option for QEMU driver, which will create the socket file for the QEMU Guest Agent in the task dir when enabled.
-
- 27 Apr, 2022 1 commit
-
-
Tim Gross authored
This test exercises upgrades between 0.8 and Nomad versions greater than 0.9. We have not supported 0.8.x in a very long time and in any case the test has been marked to skip because the downloader doesn't work.
-
- 19 Nov, 2021 1 commit
-
-
Tim Gross authored
The QEMU driver allows arbitrary command line options, but many of these options give access to host resources that operators may not want to expose such as devices. Add an optional allowlist to the plugin configuration so that operators can limit the resources for QEMU.
-
- 15 Apr, 2021 1 commit
-
-
Nick Ethier authored
-
- 21 Jan, 2021 1 commit
-
-
Charlie Voiselle authored
* Enable network namespaces for QEMU driver * Add CHANGELOG entry
-
- 09 Dec, 2020 1 commit
-
-
Kris Hicks authored
-
- 24 Jun, 2020 1 commit
-
-
Mahmood Ali authored
-
- 18 Jun, 2020 1 commit
-
-
Nick Ethier authored
Co-Authored-By:
Tim Gross <tgross@hashicorp.com> Co-Authored-By:
Seth Hoenig <shoenig@hashicorp.com>
-
- 26 May, 2020 1 commit
-
-
Mahmood Ali authored
This fixes few cases where driver eventor goroutines are leaked during normal operations, but especially so in tests. This change makes few modifications: First, it switches drivers to use `Context`s to manage shutdown events. Previously, it relied on callers invoking `.Shutdown()` function that is specific to internal drivers only and require casting. Using `Contexts` provide a consistent idiomatic way to manage lifecycle for both internal and external drivers. Also, I discovered few places where we don't clean up a temporary driver instance in the plugin catalog code, where we dispense a driver to inspect and validate the schema config without properly cleaning it up.
-
- 21 May, 2020 1 commit
-
-
Tim Gross authored
When an allocation runs for a task driver that can't support volume mounts, the mounting will fail in a way that can be hard to understand. With host volumes this usually means failing silently, whereas with CSI the operator gets inscrutable internals exposed in the `nomad alloc status`. This changeset adds a MountConfig field to the task driver Capabilities response. We validate this when the `csi_hook` or `volume_hook` fires and return a user-friendly error. Note that we don't currently have a way to get driver capabilities up to the server, except through attributes. Validating this when the user initially submits the jobspec would be even better than what we're doing here (and could be useful for all our other capabilities), but that's out of scope for this changeset. Also note that the MountConfig enum starts with "supports all" in order to support community plugins in a backwards compatible way, rather than...
-
- 22 Nov, 2019 2 commits
-
-
Mahmood Ali authored
drivers: always initialize taskHandle.logger
-
Mahmood Ali authored
Looks like the RecoverTask doesn't set taskHandle.logger field causing a panic when the handle attempts to log (e.g. when Shutdown or Signaling fails).
-
- 19 Nov, 2019 1 commit
-
-
Mahmood Ali authored
-
- 04 Sep, 2019 1 commit
-
-
Mahmood Ali authored
-
- 31 Jul, 2019 2 commits
-
-
Nick Ethier authored
-
Nick Ethier authored
-
- 16 Feb, 2019 1 commit
-
-
Mahmood Ali authored
This ensures that `port_map` along with other block like attribute declarations (e.g. ulimit, labels, etc) can handle various hcl and json syntax that was supported in 0.8. In 0.8.7, the following declarations are effectively equivalent: ``` // hcl block port_map { http = 80 https = 443 } // hcl assignment port_map = { http = 80 https = 443 } // json single element array of map (default in API response) {"port_map": [{"http": 80, "https": 443}]} // json array of individual maps (supported accidentally iiuc) {"port_map: [{"http": 80}, {"https": 443}]} ``` We achieve compatbility by using `NewAttr("...", "list(map(string))", false)` to be serialized to a `map[string]string` wrapper, instead of using `BlockAttrs` declaration. The wrapper merges the list of maps automatically, to ease driver development. This approach is closer to how v0.8.7 implemented the fields [1][2], and despite its verbosity, seems to perserve 0.8.7 behavior in hcl2. This is only required for built-in types that have backward compatibility constraints. External drivers should use `BlockAttrs` instead, as they see fit. [1] https://github.com/hashicorp/nomad/blob/v0.8.7/client/driver/docker.go#L216 [2] https://github.com/hashicorp/nomad/blob/v0.8.7/client/driver/docker.go#L698-L700
-
- 23 Jan, 2019 2 commits
-
-
Nick Ethier authored
-
Michael Schurter authored
-
- 22 Jan, 2019 4 commits
-
-
Michael Schurter authored
I wanted a different color bikeshed, so I get to paint it
-
Alex Dadgar authored
-
Alex Dadgar authored
-
Alex Dadgar authored
-
- 18 Jan, 2019 4 commits
-
-
Nick Ethier authored
-
Nick Ethier authored
-
Nick Ethier authored
-
Nick Ethier authored
-
- 17 Jan, 2019 2 commits
-
-
Nick Ethier authored
-
Nick Ethier authored
-
- 16 Jan, 2019 1 commit
-
-
Nick Ethier authored
-
- 15 Jan, 2019 1 commit
-
-
Nick Ethier authored
-
- 12 Jan, 2019 1 commit
-
-
Nick Ethier authored
plugins/driver: update driver interface to support streaming stats client/tr: use streaming stats api TODO: * how to handle errors and closed channel during stats streaming * prevent tight loop if Stats(ctx) returns an error drivers: update drivers TaskStats RPC to handle streaming results executor: better error handling in stats rpc docker: better control and error handling of stats rpc driver: allow stats to return a recoverable error
-
- 11 Jan, 2019 1 commit
-
-
Alex Dadgar authored
This PR fixes various instances of plugins being launched without using the parent loggers. This meant that logs would not all go to the same output, break formatting etc.
-
- 08 Jan, 2019 3 commits
-
-
Mahmood Ali authored
Re-export the ResourceUsage structs in drivers package to avoid drivers directly depending on the internal client/structs package directly. I attempted moving the structs to drivers, but that caused some import cycles that was a bit hard to disentagle. Alternatively, I added an alias here that's sufficient for our purposes of avoiding external drivers depend on internal packages, while allowing us to restructure packages in future without breaking source compatibility.
-
Mahmood Ali authored
-
Mahmood Ali authored
-