Ultralight, security-first service mesh for Kubernetes. Main repo for Linkerd 2.x.
Go to file
Matei David 028a68265e
edge-23.1.1 (#10129)
This edge release introduces a number of different fixes changes to the proxy.
The proxy has been updated to initialize routes lazily, which means service
profile routes will now only show up in the metrics when a route is used. In
the extensions, old (`ServerAuthorization`) resources have been converted to
`AuthorizationPolicy` -- as part of this change, redundant policy resources
have been cleaned up. A bug in the destination controller that could
potentially lead to stale pods being considered in the load balancer has been
fixed; operations that could previously result in this behavior are now
infallible. Support has been added for `Pod Security Admission`, used instead
of `Pod Security Policy`, as part of this change, some of the extension charts
have been modified to include a `cniEnabled` flag that will impact the policy
used.

Finally, this edge release contains a number of fixes and improvements
from our contributors.

* Converted `ServerAuthorization` resources to `AuthorizationPolicy` resources
  in Linkerd extensions
* Removed policy resources bound to admin servers in extensions (previously
  these resources were used to authorize probes but now are authorized by
  default)
* Added a `resources` field in the linkerd-cni chart (thanks @jcogilvie!)
* Fixed an issue in the CLI where `--identity-external-ca` would set an
  incorrect field (thanks @anoxape!)
* Fixed an issue in the destination controller that could result in stale
  endpoints when using EndpointSlice objects. Logic that previously resulted in
  undefined behavior is now infallible and endpoints will no longer be skipped
  during removal
* Added namespace to namespace-metadata resources in Helm (thanks @joebowbeer!)
* Added support for Pod Security Admission (superseedes PSPs); through this
  change extensions now have a `cniEnabled` value in their charts that will
  directly influence which PSA policy to use
* Changed routes to be initialized lazily. Service Profile routes will no
  longer show up in metrics until the route is used (default routes are always
  available when no Service Profile is defined for a service)
* Changed the proxy's behavior when traffic splitting so that only services
  that are not in failfast are used. This will enable the proxy to manage
  failover without external coordination
* Updated tokio (async runtime) in the proxy which should reduce CPU usage,
  especially for proxy's pod local (i.e in the same network namespace)
  communication

Signed-off-by: Matei David <matei@buoyant.io>
Co-authored-by: Kevin Leimkuhler <kleimkuhler@icloud.com>
2023-01-13 17:58:42 +00:00
.devcontainer dev: Disable YAML formatting in Code (#9710) 2022-10-26 20:58:44 -07:00
.github build(deps): bump tj-actions/changed-files from 35.4.0 to 35.4.1 (#10127) 2023-01-12 14:46:56 +00:00
audits add Trail of Bits audit; reorganize into audits/ (#8735) 2022-06-24 13:34:56 -07:00
bin proxy: v2.189.0 (#10110) 2023-01-10 10:25:22 -08:00
charts edge-23.1.1 (#10129) 2023-01-13 17:58:42 +00:00
cli Removed dupe imports (#10049) 2023-01-10 14:34:56 -05:00
cni-plugin Add static and dynamic port overrides for CNI ebpf (#9841) 2022-11-30 09:45:25 +00:00
controller Removed dupe imports (#10049) 2023-01-10 14:34:56 -05:00
grafana Bump grafana dashboard revisions (#9542) 2022-10-05 09:53:16 -05:00
jaeger edge-23.1.1 (#10129) 2023-01-13 17:58:42 +00:00
multicluster edge-23.1.1 (#10129) 2023-01-13 17:58:42 +00:00
pkg Removed dupe imports (#10049) 2023-01-10 14:34:56 -05:00
policy-controller build(deps): bump ipnet from 2.6.0 to 2.7.0 (#9995) 2022-12-12 10:49:39 -08:00
policy-test build(deps): bump kubert from 0.11.1 to 0.12.0 (#9847) 2022-11-18 15:18:29 -08:00
proto Remove legacy upgrade and it's references (#7309) 2021-11-29 20:08:58 +05:30
proxy-identity Replace usage of io/ioutil package (#9613) 2022-10-13 12:10:58 -05:00
test Reenable `helm-upgrade` integration test (#10047) 2023-01-10 09:33:11 -05:00
testutil Reenable `helm-upgrade` integration test (#10047) 2023-01-10 09:33:11 -05:00
viz edge-23.1.1 (#10129) 2023-01-13 17:58:42 +00:00
web build(deps-dev): bump @babel/core from 7.20.7 to 7.20.12 in /web/app (#10100) 2023-01-10 11:24:18 +00:00
.dockerignore dev: Add a reusable action-dev-check script (#9185) 2022-08-16 18:14:37 -07:00
.editorconfig Add PodDisruptionBudgets to control plane (#5398) (#5406) 2021-01-06 09:19:15 -05:00
.gitattributes Update gitattributes to improve PR file visilibity (#6767) 2021-08-30 14:52:53 -07:00
.gitignore Upload code coverage of unit tests to codecov (#6321) 2021-06-23 10:15:01 -06:00
.golangci.yml Removed dupe imports (#10049) 2023-01-10 14:34:56 -05:00
.helmdocsignore Add automatic readme generation for charts (#5316) 2020-12-02 14:37:45 -05:00
.markdownlint.yaml Lint all markdown files in CI (#4402) 2020-05-19 23:03:50 -07:00
.proxy-version proxy: v2.189.0 (#10110) 2023-01-10 10:25:22 -08:00
ADOPTERS.md add Cabify as adopter (#10117) 2023-01-11 08:40:10 +00:00
BUILD.md Adds a default Exists toleration to linkerd-cni (#9789) 2022-11-22 15:26:20 -05:00
CHANGES.md edge-23.1.1 (#10129) 2023-01-13 17:58:42 +00:00
CODE_OF_CONDUCT.md Lint all markdown files (#4403) 2020-05-19 09:59:26 -07:00
CONTRIBUTING.md Spelling (#6215) 2021-06-07 15:16:59 -06:00
Cargo.lock build(deps): bump pem from 1.1.0 to 1.1.1 (#10126) 2023-01-12 14:23:28 +00:00
Cargo.toml Test the policy controller admission webhook (#8008) 2022-03-07 11:53:28 -08:00
DCO Add contributing doc and DCO file (#88) 2017-12-22 14:54:27 -08:00
Dockerfile-debug Update debian to bullseye (#8287) 2022-04-19 14:25:30 -07:00
Dockerfile-proxy Bump linkerd-validator to v0.1.1 (#9882) 2022-11-22 14:26:36 -05:00
EXTENSIONS.md Versioned `linkerd check` hint URLs (#6102) 2021-05-10 13:21:15 -05:00
GOVERNANCE.md add preamble to GOVERNANCE.md (#6008) 2021-04-12 17:49:20 -05:00
LICENSE Introducing Conduit, the ultralight service mesh 2017-12-05 00:24:55 +00:00
MAINTAINERS.md gov: Move @pothulapati to emertii (#9007) 2022-07-26 10:01:32 -07:00
README.md dev: Update markdowlint-cli2 to v0.5.1 (#9166) 2022-08-15 12:59:59 -07:00
RELEASE.md Update RELEASE.md with announcement email instructions (#9972) 2022-12-09 05:18:12 -05:00
ROADMAP.md Update roadmap (#7413) 2021-12-13 16:11:32 -05:00
SECURITY.md add Trail of Bits audit; reorganize into audits/ (#8735) 2022-06-24 13:34:56 -07:00
STEERING.md add STEERING.md (#5607) 2021-01-27 09:39:32 -06:00
TEST.md dev: Update markdowlint-cli2 to v0.5.1 (#9166) 2022-08-15 12:59:59 -07:00
deny.toml build(deps): bump unicode-ident from 1.0.1 to 1.0.2 (#8910) 2022-07-18 08:58:39 -07:00
go.mod build(deps): bump google.golang.org/grpc from 1.51.0 to 1.52.0 (#10118) 2023-01-12 15:52:21 -08:00
go.sum build(deps): bump google.golang.org/grpc from 1.51.0 to 1.52.0 (#10118) 2023-01-12 15:52:21 -08:00
justfile just: Fix justfile command silencing (#9900) 2022-11-28 09:12:47 -08:00
rust-toolchain Update to dev:v32 with Rust 1.64.0 (#9675) 2022-10-21 10:28:00 -07:00
tools.go Update protoc (#6333) 2021-06-21 16:37:57 -07:00

README.md

Linkerd

Linkerd

CII Best Practices GitHub Actions Status GitHub license Go Report Card Go Reference Slack Status

🎈 Welcome to Linkerd! 👋

Linkerd is an ultralight, security-first service mesh for Kubernetes. Linkerd adds critical security, observability, and reliability features to your Kubernetes stack with no code change required.

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 modern Kubernetes 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

Community meetings

We host regular online meetings for contributors, adopters, maintainers, and anyone else interested to connect in a synchronous fashion. These meetings usually take place the last Thursday of the month at 9am Pacific / 4pm UTC.

We're a friendly group, so please feel free to join us!

Steering Committee meetings

We host regular online meetings for the Linkerd Steering Committee. All are welcome to attend, but audio and video participation is limited to Steering Committee members and maintainers. These meetings are currently scheduled on an ad-hoc basis and announced on the linkerd-users mailing list.

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.

Security

See SECURITY.md for our security policy, including how to report vulnerabilities.

A third party security audit was performed by Cure53 in June 2019. You can see the full report here.

License

Copyright 2021 the 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.