Ultralight, security-first service mesh for Kubernetes. Main repo for Linkerd 2.x.
Go to file
Andrew Seigner 0ee38e46f8
Add note to run dep ensure prior to go build. (#124)
We have example commands for building our go components locally, but we
did not mention a prerequisite step of getting all dependencies.

Add note to run `dep ensure && dep prune`.

Signed-off-by: Andrew Seigner <andrew@sig.gy>
2018-01-09 11:04:39 -08:00
bin Fix Go and Proxy dependency image SHAs (#117) 2018-01-08 11:19:49 -08:00
cli Fix Go and Proxy dependency image SHAs (#117) 2018-01-08 11:19:49 -08:00
codegen Prepare the repo for the v0.1.1 release (#75) 2017-12-20 10:51:53 -08:00
controller Fix Go and Proxy dependency image SHAs (#117) 2018-01-08 11:19:49 -08:00
futures-mpsc-lossy apply rustffmt on proxy, remove rustfmt.toml for now 2017-12-05 00:44:16 +00:00
pkg second iteration of status subcommand: check Kubernetes API #92 (#108) 2018-01-05 13:32:41 -08:00
proto Add support for path stats in cli and web api (#13) 2017-12-08 12:24:39 -08:00
proxy [proxy] Fix rendering for top-level rustdoc (#113) 2018-01-08 15:40:12 -08:00
proxy-init Fix Go and Proxy dependency image SHAs (#117) 2018-01-08 11:19:49 -08:00
tower-grpc Prepare the repo for the v0.1.1 release (#75) 2017-12-20 10:51:53 -08:00
tower-grpc-build Prepare the repo for the v0.1.1 release (#75) 2017-12-20 10:51:53 -08:00
tower-grpc-examples Prepare the repo for the v0.1.1 release (#75) 2017-12-20 10:51:53 -08:00
tower-h2 Prepare the repo for the v0.1.1 release (#75) 2017-12-20 10:51:53 -08:00
tower-router Prepare the repo for the v0.1.1 release (#75) 2017-12-20 10:51:53 -08:00
web Fix Go and Proxy dependency image SHAs (#117) 2018-01-08 11:19:49 -08:00
.dockerignore Introducing Conduit, the ultralight service mesh 2017-12-05 00:24:55 +00: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 Introducing Conduit, the ultralight service mesh 2017-12-05 00:24:55 +00:00
.prometheus.dev.yml Introducing Conduit, the ultralight service mesh 2017-12-05 00:24:55 +00:00
.travis.yml Fix unit test runner and failing tests (#67) 2017-12-19 14:21:56 -08:00
CHANGES.md Prepare the repo for the v0.1.1 release (#75) 2017-12-20 10:51:53 -08:00
CONTRIBUTING.md Add contributing doc and DCO file (#88) 2017-12-22 14:54:27 -08:00
Cargo.lock Fix Go and Proxy dependency image SHAs (#117) 2018-01-08 11:19:49 -08:00
Cargo.toml Introducing Conduit, the ultralight service mesh 2017-12-05 00:24:55 +00: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 Introducing Conduit, the ultralight service mesh 2017-12-05 00:24:55 +00:00
Gopkg.lock touch gopkg.lock for good luck 2017-12-05 01:08:20 +00:00
Gopkg.toml Introducing Conduit, the ultralight service mesh 2017-12-05 00:24:55 +00:00
LICENSE Introducing Conduit, the ultralight service mesh 2017-12-05 00:24:55 +00:00
README.md Add note to run dep ensure prior to go build. (#124) 2018-01-09 11:04:39 -08:00
docker-compose.yml Introducing Conduit, the ultralight service mesh 2017-12-05 00:24:55 +00:00

README.md

conduit

Build Status GitHub license Slack Status

🎈 Welcome to Conduit! 👋

Conduit is an ultralight service mesh for Kubernetes from the makers of Linkerd. It features a native proxy, written in Rust, that boasts the performance of C without all the heartbleed.

Conduit is experimental. Currently, it only supports HTTP/2 and is especially well-suited for gRPC. Follow our progress towards production-readiness here and on Twitter.

Documentation

View Conduit docs for more a more comprehensive guide to getting started.

Getting started with Conduit

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

  2. Copy /Users/username/.conduit/bin/conduit into your PATH

  3. Run conduit install | kubectl apply -f - to install Conduit

  4. Check to make sure you're running the latest versionof Conduit with conduit version

  5. Open a local version of the Conduit controller with conduit dashboard

  6. (Optional) To install a demo application for your Conduit instance, visit this section on Conduit docs

Local development

These commands build and deploy all conduit components from source. They install a conduit executable onto the local system, and deploy the remaining components onto Minikube.

This setup assumes working Go and Minikube environments.

# ensure all go dependencies are in vendor
dep ensure && dep prune

# build and install conduit cli locally
go build -o $GOPATH/bin/conduit ./cli

# verify cli version
conduit version

# build all docker images
DOCKER_FORCE_BUILD=1 DOCKER_TRACE=1 bin/mkube bin/docker-build latest

# install conduit
conduit install --version latest | kubectl apply -f -

# validate installation
kubectl --namespace=conduit get all

# view conduit dashboard
conduit dashboard

Updating Docker dependencies

The Rust proxy and Go Docker images rely on base dependency images with hard-coded SHA's:

gcr.io/runconduit/go-deps depends on

  • Gopkg.lock
  • Dockerfile-go-deps

gcr.io/runconduit/proxy-deps depends on

  • Cargo.lock
  • proxy/Dockerfile-deps

If any of these files change, update the Dockerfile SHA's with:

GO_DEPS_SHA=$(sh -c ". bin/_tag.sh && go_deps_sha")
PROXY_DEPS_SHA=$(sh -c ". bin/_tag.sh && proxy_deps_sha")

find . -type f -name 'Dockerfile*' -exec sed -i '' -e 's/gcr\.io\/runconduit\/go-deps:[^ ]*/gcr\.io\/runconduit\/go-deps:'$GO_DEPS_SHA'/g' {} \;
find . -type f -name 'Dockerfile*' -exec sed -i '' -e 's/gcr\.io\/runconduit\/proxy-deps:[^ ]*/gcr\.io\/runconduit\/proxy-deps:'$PROXY_DEPS_SHA'/g' {} \;

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

Copyright 2017, 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.