Ultralight, security-first service mesh for Kubernetes. Main repo for Linkerd 2.x.
Go to file
Eliza Weisman b8434d60d4
Add resource metadata to Tap CLI output (#1437)
Closes #1170.

This branch adds a `-o wide` (or `--output wide`) flag to the Tap CLI.
Passing this flag adds `src_res` and `dst_res` elements to the Tap
output, as described in #1170. These use the metadata labels in the tap
event to describe what Kubernetes resource the source and destination
peers belong to, based on what resource type is being tapped, and fall
back to pods if either peer is not a member of the specified resource
type.

In addition, when the resource type is not `namespace`, `src_ns` and
`dst_ns` elements are added, which show what namespaces the the source
and destination peers are in. For peers which are not in the Kubernetes
cluster, none of these labels are displayed.

The source metadata added in #1434 is used to populate the `src_res` and
`src_ns` fields.

Also, this branch includes some refactoring to how tap output is
formatted.

Signed-off-by: Eliza Weisman <eliza@buoyant.io>
2018-08-20 14:25:26 -07:00
.github Adopt Linkerd's governance (#1301) 2018-07-10 15:06:59 -07:00
bin Upgrade to dep 0.5.0, go 1.10.3 (#1479) 2018-08-17 16:04:50 -07:00
cli Add resource metadata to Tap CLI output (#1437) 2018-08-20 14:25:26 -07:00
controller Add resource metadata to Tap CLI output (#1437) 2018-08-20 14:25:26 -07:00
doc Fix the installation path in docs (#1439) 2018-08-15 11:31:01 -07:00
grafana Restore linkerd.io/control-plane* labels (#1411) 2018-08-07 13:53:29 -07:00
pkg Add resource metadata to Tap CLI output (#1437) 2018-08-20 14:25:26 -07:00
proto Rename CLI from conduit to linkerd (#1312) 2018-07-12 17:14:07 -07:00
proxy-init Upgrade to dep 0.5.0, go 1.10.3 (#1479) 2018-08-17 16:04:50 -07:00
test Better CLI error messages when control plane is unavailable (#1428) 2018-08-09 15:40:41 -07:00
testutil Rename CLI from conduit to linkerd (#1312) 2018-07-12 17:14:07 -07:00
web Upgrade to dep 0.5.0, go 1.10.3 (#1479) 2018-08-17 16:04:50 -07:00
.dockerignore Allow docker-build-proxy to override the proxy version (#1324) 2018-07-26 10:10:49 -07:00
.editorconfig Add protobuf files to .editorconfig (#1042) 2018-05-30 15:09:38 -07:00
.gcp.json.enc Add docker builds and integration tests to CI (#1303) 2018-07-11 14:01:42 -07:00
.gitattributes proxy: Update `rand` to 0.5.1 (#1125) 2018-06-14 15:09:58 -07:00
.gitignore Upgrade to dep 0.5.0, go 1.10.3 (#1479) 2018-08-17 16:04:50 -07:00
.travis.yml Upgrade to dep 0.5.0, go 1.10.3 (#1479) 2018-08-17 16:04:50 -07:00
BUILD.md Remove remaining conduit references in codebase (#1381) 2018-07-31 11:19:34 -07:00
CHANGES.md Add change log notes for release v18.8.1 (#1413) 2018-08-07 14:46:39 -07:00
CONTRIBUTING.md Remove remaining conduit references in codebase (#1381) 2018-07-31 11:19:34 -07:00
DCO Add contributing doc and DCO file (#88) 2017-12-22 14:54:27 -08:00
Dockerfile-base Rename CLI from conduit to linkerd (#1312) 2018-07-12 17:14:07 -07:00
Dockerfile-go-deps Upgrade to dep 0.5.0, go 1.10.3 (#1479) 2018-08-17 16:04:50 -07:00
Dockerfile-proxy Allow docker-build-proxy to override the proxy version (#1324) 2018-07-26 10:10:49 -07:00
GOVERNANCE.md Adopt Linkerd's governance (#1301) 2018-07-10 15:06:59 -07:00
Gopkg.lock Upgrade to dep 0.5.0, go 1.10.3 (#1479) 2018-08-17 16:04:50 -07:00
Gopkg.toml Use stable version for linkerd2-proxy-api dep (#1400) 2018-08-03 11:59:42 -07:00
LICENSE Introducing Conduit, the ultralight service mesh 2017-12-05 00:24:55 +00:00
MAINTAINERS.md Adopt Linkerd's governance (#1301) 2018-07-10 15:06:59 -07:00
README.md Rename mailing lists, remove all remaining conduit references (#1416) 2018-08-07 17:00:55 -07:00
TEST.md Revert "Add note to TEST.md about kubectl version." 2018-07-25 12:33:06 -10:00

README.md

Linkerd2

Build Status GitHub license Slack Status

🎈 Welcome to Linkerd2! 👋

Linkerd2 is an ultralight service mesh, designed to make modern applications safe and sane by transparently adding service discovery, load balancing, failure handling, instrumentation, and routing to all inter-service communication.

Linkerd2 (pronouned "linker-DEE-two") acts as a transparent HTTP/gRPC/thrift/tcp/etc proxy, and can be deployed alongside existing applications regardless of what language they're written in. It works with many common protocols and utilizes Kubernetes as a backend for service discovery.

It is separated into two major components: the control plane and the data plane. The control plane interacts with the service discovery backend, orchestrates the data plane and is written in Go. The data plane runs alongside existing applications, provides the proxy that manages traffic itself and is written in Rust.

Currently, Linkerd2 is capable of proxying all TCP traffic, including WebSockets and HTTP tunneling, along with reporting top-line metrics (success rates, latencies, etc) for all HTTP, HTTP/2, and gRPC traffic.

Linkerd is hosted by the Cloud Native Computing Foundation (CNCF).

Get involved

Documentation

View Linkerd2 docs for more a more comprehensive guide to getting started, or use the instructions below.

Getting started with Linkerd2

  1. Install the Linkerd2 CLI with curl https://run.linkerd.io/install | sh.

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

  3. Install Linkerd2 into your Kubernetes cluster with linkerd install | kubectl apply -f -.

  4. Verify that the installation succeeded with linkerd check.

  5. Explore the Linkerd2 controller dashboard with linkerd dashboard.

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

  7. Add your own service to the Linkerd2 mesh!

Working in this repo

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

We ❤️ pull requests! See CONTRIBUTING.md for info on contributing changes.

Dependencies

There are some projects used by Linkerd2 that are not part of 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

Copyright 2018, Linkerd Authors. 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.