Ultralight, security-first service mesh for Kubernetes. Main repo for Linkerd 2.x.
Go to file
Alex Leong f04edae759
policy: Add HTTPRoute indexing (#8795)
linkerd2-proxy-api v0.6.0 adds support for inbound proxies to discover
route configurations based on the Gateway API HTTPRoute types. This
change updates the policy controller to index
`gateway.networking.k8s.io/v1beta` `HTTPRoute` types to discover these
policies from the Kubernetes API.

`HTTPRoute` resources may target `Server` resources (as a `parentRef`)
to attach policies to an inbound proxy. When no routes are configured,
a default route is synthesized to allow traffic; but when at least one
route attaches to a server, only requests that match a route are
permitted (other requests are failed with a 404).

Only the *core* subset of the `HTTPRoute` filters are supported:
`RequestRedirect` and `RequestHeaderModifier`. Backends may *not* be
configured on these routes (since they may only apply to inbound/server-
side proxies). No `status` updates are currently performed on these
`HTTPRoute` resources.

This change does not yet allow `AuthorizationPolicy` resources to target
`HTTPRoute` resources. This will be added in a follow-up change.

Signed-off-by: Alex Leong <alex@buoyant.io>
Co-authored-by: Oliver Gould <ver@buoyant.io>
2022-07-14 09:04:48 -07:00
.devcontainer dev: Update build tooling (#8883) 2022-07-14 08:27:44 -07:00
.github dev: Update build tooling (#8883) 2022-07-14 08:27:44 -07:00
audits add Trail of Bits audit; reorganize into audits/ (#8735) 2022-06-24 13:34:56 -07:00
bin Revert "feat: use direct image import in policy controller tests (#8771)" (#8813) 2022-07-05 13:33:00 -07:00
charts policy: Add HTTPRoute indexing (#8795) 2022-07-14 09:04:48 -07:00
cli policy: Add HTTPRoute indexing (#8795) 2022-07-14 09:04:48 -07:00
cni-plugin Fix CNI plugin event processing (#8778) 2022-06-30 18:04:46 +01:00
controller Remove kube-system exclusions from watchers (#8720) 2022-07-11 13:52:27 -06:00
grafana Parametrized datasource in grafana dashboards, better script handling (#7603) 2022-01-14 11:30:19 -05:00
jaeger Allow extension deployments to be evicted by autoscaler (#8828) 2022-07-12 10:46:31 -07:00
multicluster Allow extension deployments to be evicted by autoscaler (#8828) 2022-07-12 10:46:31 -07:00
pkg Speedup `linkerd authz` by checking pod labels (#8794) 2022-07-07 17:31:54 -06:00
policy-controller policy: Add HTTPRoute indexing (#8795) 2022-07-14 09:04:48 -07:00
policy-test policy: Add HTTPRoute indexing (#8795) 2022-07-14 09:04:48 -07:00
proto Remove legacy upgrade and it's references (#7309) 2021-11-29 20:08:58 +05:30
proxy-identity Add `gosec` and `errcheck` lints (#7954) 2022-03-03 10:09:51 -07:00
test Use prommatch everywhere (#8674) 2022-06-21 21:48:51 -06:00
testutil Use prommatch everywhere (#8674) 2022-06-21 21:48:51 -06:00
viz Add port to helm Values (#8855) 2022-07-13 08:22:23 -06:00
web Upgrade to moment 2.29.4 (#8856) 2022-07-13 06:48:31 -07:00
.dockerignore Update to `linkerd2-proxy-api` v0.5.0 (#8229) 2022-04-11 11:46:16 -07:00
.editorconfig
.gitattributes Update gitattributes to improve PR file visilibity (#6767) 2021-08-30 14:52:53 -07:00
.gitignore
.golangci.yml Deprecate Gateways API and skip lints until 2.13 (#8600) 2022-06-07 14:19:11 -06:00
.helmdocsignore
.markdownlint.yaml
.proxy-version proxy: v2.183.0 (#8869) 2022-07-13 18:37:27 -07:00
ADOPTERS.md Update ADOPTERS.md (#8648) 2022-06-13 07:03:12 -05:00
BUILD.md Run lint action from the devcontainer, remove bin/lint script (#7895) 2022-02-17 14:46:57 -08:00
CHANGES.md Fix edge heading version (#8850) 2022-07-11 13:00:20 -07:00
CODE_OF_CONDUCT.md
CONTRIBUTING.md
Cargo.lock policy: Add HTTPRoute indexing (#8795) 2022-07-14 09:04:48 -07:00
Cargo.toml Test the policy controller admission webhook (#8008) 2022-03-07 11:53:28 -08:00
DCO
Dockerfile-debug Update debian to bullseye (#8287) 2022-04-19 14:25:30 -07:00
Dockerfile-proxy Update Go to the latest 1.17 release (#8603) 2022-06-03 08:33:21 -05:00
EXTENSIONS.md
GOVERNANCE.md
LICENSE
MAINTAINERS.md Add @mateiidavid to maintainers (#6597) 2021-08-04 09:02:47 -07:00
README.md add godoc links to README (#8649) 2022-06-13 07:06:01 -05:00
RELEASE.md Add release instructions (#7574) 2022-01-12 10:24:24 -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
TEST.md Remove browser integration tests (#6583) 2021-08-04 10:28:50 -07:00
deny.toml policy: Add HTTPRoute indexing (#8795) 2022-07-14 09:04:48 -07:00
go.mod Update linkerd2-proxy-api to v0.6.0 (#8880) 2022-07-14 08:24:07 -07:00
go.sum Update linkerd2-proxy-api to v0.6.0 (#8880) 2022-07-14 08:24:07 -07:00
rust-toolchain dev: Update build tooling (#8883) 2022-07-14 08:27:44 -07:00
tools.go

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.