Ultralight, security-first service mesh for Kubernetes. Main repo for Linkerd 2.x.
Go to file
Eliza Weisman a82eec37ab
Attempt to load TLS settings immediately prior to starting watch (#1137)
Previously, the proxy would not attempt to load its TLS certificates until a fs
watch detected that one of them had changed. This means that if the proxy was
started with valid files already at the configured paths, it would not load 
them until one of the files changed.

This branch fixes that issue by starting the stream of changes with one event
_followed_ by any additional changes detected by watching the filesystem.

I've manually tested that this fixes the issue, both on Linux and on macOS, and
can confirm that this fixes the issue. In addition, when I start writing 
integration tests for certificate reloading, I'll make sure to include a test
to detect any regressions.

Closes #1133.

Signed-off-by: Eliza Weisman <eliza@buoyant.io>
2018-06-15 17:32:55 -07:00
.github Add a newline to dco.yml (#254) 2018-02-01 15:16:02 -08:00
bin Start running integration tests in CI (#1064) 2018-06-15 14:36:48 -07:00
cli Propagate errors in conduit containers to the api (#1117) 2018-06-14 16:22:31 -07:00
controller Propagate errors in conduit containers to the api (#1117) 2018-06-14 16:22:31 -07:00
doc Release v0.4.2 (#1063) 2018-06-04 15:37:04 -07:00
grafana Remove the ⚠️ emoji from non-tlsed grafana stat labels (#1089) 2018-06-08 15:00:56 -07:00
pkg Move controller/util and web/util packages to pkg (#1109) 2018-06-13 11:25:56 -07:00
proto Propagate errors in conduit containers to the api (#1117) 2018-06-14 16:22:31 -07:00
proxy Attempt to load TLS settings immediately prior to starting watch (#1137) 2018-06-15 17:32:55 -07:00
proxy-init dst svc: use shared informer instead of custom endpoints informer (#1079) 2018-06-13 11:11:57 -07:00
test test: Use proxy instead of lb for external test traffic (#1129) 2018-06-15 12:54:12 -07:00
testutil test: Use proxy instead of lb for external test traffic (#1129) 2018-06-15 12:54:12 -07:00
web Display proxy container errors in the Web UI (#1130) 2018-06-15 14:12:36 -07:00
.dockerignore Update babel to use `env` and `react-app` as presets. (#976) 2018-05-22 17:17:44 -07:00
.editorconfig Add protobuf files to .editorconfig (#1042) 2018-05-30 15:09:38 -07:00
.gcp.json.enc Fix docker-build stage in CI (#21) 2017-12-08 00:52:06 -06:00
.gitattributes proxy: Update `rand` to 0.5.1 (#1125) 2018-06-14 15:09:58 -07:00
.gitignore Link to Grafana from Conduit Dashboard (#678) 2018-04-06 10:56:42 -07:00
.prometheus.dev.yml Remove the telemetry service (#757) 2018-04-13 11:21:29 -07:00
.travis.yml Fix conduit version issue in integration tests (#1139) 2018-06-15 16:35:51 -07:00
BUILD.md Add a script for running proxy tests in Docker (#1102) 2018-06-11 16:44:39 -07:00
CHANGES.md Prepare for v0.4.3 (#1099) 2018-06-11 10:55:12 -07:00
CONTRIBUTING.md Add contributing doc and DCO file (#88) 2017-12-22 14:54:27 -08:00
Cargo.lock proxy: Fix Inotify falling back to polling when files don't exist yet (#1119) 2018-06-15 11:40:04 -07:00
Cargo.toml proxy: Update prost to 0.4.0 (#1127) 2018-06-14 16:29:41 -07: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 Go: update k8s dependencies to 1.10.2 (#962) 2018-05-17 15:46:58 -07:00
Gopkg.lock dst svc: use shared informer instead of custom endpoints informer (#1079) 2018-06-13 11:11:57 -07:00
Gopkg.toml Go: update k8s dependencies to 1.10.2 (#962) 2018-05-17 15:46:58 -07: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
TEST.md Add tests/utils/scripts for running integration tests (#608) 2018-03-27 15:06:55 -07:00
docker-compose.yml Upgrade Prometheus from 2.1.0 to 2.2.1 (#816) 2018-04-19 18:00:53 -07: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.