Ultralight, security-first service mesh for Kubernetes. Main repo for Linkerd 2.x.
Go to file
Matei David 2b6760c824
Add status support for BackendReferences (#10601)
A route may have two conditions in a parent status: a condition that
states whether it has been accepted by the parents, and a condition that
states whether all backend references -- that traffic matched against
route is sent to -- have resolved successfully. Currently, the policy
controller does not support the latter.

This change introduces support for checking and setting a backendRef
specific condition. A successful condition (ResolvedRefs = True) is met
when all backend references point to a supported type, and that type
exists in the cluster. Currently, only Service objects are supported. A
nonexistent object, or an unsupported kind will reject the entire
condition; the particular reason will be reflected in the condition's
message.

Since statuses are set on a route's parents, the same condition will
apply to _all_ parents in a route (since there is no way to elicit
different backends for different parents).

If a route does not have any backend references, then the parent
reference type will be used. As such, any parents that are not Services
will automatically get an invalid backend condition (exception to the
rule in the third paragraph where a condition is shared by all parents).
When the parent is supported (i.e a Service) we needn't check its
existence since the parent condition will already reflect that.

---

Signed-off-by: Matei David <matei@buoyant.io>
Co-authored-by: Eliza Weisman <eliza@buoyant.io>
Co-authored-by: Oliver Gould <ver@buoyant.io>
2023-03-29 12:31:33 +01:00
.devcontainer Update to dev:v39 with Go 1.19 (#10336) 2023-02-16 08:25:42 -08:00
.github build(deps): bump EmbarkStudios/cargo-deny-action from 1.4.0 to 1.5.0 (#10631) 2023-03-27 11:13:46 -07:00
audits add Trail of Bits audit; reorganize into audits/ (#8735) 2022-06-24 13:34:56 -07:00
bin Add support to cross-build policy controller (#10334) 2023-02-20 11:22:08 +00:00
charts edge-23.3.3 (#10592) 2023-03-21 14:54:38 -07:00
cli proxy-injector: Skip Kube API server ports (#10519) 2023-03-13 15:29:23 -07:00
cni-plugin Update to dev:v39 with Go 1.19 (#10336) 2023-02-16 08:25:42 -08:00
controller Replace `github.com/ghodss/yaml` with `sigs.k8s.io/yaml` (#10610) 2023-03-24 09:20:55 -05:00
grafana Fix Grafana dashboard regex for filesystem usage on Linode (#10445) 2023-03-06 08:49:31 -07:00
jaeger edge-23.3.3 (#10592) 2023-03-21 14:54:38 -07:00
multicluster Replace `github.com/ghodss/yaml` with `sigs.k8s.io/yaml` (#10610) 2023-03-24 09:20:55 -05:00
pkg Replace `github.com/ghodss/yaml` with `sigs.k8s.io/yaml` (#10610) 2023-03-24 09:20:55 -05:00
policy-controller Add status support for BackendReferences (#10601) 2023-03-29 12:31:33 +01:00
policy-test Add status support for BackendReferences (#10601) 2023-03-29 12:31:33 +01: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 proxy: v2.192.1 (#10498) 2023-03-13 15:27:33 -07:00
testutil Update to dev:v39 with Go 1.19 (#10336) 2023-02-16 08:25:42 -08:00
viz Adds a new global flag for viz to override the default viz namespace (#10345) 2023-03-27 10:51:37 -05:00
web build(deps-dev): bump webpack from 5.76.1 to 5.76.3 in /web/app (#10624) 2023-03-27 11:15:49 -07: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.193.0 (#10542) 2023-03-21 09:07:05 -07:00
ADOPTERS.md Add Samarkand Global to adopters (#10490) 2023-03-10 09:11:30 -06:00
BUILD.md doc: update BUILD (#10579) 2023-03-20 17:42:35 -07:00
CHANGES.md edge-23.3.3 (#10592) 2023-03-21 14:54:38 -07: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 cxx-build from 1.0.93 to 1.0.94 (#10628) 2023-03-27 11:16:04 -07:00
Cargo.toml Build policy controller with lto=thin (#10495) 2023-03-10 13:52:20 -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 Update to dev:v39 with Go 1.19 (#10336) 2023-02-16 08:25:42 -08: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 Update MAINTAINERS.md (#10534) 2023-03-15 14:08:27 -05:00
README.md Update readme: security audits, and year (#10165) 2023-01-20 09:53:37 +00:00
RELEASE.md linkerd-cni: add new release to the build (#10209) 2023-02-08 13:54:35 -08: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 Implement outbound policy API in the policy controller (#10485) 2023-03-09 21:14:20 -08:00
go.mod build(deps): bump github.com/imdario/mergo from 0.3.14 to 0.3.15 (#10626) 2023-03-27 11:04:07 -07:00
go.sum build(deps): bump github.com/imdario/mergo from 0.3.14 to 0.3.15 (#10626) 2023-03-27 11:04:07 -07:00
justfile dev: Fix local `just policy-test` (#10426) 2023-03-02 08:07:21 -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 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

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.

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.