Ultralight, security-first service mesh for Kubernetes. Main repo for Linkerd 2.x.
Go to file
Oliver Gould 4190abae7e
fix(policy): order Server resources deterministically (#13676)
The policy controller iterates over a map of Server resources when associating a
Server with a Pod. The map iteration order is non-deterministic. We currently
attempt to prevent multiple server resources from selecting a single pod-port,
however, this logic is imperfect and unreliable, so the policy controller must
handle overlapping Servers in any case...

To resolve this, the inbound policy index now sorts Server resources by their
creation timestamp (and then name) before iterating over them. This mimics our
handling of Route resources...

Furthermore, this change relaxes the policy controller's admission logic,
avoiding the rejection of overlapping Server resources. This avoids an
unnecessary API call (that may timeout, etc).

An integration test is added to confirm the API response behavior.
2025-02-19 10:46:25 -08:00
.devcontainer build(deps): bump linkerd/dev from v44 to v45 (#13525) 2025-01-06 09:34:29 -05:00
.github build(deps): bump tj-actions/changed-files from 45.0.6 to 45.0.7 (#13630) 2025-02-08 09:54:30 -05:00
audits add 2024 security audit report (#13679) 2025-02-18 09:25:05 -08:00
bin test(deps): bump k8s to v1.32 (#13632) 2025-02-06 10:30:19 -05:00
charts feat(helm): allow cni updateStrategy to be configurable (#13562) 2025-01-21 10:14:07 -05:00
cli fix(cli): Don't require gateway CRDs in linkerd install 2025-02-12 08:59:42 -08:00
controller fix(service-mirror): don't restart cluster watch upon Link status updates (#13579) 2025-01-22 12:35:15 -05:00
grafana [grafana] update datasource (#11017) 2023-07-21 14:13:04 -07:00
jaeger feat(tracing)!: change default trace protocol to OpenTelemetry (#13491) 2025-02-18 10:13:33 -08:00
multicluster feat(multicluster): propagate service labels to endpoints (#13583) 2025-01-23 09:22:18 -05:00
pkg Expose issuer cert TTL via log and prometheus (#13615) 2025-02-10 16:37:47 -05:00
policy-controller fix(policy): order Server resources deterministically (#13676) 2025-02-19 10:46:25 -08:00
policy-test fix(policy): order Server resources deterministically (#13676) 2025-02-19 10:46:25 -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 viz: Prohibit authority resource targets in stat commands (#13578) 2025-01-23 10:13:11 +02:00
testutil fix(test): mark TestResourcesPostInstall as a helper (#13674) 2025-02-18 00:08:38 +00:00
viz viz: Prohibit authority resource targets in stat commands (#13578) 2025-01-23 10:13:11 +02:00
web build(deps): bump serialize-javascript from 6.0.1 to 6.0.2 in /web/app (#13647) 2025-02-11 12:20:29 -05: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 build(deps): bump linkerd/dev from v43 to v44 (#13428) 2024-12-06 11:38:36 -08: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.281.0 (#13681) 2025-02-18 21:07:34 -08:00
ADOPTERS.md Add Pangea Cyber to adopters (#11410) 2023-09-25 15:21:50 -07:00
BUILD.md chore: remove bin/helm-doc (#13482) 2024-12-13 15:00:52 -05:00
CHANGES.md ci: Update release workflow to generate release notes (#12132) 2024-02-22 11:31:05 -08:00
CODE_OF_CONDUCT.md build(deps): bump DavidAnson/markdownlint-cli2-action from 9.0.0 to 10.0.1 (#10843) 2023-05-02 10:08:28 -07:00
CONTRIBUTING.md Spelling (#6215) 2021-06-07 15:16:59 -06:00
Cargo.lock build(deps): bump the clap group with 2 updates (#13678) 2025-02-18 07:58:21 -08:00
Cargo.toml chore(cargo): use workspace dependencies for kube and hyper (#13672) 2025-02-17 14:44:54 -08:00
DCO Add contributing doc and DCO file (#88) 2017-12-22 14:54:27 -08:00
Dockerfile-debug dev: v42 (#11563) 2023-11-03 13:55:06 -07:00
Dockerfile-proxy build(deps): bump linkerd/dev from v43 to v44 (#13428) 2024-12-06 11:38:36 -08:00
EXTENSIONS.md Fix `linkerd check --output` flag description (#11145) 2023-07-24 11:24:34 -07:00
GOVERNANCE.md update governance to introduce a director role (#12262) 2024-03-18 11:55:49 -05:00
LICENSE Introducing Conduit, the ultralight service mesh 2017-12-05 00:24:55 +00:00
MAINTAINERS.md Nominate Steve, Christian, and Dan to the Linkerd Steering Committee (#12441) 2024-04-19 16:27:43 -05:00
README.md Remove community meetings from README.md (#13004) 2024-09-02 09:06:34 -05:00
RELEASE.md Upgrade to proxy-init:v2.3.0 and linkerd-cni:1.4.0 (#12361) 2024-04-02 11:38:53 -05:00
SECURITY.md switch to edge releases (#12118) 2024-02-21 17:09:46 -08:00
STEERING.md update governance to introduce a director role (#12262) 2024-03-18 11:55:49 -05: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 rand from 0.8.5 to 0.9.0 (#13604) 2025-01-29 18:25:27 -08:00
go.mod build(deps): bump github.com/spf13/cobra from 1.8.1 to 1.9.1 (#13671) 2025-02-17 08:47:17 -08:00
go.sum build(deps): bump github.com/spf13/cobra from 1.8.1 to 1.9.1 (#13671) 2025-02-17 08:47:17 -08:00
justfile chore(just): retry failures when loading pause container (#13415) 2024-12-02 19:42:55 -08:00
rust-toolchain.toml build(deps): bump linkerd/dev from v43 to v44 (#13428) 2024-12-06 11:38:36 -08:00
tools.go Update to dev:v39 with Go 1.19 (#10336) 2023-02-16 08:25:42 -08: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

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.

Linkerd undergoes periodic third-party security audits and we publish the results here.

License

Copyright 2023 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.