Ultralight, security-first service mesh for Kubernetes. Main repo for Linkerd 2.x.
Go to file
Eliza Weisman ad073c79b9
Remove connect timeouts from Bind (#487)
Currently, the `Reconnect` middleware does not reconnect on connection errors (see  #491) and treats them as request errors. This means that when a connection timeout is wrapped in a `Reconnect`, timeout errors are treated as request errors, and the request returns HTTP 500. Since  this is not the desired behavior, the connection timeouts should be removed, at least until their errors can be handled differently.

This PR removes the connect timeouts from `Bind`, as described in https://github.com/runconduit/conduit/pull/483#issuecomment-369380003.

It removes the `CONDUIT_PROXY_PUBLIC_CONNECT_TIMEOUT_MS` environment variable, but _not_ the `CONDUIT_PROXY_PRIVATE_CONNECT_TIMEOUT_MS` variable, since this is also used for the TCP connect timeouts. If we want also want to remove the TCP connection timeouts, I can do that as well.

Closes #483. Fixes #491.
2018-03-05 15:38:20 -08:00
.github Add a newline to dco.yml (#254) 2018-02-01 15:16:02 -08:00
bin Make build scripts location-agnostic (#409) 2018-02-23 10:02:14 -08:00
cli Install: Don't install buoyantio/kubectl into the prometheus pod. (#509) 2018-03-05 08:59:14 -10:00
controller Handle ExternalName-type svcs in destination service (#490) 2018-03-02 11:30:53 -08:00
doc Move Conduit documentation sources to Conduit repo. (#418) 2018-02-28 13:39:28 -10:00
pkg cli: refactor k8s config to support $KUBECONFIG with multiple paths (#482) 2018-02-28 12:13:09 -08:00
proto Require timestamp on all telemetry requests (#342) 2018-02-13 13:52:21 -08:00
proxy Remove connect timeouts from Bind (#487) 2018-03-05 15:38:20 -08:00
proxy-init Use Go 1.10.0 to build Go components. (#408) 2018-02-21 14:31:29 -10:00
web Use Go 1.10.0 to build Go components. (#408) 2018-02-21 14:31:29 -10:00
.dockerignore Use bin/dep in Dockerfile-go-deps. (#324) 2018-02-12 13:32:08 -10:00
.editorconfig Add links to each deployment name in the Conduit dashboard (#44) 2017-12-19 15:40:24 -08:00
.gcp.json.enc Fix docker-build stage in CI (#21) 2017-12-08 00:52:06 -06:00
.gitattributes Introducing Conduit, the ultralight service mesh 2017-12-05 00:24:55 +00:00
.gitignore Allow bin/dep wrapper script for dep to work on Windows. (#271) 2018-02-05 09:24:18 -10:00
.prometheus.dev.yml Introducing Conduit, the ultralight service mesh 2017-12-05 00:24:55 +00:00
.travis.yml Skip flaky tests in non-Docker CI builds (#474) 2018-02-27 14:05:57 -08:00
BUILD.md Fixed build rust doc (#481) 2018-02-28 13:05:12 -08:00
CHANGES.md Prepare for the v0.3.0 release (#406) 2018-02-21 11:14:11 -08:00
CONTRIBUTING.md Add contributing doc and DCO file (#88) 2017-12-22 14:54:27 -08:00
Cargo.lock Proxy: Update domain dep. to remove rand 0.3 dep. (#495) 2018-03-01 17:16:21 -10:00
Cargo.toml Move the Rust gRPC bindings to a dedicated crate (#275) 2018-02-06 10:31:48 -08:00
DCO Add contributing doc and DCO file (#88) 2017-12-22 14:54:27 -08:00
Dockerfile-base Introducing Conduit, the ultralight service mesh 2017-12-05 00:24:55 +00:00
Dockerfile-go-deps Use Go 1.10.0 to build Go components. (#408) 2018-02-21 14:31:29 -10:00
Gopkg.lock Use Go 1.10.0 to build Go components. (#408) 2018-02-21 14:31:29 -10:00
Gopkg.toml Optimize Prometheus queries (#298) 2018-02-09 10:55:07 -08:00
LICENSE Introducing Conduit, the ultralight service mesh 2017-12-05 00:24:55 +00:00
README.md update readme: experimental -> alpha, and minor tweaks (#391) 2018-02-19 15:41:04 -08:00
docker-compose.yml Upgrade to Prometheus 2.1.0 (#344) 2018-02-13 13:22:53 -08:00

README.md

conduit

Build Status GitHub license Slack Status

🎈 Welcome to Conduit! 👋

Conduit is an ultralight service mesh for Kubernetes. It features a minimalist control plane written in Go, and a native proxy data plane written in Rust that boasts the performance of C without the heartbleed.

Conduit is alpha. It is capable of proxying all TCP traffic, and reporting top-line metrics (success rates, latencies, etc) for all HTTP, HTTP/2, and gRPC traffic. It currently does not work with websockets or with HTTP tunneling--see the --skip-outbound-ports flag for how to exclude these types of traffic.

Get involved

Documentation

View Conduit docs for more a more comprehensive guide to getting started, or view the full Conduit roadmap.

Getting started with Conduit

  1. Install the Conduit CLI with curl https://run.conduit.io/install | sh .

  2. Add $HOME/.conduit/bin to your PATH.

  3. Install Conduit into your Kubernetes cluster with: conduit install | kubectl apply -f -.

  4. Verify that the installation succeeded with conduit check.

  5. Explore the Conduit controller with conduit dashboard.

  6. Optionally, install a demo application to run with Conduit.

  7. Add your own service to the Conduit mesh!

Working in this repo

BUILD.md includes general information on how to work in this repo.

Code of conduct

This project is for everyone. We ask that our users and contributors take a few minutes to review our code of conduct.

License

Conduit is copyright 2018 Buoyant, Inc. All rights reserved.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use these files except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.