Commit Graph

22318 Commits

Author SHA1 Message Date
Tim Gross
358a46819b fix integer bounds checks (#11815)
* driver: fix integer conversion error

The shared executor incorrectly parsed the user's group into int32 and
then cast to uint32 without bounds checking. This is harmless because
an out-of-bounds gid will throw an error later, but it triggers
security and code quality scans. Parse directly to uint32 so that we
get correct error handling.

* helper: fix integer conversion error

The autopilot flags helper incorrectly parses a uint64 to a uint which
is machine specific size. Although we don't have 32-bit builds, this
sets off security and code quality scaans. Parse to the machine sized
uint.

* driver: restrict bounds of port map

The plugin server doesn't constrain the maximum integer for port
maps. This could result in a user-visible misconfiguration, but it
also triggers security and code quality scans. Restrict the bounds
before casting to int32 and return an error.

* cpuset: restrict upper bounds of cpuset values

Our cpuset configuration expects values in the range of uint16 to
match the expectations set by the kernel, but we don't constrain the
values before downcasting. An underflow could lead to allocations
failing on the client rather than being caught earlier. This also make
security and code quality scanners happy.

* http: fix integer downcast for per_page parameter

The parser for the `per_page` query parameter downcasts to int32
without bounds checking. This could result in underflow and
nonsensical paging, but there's no server-side consequences for
this. Fixing this will silence some security and code quality scanners
though.
2022-01-25 11:16:48 -05:00
James Rasell
3423118861 Merge pull request #11907 from hashicorp/f-state-store-nomad-file
state: move restore functionality into its own file.
2022-01-25 08:55:49 +01:00
Seth Hoenig
6c51333e97 Merge pull request #11918 from hashicorp/deps-update-api-deps
deps: update api go version and dependencies
2022-01-24 14:33:04 -06:00
Seth Hoenig
204e2d7f2d Merge pull request #11883 from hashicorp/dependabot/go_modules/github.com/prometheus/client_golang-1.12.0
build(deps): bump github.com/prometheus/client_golang from 1.7.1 to 1.12.0
2022-01-24 12:26:50 -06:00
Seth Hoenig
5ef844c827 deps: update api go version and dependencies
This PR sets the minimum Go version for the `api` submodule to Go 1.17.

It also upgrades
 - gorilla/websocket 1.4.1 -> 1.4.2
 - mitchelh/mapstructure 1.4.2 -> 1.4.3
 - stretchr/testify 1.5.1 -> 1.7.0

Closes #11518 #11602 #11528
2022-01-24 12:23:26 -06:00
Seth Hoenig
ab6dcebdb3 Merge pull request #11836 from hashicorp/dependabot/go_modules/github.com/hashicorp/memberlist-0.3.1
chore(deps): bump github.com/hashicorp/memberlist from 0.2.2 to 0.3.1
2022-01-24 11:56:18 -06:00
Tim Gross
9d60df2ffc csi: update leader's ACL in volumewatcher (#11891)
The volumewatcher that runs on the leader needs to make RPC calls
rather than writing to raft (as we do in the deploymentwatcher)
because the unpublish workflow needs to make RPC calls to the
clients. This requires that the volumewatcher has access to the
leader's ACL token.

But when leadership transitions, the new leader creates a new leader
ACL token. This ACL token needs to be passed into the volumewatcher
when we enable it, otherwise the volumewatcher can find itself with a
stale token.
2022-01-24 11:49:50 -05:00
Dan Norris
a01b70ccf5 docs: Update volume create/register mount options to use []string example (#11912)
The examples for `nomad volume create` and `nomad volume register` are
not setting `mount_flags` using an array of strings.

This fixes the issue by changing the example to be `mount_flags =
["noatime"]`.
2022-01-24 11:34:21 -05:00
Seth Hoenig
cb77cf6526 Merge pull request #11889 from hashicorp/build-update-circle
build: upgrade circleci configuration
2022-01-24 10:18:21 -06:00
Luiz Aoqui
becc6e22b0 Merge pull request #11876 from hashicorp/e2e-fix-consul-tls
e2e: enable Consul HTTPS port and always restart Nomad systemd unit
2022-01-24 11:18:09 -05:00
Seth Hoenig
5d79032db9 Merge pull request #11910 from hashicorp/deps-update-containernetworking
deps: upgrade containernetworking/plugins
2022-01-24 10:14:50 -06:00
Seth Hoenig
fd7d89a5dd deps: add missing cl note 2022-01-24 10:13:13 -06:00
Tim Gross
55300307dc changelog: fix entry markdown (#11911) 2022-01-24 11:04:14 -05:00
Seth Hoenig
3dc5214c3b deps: upgrade containernetworking/plugins
Upgrade containernetworking/plugins to v1.0.1 release, along with
its transitive dependencies.

Closes #11108
2022-01-24 08:40:30 -06:00
Seth Hoenig
8492c6576e build: upgrade and speedup circleci configuration
This PR upgrades our CI images and fixes some affected tests.

- upgrade go-machine-image to premade latest ubuntu LTS (ubuntu-2004:202111-02)

- eliminate go-machine-recent-image (no longer necessary)

- manage GOPATH in GNUMakefile (see https://discuss.circleci.com/t/gopath-is-set-to-multiple-directories/7174)

- fix tcp dial error check (message seems to be OS specific)

- spot check values measured instead of specifically 'RSS' (rss no longer reported in cgroups v2)

- use safe MkdirTemp for generating tmpfiles

NOT applied: (too flakey)

- eliminate setting GOMAXPROCS=1 (build tools were also affected by this setting)

- upgrade resource type for all imanges to large (2C -> 4C)
2022-01-24 08:28:14 -06:00
Jai
81f7d7d3e3 Merge pull request #11754 from hashicorp/b-ui/fix-linter
ui:  fix linter and prettier
2022-01-24 09:08:47 -05:00
James Rasell
6136d61351 state: move restore functionality into its own file. 2022-01-24 13:03:03 +01:00
Jai Bhagat
a6b3836d85 fix: mirage fixtures are randomized so we cant assert.expect 2022-01-20 10:55:36 -05:00
Jai Bhagat
cae4bec3c9 ui: fix remaining linting errors 2022-01-20 10:39:02 -05:00
Jai Bhagat
2032813bb6 ui: apply new qunit linting rules to tests
Async tests should use  in integrations tests.
Acceptance tests are using Mirage and can't use
since we can't know the number of assertions.
2022-01-20 10:01:35 -05:00
Jai Bhagat
8c600acb35 ui: prettify js files 2022-01-20 09:54:56 -05:00
Jai Bhagat
635e937033 ui: upgrade prettier to match 3.28 ember-new-output 2022-01-20 09:46:50 -05:00
Jai Bhagat
ba9d95c34d ui: disable no-string-protype-extensions where its currently in use 2022-01-20 09:46:49 -05:00
Jai Bhagat
e540aa349e ui: turn off tagless components linting error
Classic components still use tagName decorator
2022-01-20 09:46:49 -05:00
Jai Bhagat
1975f43d35 ui: turn off no-component-lifecycle-hooks
Classic components use lifecycle hooks.
2022-01-20 09:46:49 -05:00
Jai Bhagat
56d24d841c ui: turn off no-classic-components
This is a mixed codebase and still uses classic components
2022-01-20 09:46:49 -05:00
Jai Bhagat
2701de50d2 ui: storybook accesses private routing service 2022-01-20 09:46:49 -05:00
Jai Bhagat
d8faa5e56b ui: replace this.render with render test-helper in tests 2022-01-20 09:46:49 -05:00
Jai Bhagat
720bfa82a7 ui: disable linting on files that use controllerFor 2022-01-20 09:46:49 -05:00
Jai Bhagat
acb818504c ui: turn off no-computed-properties-in-native-classes
We have ~60 uses of computed properties across routes (for watcher system), components,
and models.
2022-01-20 09:46:48 -05:00
Jai Bhagat
4fe64bbcff ui: turn off no-class-classes rule
We still use classic classes because this is a mixed
codebase between Octane and Classic.
2022-01-20 09:46:48 -05:00
Jai Bhagat
d0f8322786 ui: fix auto-fixable linting errors 2022-01-20 09:46:45 -05:00
Jai Bhagat
ba92ba367d ui: match eslint script with ember-new-output 2022-01-20 09:29:10 -05:00
Jai Bhagat
3c78be7fba ui: ignore cache for eslint, to speed up linting 2022-01-20 09:29:10 -05:00
Jai Bhagat
c4882b600f ui: match eslintrc with ember-new-output 2022-01-20 09:29:10 -05:00
Jai Bhagat
dc3186068a ui: match linting and prettier packages with ember-new-output 3.24 2022-01-20 09:29:10 -05:00
Jai Bhagat
28b64b89a2 chore: add jsconfig to stop experimental decorator warnings 2022-01-20 09:29:10 -05:00
Luiz Aoqui
1471de4d37 Merge pull request #11887 from hashicorp/changelog-11793
changelog: manually add entry for #11793
2022-01-19 16:27:52 -05:00
Luiz Aoqui
a200e2f247 changelog: manually add entry for #11793 2022-01-19 16:13:04 -05:00
Seth Hoenig
b20011c944 Merge pull request #11855 from hashicorp/deps-swap-pty
deps: pty has new home
2022-01-19 13:25:52 -06:00
Seth Hoenig
143705fb28 deps: pty has new home
github.com/kr/pty was moved to github.com/creack/pty

Swap this dependency so we can upgrade to the latest version
and no longer need a replace directive.
2022-01-19 12:33:05 -06:00
Seth Hoenig
e8ca5331a3 Merge pull request #11843 from hashicorp/deps-swap-gzip-handler
deps: replace gzip handler
2022-01-19 12:29:24 -06:00
Seth Hoenig
e2ab16847d deps: adjust to gzip handler zero length response body
After swapping gzip handler to use the gorilla library, we
must account for a quirk in how zero/minimal length response
bodies are delivered.

The previous gzip handler was configured to compress all responses
regardless of size - even if the data was zero length or below the
network MTU. This behavior changed in [v1.1.0](c551b6c3b4 (diff-de723e6602cc2f16f7a9d85fd89d69954edc12a49134dab8901b10ee06d1879d))
which is why we could not upgrade.

The Nomad HTTP Client mutates the http.Response.Body object, making
a strong assumption that if the Content-Encoding header is set to "gzip",
the response will be readable via gzip decoder. This is no longer true
for the nytimes gzip handler, and is also not true for the gorilla gzip
handler.

It seems in practice this only makes a difference on the /v1/operator/license
endpoint which returns an empty response in OSS Nomad.

The fix here is to simply not wrap the response body reader if we
encounter an io.EOF while creating the gzip reader - indicating there
is no data to decode.
2022-01-19 11:52:19 -06:00
Seth Hoenig
d061e8eadf deps: swap gzip handler for gorilla
This has been pinned since the Go modules migration, because the
nytimes gzip handler was modified in version v1.1.0 in a way that
is no longer compatible.

Pretty sure it is this commit: c551b6c3b4

Instead use handler.CompressHandler from gorilla, which is a web toolkit we already
make use of for other things.
2022-01-19 11:52:19 -06:00
dependabot[bot]
e23bc514ef build(deps): bump github.com/prometheus/client_golang
Bumps [github.com/prometheus/client_golang](https://github.com/prometheus/client_golang) from 1.7.1 to 1.12.0.
- [Release notes](https://github.com/prometheus/client_golang/releases)
- [Changelog](https://github.com/prometheus/client_golang/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prometheus/client_golang/compare/v1.7.1...v1.12.0)

---
updated-dependencies:
- dependency-name: github.com/prometheus/client_golang
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-19 17:40:19 +00:00
Seth Hoenig
6f664c53e7 Merge pull request #11872 from hashicorp/deps-upgrade-runc
deps: upgrade docker and runc
2022-01-19 11:38:28 -06:00
Luiz Aoqui
3d9cab5559 Merge pull request #11882 from hashicorp/merge-release-1.2.4-branch
Merge release 1.2.4 branch
2022-01-19 11:57:07 -05:00
Luiz Aoqui
620abba134 prepare for next release 2022-01-19 11:51:59 -05:00
Luiz Aoqui
8631085a56 Merge remote-tracking branch 'origin/release-1.2.4' into merge-release-1.2.4-branch 2022-01-19 11:50:07 -05:00
Luiz Aoqui
d3f48555d7 update download to Nomad v1.2.4 (#11880) 2022-01-19 11:10:24 -05:00