Ultralight, security-first service mesh for Kubernetes. Main repo for Linkerd 2.x.
Go to file
Kevin Leimkuhler ae7d98b4fe
Run integration tests for forked repos (#4002)
* Allow CI to run concurrent builds in master

Fixes #3911

Refactors the `cloud_integration` test to run in separate GKE clusters
that are created and torn down on the fly.
It leverages a new "gcloud" github action that is also used to set up
gcloud in other build steps (`docker_deploy` and `chart_deploy`).

The action also generates unique names for those clusters, based on the
git commit SHA and `run_id`, a recently introduced variable that is
unique per CI run and available to all the jobs.
This fixes part of #3635 in that CI runs on the same SHA don't interfere
with one another (in the `cloud_integration` test; still to do for
`kind_integration`).

The "gcloud" GH action is supported by `.github/actions/gcloud/index.js`
that has a couple of dependencies. To avoid having to commit
`node_modules`, after every change to that file one must run
```bash
# only needed the first time
npm i -g @zeit/ncc

cd .github/actions/gcloud
ncc build index.js
```
which generates the self-contained file
`.github/actions/gcloud/dist/index.js`.
(This last part might get easier in the future after other refactorings
outside this PR).

* Run integration tests for forked repos

Signed-off-by: Kevin Leimkuhler <kevin@kleimkuhler.com>

* Address reviews

Signed-off-by: Kevin Leimkuhler <kevin@kleimkuhler.com>

* Address more reviews

Signed-off-by: Kevin Leimkuhler <kevin@kleimkuhler.com>

* Move some conditionals to jobs

Signed-off-by: Kevin Leimkuhler <kevin@kleimkuhler.com>

* Change job name

Signed-off-by: Kevin Leimkuhler <kevin@kleimkuhler.com>

* Move more conditionals to job level

Signed-off-by: Kevin Leimkuhler <kevin@kleimkuhler.com>

* Added more flags to 'gcloud container clusters create' and consolidated
'create' and 'destroy' into ' action'

* Run kind cleanup only for non-forked PRs

Signed-off-by: Kevin Leimkuhler <kevin@kleimkuhler.com>

* Got rid of cloud_cleanup by using a post hook in the gcloud action

* Removed cluster naming responsibility from the gcloud action

* Consolidate .gitignore statements

* Removed bin/_gcp.sh

* Change name of Kind int. test job

Signed-off-by: Kevin Leimkuhler <kevin@kleimkuhler.com>

* Ensure `kind_cleanup` still runs on cancelled host CI runs

Signed-off-by: Kevin Leimkuhler <kevin@kleimkuhler.com>

* Add reviews

Signed-off-by: Kevin Leimkuhler <kevin@kleimkuhler.com>

* Update workflow comment

Signed-off-by: Kevin Leimkuhler <kevin@kleimkuhler.com>

* Split index.js into setup.js and destroy.js

* trigger build

* Moved the gcloud action into its own repo

* Full version for the gcloud GH action

* Rebase back to master

Signed-off-by: Kevin Leimkuhler <kevin@kleimkuhler.com>

* Remvoe additional changes

Signed-off-by: Kevin Leimkuhler <kevin@kleimkuhler.com>

* Remove additional changes

Signed-off-by: Kevin Leimkuhler <kevin@kleimkuhler.com>

* Trigger CI

Signed-off-by: Kevin Leimkuhler <kevin@kleimkuhler.com>

Co-authored-by: Alejandro Pedraza <alejandro.pedraza@gmail.com>
2020-02-07 12:27:04 -08:00
.github Run integration tests for forked repos (#4002) 2020-02-07 12:27:04 -08:00
bin Add helm upgrade integration test (#3976) 2020-02-04 08:27:46 +02:00
charts stable-2.7.0 (#4019) 2020-02-06 10:58:59 -08:00
cli Use correct go module file syntax (#4021) 2020-02-07 07:58:54 -08:00
cni-plugin Use correct go module file syntax (#4021) 2020-02-07 07:58:54 -08:00
controller Use correct go module file syntax (#4021) 2020-02-07 07:58:54 -08:00
grafana Add CronJobs and ReplicaSets to dashboard and CLI (#3687) 2019-12-11 10:02:37 -08:00
pkg cli: Update 'check' command to validate HA configuration (#3942) 2020-02-07 19:07:11 +02:00
proto Fix issue for debug containers when using custom Docker registry (#3873) 2020-01-17 10:18:03 -08:00
proxy-identity Consolidate certificates validation logic (#3810) 2019-12-13 10:01:55 +02:00
test Update helm overrides to match stable ones (#4025) 2020-02-07 09:37:18 -05:00
testutil Add helm upgrade integration test (#3976) 2020-02-04 08:27:46 +02:00
web Use correct go module file syntax (#4021) 2020-02-07 07:58:54 -08:00
.dockerignore Replace Travis with GitHub Actions for master/tags (#3398) 2019-09-06 15:58:46 -07:00
.editorconfig Add protobuf files to .editorconfig (#1042) 2018-05-30 15:09:38 -07: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 Introduce bin/kind, move executables to target/bin (#3289) 2019-08-21 19:49:21 -07:00
.golangci.yml Switch from using golangci fmt to using goimports (#3555) 2019-10-16 13:56:11 -07:00
.proxy-version proxy: v2.85.0 (#4010) 2020-02-04 10:41:50 -08:00
ADOPTERS.md Added NISC to list of adopters (#4009) 2020-02-03 17:44:59 -08:00
BUILD.md Control Plane Trace configuration (#3539) 2019-10-25 11:42:30 -07:00
CHANGES.md stable-2.7.0 (#4019) 2020-02-06 10:58:59 -08:00
CODE_OF_CONDUCT.md Move Code of Conduct from wiki to repo (#3320) 2019-08-26 14:15:58 -07:00
CONTRIBUTING.md Add more detail to CONTRIBUTING.md about pull request descriptions (#3591) 2019-10-16 18:38:16 -07:00
DCO Add contributing doc and DCO file (#88) 2017-12-22 14:54:27 -08:00
Dockerfile-base Revert upgrade to buster based on CNI test failure after merge (#3486) 2019-09-26 13:40:43 -07:00
Dockerfile-debug Add conntrack and netstat to debug container (#3672) 2019-11-05 14:32:24 -08:00
Dockerfile-go-deps Upgrade go to 1.13.4 (#3702) 2019-11-13 12:54:36 -05:00
Dockerfile-proxy Use correct go module file syntax (#4021) 2020-02-07 07:58:54 -08:00
GOVERNANCE.md fix-up spelling mistake (#3328) 2019-08-27 10:24:53 -07:00
LICENSE Introducing Conduit, the ultralight service mesh 2017-12-05 00:24:55 +00:00
MAINTAINERS.md Update maintainers.md (#3509) 2019-10-01 15:57:26 -07:00
README.md Increase minimum k8s version to 1.13 (#3845) 2019-12-19 09:26:08 -08:00
SECURITY_AUDIT.pdf Add security audit (#3008) 2019-06-28 16:04:41 -07:00
TEST.md Introduce Go modules support (#2481) 2019-07-25 14:41:38 -07:00
go.mod Use correct go module file syntax (#4021) 2020-02-07 07:58:54 -08:00
go.sum Use correct go module file syntax (#4021) 2020-02-07 07:58:54 -08:00
tools.go Switch from using golangci fmt to using goimports (#3555) 2019-10-16 13:56:11 -07:00

README.md

Linkerd

GitHub Actions Status GitHub license Go Report Card Slack Status

🎈 Welcome to Linkerd! 👋

Linkerd is a service mesh, designed to give platform-wide observability, reliability, and security without requiring configuration or code changes.

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 Kubernetes 1.13+ 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 take place the last Wednesday of the month at 9am Pacific / 4pm UTC.

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

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

Security Audit

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

License

Copyright 2019, 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.