Ultralight, security-first service mesh for Kubernetes. Main repo for Linkerd 2.x.
Go to file
Matei David adf1d33476
Fix multicluster StatefulSet test (#6577)
The multicluster StatefulSet test seemed to be a bit flakey. In the actual PR, the check passed, but as soon as it was merged it failed. I had a quick look and noticed that the flakiness in the test came from the logic that mirrors a namespace. Specifically, when we have a headless service, we create it and mirror its namespace here: https://github.com/linkerd/linkerd2/blob/main/multicluster/service-mirror/cluster_watcher.go#L1120

But, every time we process a new service, we do the same thing:
https://github.com/linkerd/linkerd2/blob/main/multicluster/service-mirror/cluster_watcher.go#L463

The tests were failing when a headless service was being created with the following error:
```
time="2021-07-29T20:58:03Z" level=info msg="Err Inner errors:\n\tnamespaces \"ns2\" already exists: " cluster=remote
```

It seems that the namespace was being created twice in a very short span leading to a race condition (hence why it would pass randomly, I assume). An easy way to fix this is to bail out early in `handleRemoteServiceCreated()` if we have a headless service, before we create the namespace.

Signed-off-by: Matei David <matei@buoyant.io>
2021-07-29 15:12:25 -07:00
.github Bump softprops/action-gh-release from 0.1.6 to 1 (#6566) 2021-07-29 14:13:00 -06:00
bin Do not install PSP resources by default (#6558) 2021-07-29 15:37:54 -05:00
charts Do not install PSP resources by default (#6558) 2021-07-29 15:37:54 -05:00
cli Do not install PSP resources by default (#6558) 2021-07-29 15:37:54 -05:00
cni-plugin Enable readOnlyFileSystem for cni plugin chart (#6469) 2021-07-21 14:45:58 -05:00
controller Fix external-prometheus integration test flakyness (#6575) 2021-07-29 13:29:31 -05:00
grafana Include viz components in Prom scrapes, fix Linkerd Health charts (#5656) 2021-02-04 09:40:23 -05:00
jaeger Do not install PSP resources by default (#6558) 2021-07-29 15:37:54 -05:00
multicluster Fix multicluster StatefulSet test (#6577) 2021-07-29 15:12:25 -07:00
pkg Do not install PSP resources by default (#6558) 2021-07-29 15:37:54 -05:00
proto Removed `Version` API from the public-api (#6000) 2021-04-16 11:23:55 -05:00
proxy-identity fold run-proxy.sh funtionality into proxy-dentity (#6228) 2021-06-11 12:57:17 -06:00
test Do not install PSP resources by default (#6558) 2021-07-29 15:37:54 -05:00
testutil Upon rollout timeouts in integration tests, show events (#6529) 2021-07-21 14:46:17 -05:00
viz Do not install PSP resources by default (#6558) 2021-07-29 15:37:54 -05:00
web Bump regenerator-runtime from 0.13.7 to 0.13.9 in /web/app (#6553) 2021-07-23 13:51:18 -05:00
.dockerignore Migrate CI to docker buildx and other improvements (#4765) 2020-07-22 14:27:45 -05:00
.editorconfig Add PodDisruptionBudgets to control plane (#5398) (#5406) 2021-01-06 09:19:15 -05:00
.gcp.json.enc Add docker builds and integration tests to CI (#1303) 2018-07-11 14:01:42 -07:00
.gitattributes remove the duplicate word (#3385) 2019-09-04 20:13:55 -07:00
.gitignore Upload code coverage of unit tests to codecov (#6321) 2021-06-23 10:15:01 -06:00
.golangci.yml Upgrade golangci-lint to v1.23.8 (#4181) 2020-03-18 09:13:19 -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.150.0 (#6535) 2021-07-21 15:14:38 -07:00
ADOPTERS.md Add Bede Gaming to adopters list (#6570) 2021-07-28 12:06:03 -07:00
BUILD.md Fix minor typo about formatting (#6450) 2021-07-08 12:32:45 -07:00
CHANGES.md changelog for edge-21.7.4 (#6543) 2021-07-22 13:24:10 -06: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
DCO Add contributing doc and DCO file (#88) 2017-12-22 14:54:27 -08:00
Dockerfile-debug Update debian base images to buster-20210208-slim (#5750) 2021-02-16 08:39:53 -08:00
Dockerfile-proxy Use the default distroless image (#6451) 2021-07-08 10:23:23 -07: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 Add org affiliation for SC members (#6336) 2021-06-21 17:28:47 -06:00
README.md reference SECURITY.md from README.md (#5918) 2021-03-18 10:13:06 -07:00
ROADMAP.md Add a roadmap (#6028) 2021-04-13 14:27:39 -07:00
SECURITY.md Spelling (#4872) 2020-08-12 21:59:50 -07:00
SECURITY_AUDIT.pdf Add security audit (#3008) 2019-06-28 16:04:41 -07:00
STEERING.md add STEERING.md (#5607) 2021-01-27 09:39:32 -06:00
TEST.md Spelling (#6215) 2021-06-07 15:16:59 -06:00
go.mod Bump github.com/prometheus/common from 0.29.0 to 0.30.0 (#6560) 2021-07-26 14:06:48 -05:00
go.sum Bump github.com/prometheus/common from 0.29.0 to 0.30.0 (#6560) 2021-07-26 14:06:48 -05: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 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.