Commit graph

22259 commits

Author SHA1 Message Date
Charlie Voiselle 98a240cd99
Make number of scheduler workers reloadable (#11593)
## Development Environment Changes
* Added stringer to build deps

## New HTTP APIs
* Added scheduler worker config API
* Added scheduler worker info API

## New Internals
* (Scheduler)Worker API refactor—Start(), Stop(), Pause(), Resume()
* Update shutdown to use context
* Add mutex for contended server data
    - `workerLock` for the `workers` slice
    - `workerConfigLock` for the `Server.Config.NumSchedulers` and
      `Server.Config.EnabledSchedulers` values

## Other
* Adding docs for scheduler worker api
* Add changelog message

Co-authored-by: Derek Strickland <1111455+DerekStrickland@users.noreply.github.com>
2022-01-06 11:56:13 -05:00
Michael Schurter 1af8d47de2
Merge pull request #11744 from hashicorp/b-node-copy
Fix Node.Copy()
2022-01-05 17:01:53 -08:00
Jai c7e581d879
Merge pull request #11590 from hashicorp/e-ui/breadcrumbs-service
Refactor:  Breadcrumbs Service
2022-01-05 17:46:48 -05:00
Tim Gross 51f512a3e6
csi: reap unused volume claims at leadership transitions (#11776)
When `volumewatcher.Watcher` starts on the leader, it starts a watch
on every volume and triggers a reap of unused claims on any change to
that volume. But if a reaping is in-flight during leadership
transitions, it will fail and the event that triggered the reap will
be dropped. Perform one reap of unused claims at the start of the
watcher so that leadership transitions don't drop this event.
2022-01-05 11:40:20 -05:00
Arkadiusz ffb174b596
Fix log streaming missing frames (#11721)
Perform one more read after receiving cancel when streaming file from the allocation API
2022-01-04 14:07:16 -05:00
James Rasell 1f4e100edc
Merge pull request #11762 from hashicorp/b-gh-11681
docs: add 1.2.0 HCLv2 strict parsing upgrade note.
2022-01-04 09:30:09 +01:00
Tim Gross 6b1b3e7ef8
docs: fix attribute name for java version detection (#11764) 2022-01-03 16:50:25 -05:00
James Rasell 117c79117e
docs: add 1.2.0 HCLv2 strict parsing upgrade note. 2022-01-03 15:41:18 +00:00
Tim Gross 2806dc2bd7
docs/tests for multiple HTTP address config (#11760) 2022-01-03 10:17:13 -05:00
Kevin Schoonover 5d9a506bc0
agent: support multiple http address in addresses.http (#11582) 2022-01-03 09:33:53 -05:00
Tim Gross 395628efe1
api: paginate deployment list and accept wildcard namespace (#11743)
Add `per_page` and `next_token` handling to `Deployment.List` RPC, and
allow the use of a wildcard namespace for namespace filtering.
2022-01-03 08:36:02 -05:00
Jeff Escalante 60e7a186e7
add enterprise downloads page (#11750) 2021-12-25 14:42:12 -05:00
Michael Schurter 20bd8acf43 do not initialize copy's slice if nil in original 2021-12-23 16:40:35 -08:00
Noel Quiles e748508e67
website: Upgrade deps (#11709)
* Update @hashicorp/react-subnav

* Update <Subnav /> & <ProductDownloadsPage />
2021-12-23 16:18:57 -05:00
Michael Schurter c4d03815e1 add changelog for Node.Copy fix 2021-12-23 12:34:05 -08:00
Michael Schurter 88200f4eb9 core: fix DNS and CPU Core copying 2021-12-23 12:28:19 -08:00
Michael Schurter 7d741837b0 core: match struct field order in Copy() 2021-12-23 12:27:39 -08:00
Jai Bhagat d1342550df refact: clean-up breadcrumb invocations 2021-12-23 12:41:52 -05:00
Jai Bhagat 3533f62c6f fix: remove unecessary breadcrumb 2021-12-23 12:33:15 -05:00
Tim Gross 265e488ab4
task runner: fix goroutine leak in prestart hook (#11741)
The task runner prestart hooks take a `joincontext` so they have the
option to exit early if either of two contexts are canceled: from
killing the task or client shutdown. Some tasks exit without being
shutdown from the server, so neither of the joined contexts ever gets
canceled and we leak the `joincontext` (48 bytes) and its internal
goroutine. This primarily impacts batch jobs and any task that fails
or completes early such as non-sidecar prestart lifecycle tasks.
Cancel the `joincontext` after the prestart call exits to fix the
leak.
2021-12-23 11:50:51 -05:00
Tim Gross 430d94b81d
deps: upgrade go-getter to 1.5.10 (#11740)
The `go-getter` library was updated to 1.5.9 in #11481 to pick up a
bug fix for automatically unpacking uncompressed tar archives. But
this version had a regression in git `ref` param behavior and was
patched in 1.5.10.
2021-12-23 10:37:52 -05:00
Luiz Aoqui 4bdd2c84e3
fix host network reserved port fingerprint (#11728) 2021-12-22 15:29:54 -05:00
Tim Gross 2f6b9b0772
scheduler: tooling for scheduler benchmarking (#11725)
Adds a package `scheduler/benchmarks` with some examples of profiling
and benchmarking the scheduler, along with helpers for loading
real-world data for profiling.

This tooling comes out of work done for #11712. These test benchmarks
have not been added to CI because these particular profiles are mostly
examples and the runs will add an excessive amount of time to CI runs
for code that rarely changes in a way that has any chance of impacting
performance.
2021-12-22 10:05:44 -05:00
Alex Carpenter d1b577330a
Merge pull request #11669 from hashicorp/ac.home-redirect
fix: redirects website `/home` to `/`
2021-12-22 09:43:05 -05:00
Luiz Aoqui 40093f97cd
api: support namespace wildcard in CSI volume list (#11724) 2021-12-21 17:19:45 -05:00
Shishir 65eab35412
Add support for setting pids_limit in docker plugin config. (#11526) 2021-12-21 13:31:34 -05:00
Tim Gross b0c3b99b03
scheduler: fix quadratic performance with spread blocks (#11712)
When the scheduler picks a node for each evaluation, the
`LimitIterator` provides at most 2 eligible nodes for the
`MaxScoreIterator` to choose from. This keeps scheduling fast while
producing acceptable results because the results are binpacked.

Jobs with a `spread` block (or node affinity) remove this limit in
order to produce correct spread scoring. This means that every
allocation within a job with a `spread` block is evaluated against
_all_ eligible nodes. Operators of large clusters have reported that
jobs with `spread` blocks that are eligible on a large number of nodes
can take longer than the nack timeout to evaluate (60s). Typical
evaluations are processed in milliseconds.

In practice, it's not necessary to evaluate every eligible node for
every allocation on large clusters, because the `RandomIterator` at
the base of the scheduler stack produces enough variation in each pass
that the likelihood of an uneven spread is negligible. Note that
feasibility is checked before the limit, so this only impacts the
number of _eligible_ nodes available for scoring, not the total number
of nodes.

This changeset sets the iterator limit for "large" `spread` block and
node affinity jobs to be equal to the number of desired
allocations. This brings an example problematic job evaluation down
from ~3min to ~10s. The included tests ensure that we have acceptable
spread results across a variety of large cluster topologies.
2021-12-21 10:10:01 -05:00
Jai Bhagat 6369c4af7d chore: clean-up merge conflict after rebase 2021-12-21 07:52:06 -05:00
Jai Bhagat 420a7ff351 fix: add ember-a11y-testing-audit-call 2021-12-21 07:47:22 -05:00
Jai Bhagat b859406bd5 styling: fix opacity for last child in the list 2021-12-21 07:47:06 -05:00
Jai Bhagat 0d97780654 fix: test specs should expect to receive breadcrumb titles 2021-12-21 07:47:06 -05:00
Jai Bhagat c765d4c519 style: centering and spacing for titled breadcrumbs 2021-12-21 07:47:05 -05:00
Jai Bhagat c24923a858 feat: handle title behavior for job breadcrumb 2021-12-21 07:47:05 -05:00
Jai Bhagat 9551d41c08 refact: add title to breadcrumb generator
All breadcrumbs do not need a title property because some views
drill down by using a tab-based UI (e.g. CSI volumes and the Job Overview)

The goal is to help us identify breadcrumbs that are non-descriptive (i.e.
breadcrumbs that display as an ID).
2021-12-21 07:47:05 -05:00
Jai Bhagat 008f538222 style: add styling for title on breadcrumbs 2021-12-21 07:47:05 -05:00
Jai Bhagat f6dda0526c feat: add title to default breadcrumb component 2021-12-21 07:47:05 -05:00
Jai Bhagat c302f3a5cd update: add comment to explain loading namespaces in alloc route 2021-12-21 07:47:05 -05:00
Jai Bhagat edb330e701 fix: delete jobs route - ember creates this for us 2021-12-21 07:47:05 -05:00
Jai Bhagat 34a55dec48 fix: add in for topology route 2021-12-21 07:47:03 -05:00
Jai Bhagat db3abcbed4 fix: update breadcrumb tests according to new breadcrumb structure 2021-12-21 07:46:28 -05:00
Jai Bhagat 86b9c1fe03 refactor: delete unit tests for old breadcrumbs service 2021-12-21 07:46:28 -05:00
Jai Bhagat 88526aac65 refactor: delete app-breadcrumbs component file 2021-12-21 07:46:28 -05:00
Jai Bhagat 5cc0fc20cc refactor: remove double each in app breadcrumbs 2021-12-21 07:46:28 -05:00
Jai Bhagat 63d096a56a test: breadcrumbs functionality 2021-12-21 07:46:28 -05:00
Jai Bhagat e53a6072de chore: write tests for trigger component 2021-12-21 07:46:28 -05:00
Jai Bhagat 1188a5632f fix: handle case for async relationships 2021-12-21 07:46:27 -05:00
Jai Bhagat f7602d9a2a fix: resolve parent on job still issue with alloc job async relationship 2021-12-21 07:46:27 -05:00
Jai Bhagat e957e5b7d7 feat: create trigger component
Create Trigger Component and deprecate Breadcrumb-Utils pattern.
2021-12-21 07:46:25 -05:00
Jai Bhagat ede70ab0d9 fix: delete old breadcrumbs and replace with bucket 2021-12-21 07:45:24 -05:00
Jai Bhagat 346c436a6e fix: delete state from routes and move to controllers and add renderless component to templates 2021-12-21 07:45:12 -05:00