Ultralight, security-first service mesh for Kubernetes. Main repo for Linkerd 2.x.
Go to file
Andrew Seigner ec540a882e
Consolidate k8s APIs (#2747)
Numerous codepaths have emerged that create k8s configs, k8s clients,
and make k8s api requests.

This branch consolidates k8s client creation and APIs. The primary
change migrates most codepaths to call `k8s.NewAPI` to instantiate a
`KubernetesAPI` struct from `pkg`. `KubernetesAPI` implements the
`kubernetes.Interface` (clientset) interface, and also persists a
`client-go` `rest.Config`.

Specific list of changes:
- removes manual GET requests from `k8s.KubernetesAPI`, in favor of
  clientsets
- replaces most calls to `k8s.GetConfig`+`kubernetes.NewForConfig` with
  a single `k8s.NewAPI`
- introduces a `timeout` param to `k8s.NewAPI`, currently only used by
  healthchecks
- removes `NewClientSet` in `controller/k8s/clientset.go` in favor of
  `k8s.NewAPI`
- removes `httpClient` and `clientset` from `HealthChecker`, use
  `KubernetesAPI` instead

Signed-off-by: Andrew Seigner <siggy@buoyant.io>
2019-04-25 11:31:38 -07:00
.github Pin the `area/test` label (#2050) 2019-01-08 13:05:10 -08:00
bin Make the auto-injector required and removed proxy-auto-inject flag (#2733) 2019-04-24 13:06:51 -05:00
chart Make the auto-injector required and removed proxy-auto-inject flag (#2733) 2019-04-24 13:06:51 -05:00
cli Consolidate k8s APIs (#2747) 2019-04-25 11:31:38 -07:00
cni-plugin Consolidate k8s APIs (#2747) 2019-04-25 11:31:38 -07:00
controller Consolidate k8s APIs (#2747) 2019-04-25 11:31:38 -07:00
grafana Add TCP stats to the Linkerd Pod Grafana dashboard (#2329) (#2477) 2019-03-14 14:49:13 -07:00
pkg Consolidate k8s APIs (#2747) 2019-04-25 11:31:38 -07:00
proto Make the auto-injector required and removed proxy-auto-inject flag (#2733) 2019-04-24 13:06:51 -05:00
proxy-identity proxy-identity: Set a CommonName on CSRs (#2626) 2019-04-03 13:54:50 -07:00
proxy-init Don't use spinner in cli when run without a tty (#2716) 2019-04-18 09:31:56 -07:00
test Make the auto-injector required and removed proxy-auto-inject flag (#2733) 2019-04-24 13:06:51 -05:00
testutil Consolidate k8s APIs (#2747) 2019-04-25 11:31:38 -07:00
web Add Font Awesome stylesheet locally (#2620) 2019-04-24 17:23:47 -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 gitignore: Fix invalid glob (#2314) 2019-02-18 10:31:10 -08:00
.golangci.yml lint: Enable unparam (#2369) 2019-02-27 10:34:02 -08:00
.travis.yml Split the `linkerd-version` CLI flag into `control-plane-version` and `proxy-version` (#2702) 2019-04-19 11:35:20 -07:00
BUILD.md Introduce inject integration tests (#2616) 2019-04-05 11:42:49 -07:00
CHANGES.md Release notes for stable-2.3.0 (#2701) 2019-04-16 14:18:07 -07:00
CONTRIBUTING.md Modifying Contribution Guidelines for PRs (#2587) 2019-03-28 16:09:09 -07:00
DCO Add contributing doc and DCO file (#88) 2017-12-22 14:54:27 -08:00
Dockerfile-base Bump base Docker images (#2241) 2019-02-22 15:59:18 -08:00
Dockerfile-debug Add the ability to inject a debug sidecar (#2726) 2019-04-22 16:53:12 -07:00
Dockerfile-go-deps Bump base Docker images (#2241) 2019-02-22 15:59:18 -08:00
Dockerfile-proxy Don't use spinner in cli when run without a tty (#2716) 2019-04-18 09:31:56 -07:00
GOVERNANCE.md Adopt Linkerd's governance (#1301) 2018-07-10 15:06:59 -07:00
Gopkg.lock Don't use spinner in cli when run without a tty (#2716) 2019-04-18 09:31:56 -07:00
Gopkg.toml Don't use spinner in cli when run without a tty (#2716) 2019-04-18 09:31:56 -07:00
LICENSE Introducing Conduit, the ultralight service mesh 2017-12-05 00:24:55 +00:00
MAINTAINERS.md remove Brian from maintainers (#2244) 2019-02-13 11:48:26 -08:00
README.md README and test updates (#2467) 2019-03-07 14:36:41 -08:00
TEST.md Introduce test-scale script (#2578) 2019-04-01 12:51:53 -07:00

README.md

Linkerd

Build Status GitHub license Go Report Card Slack Status

🎈 Welcome to Linkerd! 👋

Linkerd is a service mesh, designed to give platform-wide observability, reliability, and security without requiring configuration or code changes.

Linkerd is a Cloud Native Computing Foundation (CNCF) project.

Repo layout

This is the primary repo for the Linkerd 2.x line of development.

The complete list of Linkerd repos is:

Quickstart and documentation

You can run Linkerd on any Kubernetes 1.9+ cluster in a matter of seconds. See the Linkerd Getting Started Guide for how.

For more comprehensive documentation, start with the Linkerd docs. (The doc source code is available in the website repo.)

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.

Get involved

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 2019, 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.