Commit Graph

20281 Commits

Author SHA1 Message Date
Seth Hoenig
f0dff3fada agent: revert use of http connlimit
https://github.com/hashicorp/nomad/pull/9608 introduced the use of the
built-in HTTP 429 response handler provided by go-connlimit. There is
concern though around plausible DOS attacks that need to be addressed,
so this PR reverts that functionality.

It keeps a fix in the tests around the use of an HTTPS enabled client
for when the server is listening on HTTPS. Previously, the tests would
fail deterministically with io.EOF because that's how the TLS server
terminates invalid connections.

Now, the result is much less deterministic. The state of the client
connection and the server socket depends on when the connection is
closed and how far along the handshake was.
2020-12-14 14:40:14 -06:00
Seth Hoenig
fa4fb8922a Merge pull request #9630 from hashicorp/f-add-depgaurd
Add and enable depgaurd linter
2020-12-14 11:13:03 -06:00
Kris Hicks
4194f74e0a Bump buf check breaking tag to 1.0.0 (#9629) 2020-12-14 09:07:51 -08:00
Seth Hoenig
14aca2fe3e Merge pull request #9624 from hashicorp/b-connect-meta-regression
consul/connect: fix regression where client connect images ignored
2020-12-14 11:03:09 -06:00
Seth Hoenig
8816b7b6d5 Merge pull request #9620 from hashicorp/f-remove-consul-flags
command: remove use of flag impls from consul
2020-12-14 10:33:35 -06:00
Seth Hoenig
275806cebf build: add depgaurd linter and block consul flags 2020-12-14 10:21:26 -06:00
Seth Hoenig
d5e6c5e22e command: give flag-helpers a better name 2020-12-14 10:07:27 -06:00
Seth Hoenig
f0f6f3a18f consul/connect: fix regression where client connect images ignored
Nomad v1.0.0 introduced a regression where the client configurations
for `connect.sidecar_image` and `connect.gateway_image` would be
ignored despite being set. This PR restores that functionality.

There was a missing layer of interpolation that needs to occur for
these parameters. Since Nomad 1.0 now supports dynamic envoy versioning
through the ${NOMAD_envoy_version} psuedo variable, we basically need
to first interpolate

  ${connect.sidecar_image} => envoyproxy/envoy:v${NOMAD_envoy_version}

then use Consul at runtime to resolve to a real image, e.g.

  envoyproxy/envoy:v${NOMAD_envoy_version} => envoyproxy/envoy:v1.16.0

Of course, if the version of Consul is too old to provide an envoy
version preference, we then need to know to fallback to the old
version of envoy that we used before.

  envoyproxy/envoy:v${NOMAD_envoy_version} => envoyproxy/envoy:v1.11.2@sha256:a7769160c9c1a55bb8d07a3b71ce5d64f72b1f665f10d81aa1581bc3cf850d09

Beyond that, we also need to continue to support jobs that set the
sidecar task themselves, e.g.

  sidecar_task { config { image: "custom/envoy" } }

which itself could include teh pseudo envoy version variable.
2020-12-14 09:47:55 -06:00
Steffen
bdadac5a77 on s390x, only compile compile release for s390x (#9601) 2020-12-14 08:27:19 -05:00
Mahmood Ali
3a8475e694 Merge pull request #9623 from hashicorp/b-hcl2-envvar
set EnvVar variables in hcl2 parsing
2020-12-11 13:59:37 -05:00
Mahmood Ali
205a1de6f3 docs: remove envvar option 2020-12-11 13:34:53 -05:00
Mahmood Ali
ae7e29ff49 actually pass env-vars to hcl2 parsing 2020-12-11 13:32:54 -05:00
Drew Bailey
3e793ea3c4 Events/acl events (#9595)
* fix acl event creation

* allow way to access secretID without exposing it to stream

test that values are omitted

test event creation

test acl events

payloads are pointers

fix failing tests, do all security steps inside constructor

* increase time

* ignore empty tokens

* uncomment line

* changelog
2020-12-11 10:40:50 -05:00
Seth Hoenig
fdd8d352f9 command: remove use of flag impls from consul
In a few places Nomad was using flag implementations directly
from Consul, lending to Nomad's need to import consul. Replace
those uses with helpers already in Nomad, and copy over the bare
minimum needed to make the autopilot flags behave as they have.
2020-12-11 07:58:20 -06:00
Michael Lange
893211f6f6 Merge pull request #9599 from hashicorp/changli0617-patch-1
Highlight "alternative to Kubernetes"
2020-12-10 14:29:32 -08:00
Michael Lange
3097739b77 Merge pull request #9600 from hashicorp/changli0617-patch-2
Update index.jsx
2020-12-10 14:28:55 -08:00
Michael Lange
1cae1ff602 Add a line break before the "learn why" cta on our home page 2020-12-10 12:26:53 -08:00
Michael Lange
2e4f11c29e Change the features-list component to support arbitrary markup in the content field 2020-12-10 12:05:17 -08:00
Michael Lange
916c7f65d0 Fix mismatched quotes in JSX strings 2020-12-10 12:04:11 -08:00
Seth Hoenig
6fe1df166c Merge pull request #9611 from hashicorp/b-gateway-concurrency
consul/connect: set default Envoy worker threads for gateways
2020-12-10 12:44:28 -06:00
Buck Doyle
2211ec777b Move breadcrumbs objects into shared layout object (#9576)
Various page objects had breadcrumbs and breadcrumbFor within them, this
moves those to the existing Layout page object that contains shared page objects.
2020-12-10 11:51:22 -06:00
Mahmood Ali
7af666983b Merge pull request #9612 from hashicorp/docs-hcl2-tweaks
docs: Moe unquoting of HCL block attributes
2020-12-10 12:21:12 -05:00
Mahmood Ali
64caae7393 Apply suggestions from code review
Co-authored-by: Seth Hoenig <shoenig@hashicorp.com>
2020-12-10 12:21:01 -05:00
Seth Hoenig
958942e340 Merge pull request #9608 from hashicorp/f-go-connlimit
Use go-connlimit to ratelimit with 429 responses
2020-12-10 11:05:07 -06:00
Seth Hoenig
26acbf750c client: fix plumbing of testing object into helper 2020-12-10 11:04:38 -06:00
Mahmood Ali
d4b153aded note environment variables needing to be valid unicode identifier 2020-12-10 12:03:19 -05:00
Mahmood Ali
4ad0a882ec docs: deactivate var-file section
--var-files has a bug where we don't honor it properly.  Let's remove it
from docs, to be enabled for 1.0.1.
2020-12-10 12:03:19 -05:00
Mahmood Ali
e7ace9f004 docs: ensure meta keys are not quoted 2020-12-10 12:03:19 -05:00
Seth Hoenig
fdcfaed92a consul/connect: set default Envoy worker threads for gateways
Applying the default --concurrency for gateways was missed before.
Set the default Envoy concurrency to 1 for connect gateways. The
same override value meta.connect.proxy_concurrency applies.
2020-12-10 10:36:29 -06:00
Mahmood Ali
3ce044876e unquote env attributes 2020-12-10 11:30:01 -05:00
Buck Doyle
863c194733 Fix job recommendation test flakiness (#9591)
Instead of creating recommendations for all the jobs used
across these tests, this creates a specific job with
a higher group count, which reduces the likelihood
of having no recommendations to 0.0001%.

It was incorrect to assume that each task group would always
have recommendations, since there’s a 1% chance that a task
won’t have a recommendation. (10% chance for CPU and memory.)
This uses the number of groups with recommendations instead.
2020-12-10 10:10:25 -06:00
Kris Hicks
7747124ef0 Apply some suggested fixes from staticcheck (#9598) 2020-12-10 07:29:18 -08:00
Kris Hicks
74cb28ec30 pluginmanager: WaitForFirstFingerprint times out (#9597)
As pointed out by @tgross[1], prior to this change we would have been blocking
until all managers waited for first fingerprint rather than timing out as
intended.

1: https://github.com/hashicorp/nomad/pull/9590#discussion_r539534906
2020-12-10 07:27:15 -08:00
Seth Hoenig
5508e5d8cb client: fix https test cases in client rate limits 2020-12-10 09:20:28 -06:00
André Peters
82828aaa00 Update index.mdx
"Invalid argument name; Argument names must not be quoted."
2020-12-10 08:21:47 -05:00
changli0617
9deaadba23 Update index.jsx
Replace a value card to show case "2 million container challenge"
2020-12-09 18:32:17 -08:00
Ben Buzbee
1919c18b0f Use new go-connlimit with HTTP 429 response
This is essentially a port of Consul's similar fix
Changes are:
go get -u github.com/hashicorp/go-connlimit
go mod vendor
Use new HTTP429 handler

20d1ea7d2d
2020-12-09 17:57:16 -06:00
Mahmood Ali
09a3056518 Tweak early return website workflow (#9593)
* ci: only spin up a docker engine if necessary

Halt the website-docker-image job early if no changes are detected. We
halt early before spinning up the remote docker engine, as the remote
docker engine step can add some delay (seconds to minutes) and is more
likely to suffer circleci instability.

* ci: Only run website workflow in OSS repo

Add a CircleCI conditional to avoid running website worklows on forks.
2020-12-09 17:54:36 -05:00
Seth Hoenig
b38ccaac3d Merge pull request #9586 from hashicorp/f-connect-interp
consul/connect: interpolate connect block
2020-12-09 13:21:50 -06:00
Mahmood Ali
6bfbadc199 actually honor var files (#9592)
Apparently, we missed passing VarFile argument, so var files were
ignored.

Fixes #9588
2020-12-09 14:12:48 -05:00
Kris Hicks
85ed8ddd4f Add gosimple linter (#9590) 2020-12-09 11:05:18 -08:00
Kris Hicks
8333ab9f80 circleci: Allow expanding Makefile in enterpise (#9587)
OSS no longer needs the multi-file config Makefile content, so it was
removed. However, enterprise does benefit from having that around. We
can allow enterprise to expand on OSS' CircleCI Makefile by adding an
include directive in OSS. This will allow the Makefile to be the same on
both OSS and Enterprise, so merge conflicts cannot occur.
2020-12-09 09:53:26 -08:00
Seth Hoenig
edf1e25d30 consul/connect: avoid extra copy of connect stanza while interpolating 2020-12-09 11:44:07 -06:00
Seth Hoenig
54653d265e docs: fixup changelog
Co-authored-by: Tim Gross <tgross@hashicorp.com>
2020-12-09 11:27:12 -06:00
Seth Hoenig
c1f1b1573c Merge pull request #9589 from hashicorp/f-aws-graviton
client/fingerprint/cpu: use fallback total compute value if cpu not detected
2020-12-09 11:19:44 -06:00
Seth Hoenig
da1235f35b client/fingerprint/cpu: use fallback total compute value if cpu not detected
Previously, Nomad would fail to startup if the CPU fingerprinter could
not detect the cpu total compute (i.e. cores * mhz). This is common on
some EC2 instance types (graviton class), where the env_aws fingerprinter
will override the detected CPU performance with a more accurate value
anyway.

Instead of crashing on startup, have Nomad use a low default for available
cpu performance of 1000 ticks (e.g. 1 core * 1 GHz). This enables Nomad
to get past the useless cpu fingerprinting on those EC2 instances. The
crashing error message is now a log statement suggesting the setting of
cpu_total_compute in client config.

Fixes #7989
2020-12-09 10:35:58 -06:00
Seth Hoenig
4d0e74585a consul/connect: interpolate connect block
This PR enables job submitters to use interpolation in the connect
block of jobs making use of consul connect. Before, only the name of
the connect service would be interpolated, and only for a few select
identifiers related to the job itself (#6853). Now, all connect fields
can be interpolated using the full spectrum of runtime parameters.

Note that the service name is interpolated at job-submission time,
and cannot make use of values known only at runtime.

Fixes #7221
2020-12-09 09:10:00 -06:00
Kris Hicks
0c03202ce5 circleci: Remove GO_TAGS from build-binaries job (#9579)
These tags default to the same value in GNUMakefile. This will also help
fix a discrepancy between the build-binaries job in OSS and Ent.
2020-12-09 06:56:56 -08:00
Drew Bailey
e76add702d use concrete type helper instead of interface surfing (#9585)
* use concrete type helper instead of interface surfing

* wrap err
2020-12-09 09:02:37 -05:00
Kris Hicks
bbf1eaa833 Remove multi-file CircleCI config (#9571) 2020-12-08 13:18:11 -08:00