Go to file
James Rasell a9a04141a3
consul/connect: avoid warn messages on connect proxy errors
When creating a TCP proxy bridge for Connect tasks, we are at the
mercy of either end for managing the connection state. For long
lived gRPC connections the proxy could reasonably expect to stay
open until the context was cancelled. For the HTTP connections used
by connect native tasks, we experience connection disconnects.
The proxy gets recreated as needed on follow up requests, however
we also emit a WARN log when the connection is broken. This PR
lowers the WARN to a TRACE, because these disconnects are to be
expected.

Ideally we would be able to proxy at the HTTP layer, however Consul
or the connect native task could be configured to expect mTLS, preventing
Nomad from MiTM the requests.

We also can't mange the proxy lifecycle more intelligently, because
we have no control over the HTTP client or server and how they wish
to manage connection state.

What we have now works, it's just noisy.

Fixes #10933
2021-08-05 11:27:35 +02:00
.changelog consul/connect: avoid warn messages on connect proxy errors 2021-08-05 11:27:35 +02:00
.circleci ci: prepare unprivileged user for checkout (#10900) 2021-07-14 16:12:04 -04:00
.github
acl
api Merge pull request #10806 from hashicorp/munda/idempotent-job-dispatch 2021-07-08 10:23:31 -04:00
client consul/connect: avoid warn messages on connect proxy errors 2021-08-05 11:27:35 +02:00
command cli: Use glint to determine if os.Stdout is tty (#10926) 2021-07-23 11:27:47 -04:00
contributing Adopt go-changelog in Nomad (#10825) 2021-07-06 10:46:53 -04:00
demo
dev
devices/gpu/nvidia
drivers docker: move host path for hosts file mount to alloc dir (#10823) 2021-06-30 11:10:04 -04:00
e2e e2e: use -detach mode when registering jobs with cli (#10877) 2021-07-09 09:25:44 -04:00
helper
integrations
internal/testing/apitests
jobspec hcl: add new cores resources field 2021-07-26 11:45:10 -04:00
jobspec2
lib
nomad Merge pull request #10904 from hashicorp/b-no-affinity-intern 2021-07-22 09:09:07 -05:00
plugins
scheduler scheduler: datacenter updates should be destructive 2021-07-07 11:18:30 -04:00
scripts
terraform
testutil
tools
ui edit namespace property in handlebar file to use computed property in component 2021-07-22 11:43:45 -04:00
version
website Update client.mdx 2021-07-27 11:24:34 +08:00
.gitattributes
.gitignore
.golangci.yml
CHANGELOG.md Merge pull request #10806 from hashicorp/munda/idempotent-job-dispatch 2021-07-08 10:23:31 -04:00
GNUmakefile build: no longer use vendor directory 2021-07-14 11:13:30 -05:00
LICENSE
README.md
Vagrantfile
build_linux_arm.go
go.mod cli: Use glint to determine if os.Stdout is tty (#10926) 2021-07-23 11:27:47 -04:00
go.sum cli: Use glint to determine if os.Stdout is tty (#10926) 2021-07-23 11:27:47 -04:00
main.go
main_test.go

README.md

Nomad Build Status Discuss

HashiCorp Nomad logo

Nomad is a simple and flexible workload orchestrator to deploy and manage containers (docker, podman), non-containerized applications (executable, Java), and virtual machines (qemu) across on-prem and clouds at scale.

Nomad is supported on Linux, Windows, and macOS. A commercial version of Nomad, Nomad Enterprise, is also available.

Nomad provides several key features:

  • Deploy Containers and Legacy Applications: Nomads flexibility as an orchestrator enables an organization to run containers, legacy, and batch applications together on the same infrastructure. Nomad brings core orchestration benefits to legacy applications without needing to containerize via pluggable task drivers.

  • Simple & Reliable: Nomad runs as a single binary and is entirely self contained - combining resource management and scheduling into a single system. Nomad does not require any external services for storage or coordination. Nomad automatically handles application, node, and driver failures. Nomad is distributed and resilient, using leader election and state replication to provide high availability in the event of failures.

  • Device Plugins & GPU Support: Nomad offers built-in support for GPU workloads such as machine learning (ML) and artificial intelligence (AI). Nomad uses device plugins to automatically detect and utilize resources from hardware devices such as GPU, FPGAs, and TPUs.

  • Federation for Multi-Region, Multi-Cloud: Nomad was designed to support infrastructure at a global scale. Nomad supports federation out-of-the-box and can deploy applications across multiple regions and clouds.

  • Proven Scalability: Nomad is optimistically concurrent, which increases throughput and reduces latency for workloads. Nomad has been proven to scale to clusters of 10K+ nodes in real-world production environments.

  • HashiCorp Ecosystem: Nomad integrates seamlessly with Terraform, Consul, Vault for provisioning, service discovery, and secrets management.

Quick Start

Testing

See Learn: Getting Started for instructions on setting up a local Nomad cluster for non-production use.

Optionally, find Terraform manifests for bringing up a development Nomad cluster on a public cloud in the terraform directory.

Production

See Learn: Nomad Reference Architecture for recommended practices and a reference architecture for production deployments.

Documentation

Full, comprehensive documentation is available on the Nomad website: https://www.nomadproject.io/docs

Guides are available on HashiCorp Learn.

Contributing

See the contributing directory for more developer documentation.