4.2 KiB
🎈 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
-
Install the Conduit CLI
curl https://run.conduit.io/install | sh
-
Copy
/Users/username/.conduit/bin/conduit
into your PATH -
Run
conduit install | kubectl apply -f -
to install Conduit -
Check to make sure you're running the latest versionof Conduit with
conduit version
-
Open a local version of the Conduit controller with
conduit dashboard
-
(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.