Ultralight, security-first service mesh for Kubernetes. Main repo for Linkerd 2.x.
Go to file
Kevin Leimkuhler c31284e6db
Separate single Actions workflow into multiple workflows (#4039)
Depends on #4033

## Motivation

If any job fails in the current GH Actions workflow, a re-run on the same
commit SHA requires re-running *all* jobs--regardless if the job already
passed in the previous run.

This can be problematic when dealing with flakiness in the integration tests.

If a test fails due to flakiness in `cloud_integration_tests`, all the unit
tests, static checks, and `kind_integration_tests` are re-run which leads to
lots of waiting and dealing with the possibility of flakiness in earlier jobs.

With this change, individual workflows can now be re-run without triggering
all other jobs to complete again first.

## Solution

`workflow.yml` is now split into:
- `static_checks.yml`
- `unit_tests.yml`
- `kind_integration.yml`
- `cloud_integration.yml`

### Workflows

`statc_checks.yml` performs checks related to dependencies, linting, and
formatting.

`unit_tests.yml` performs the Go and JS unit tests.

`kind_integration.yml` builds the images (on Packet or the GH Action VM) and
runs the integration tests on a KinD cluster. This workflow continues to run
for **all** PRs and pushes to `master` and tags.

`cloud_integration.yml` builds the images only on Packet. This is because
forked repositories do not need to trigger this workflow. It then creates a
unique GKE cluster and runs the integration tests on the cluster.

### The actual flow of work..

A forked repository or non-forked repository opening a PR triggers:
- `static_checks`
- `unit_tests`
- `kind_integration_tests`

These workflows all run in parallel and are invidivually re-runnable.

A push to `master` or tags triggers:
- `static_checks`
- `unit_tests`
- `kind_integration_tests`
- `cloud_integration_tests`

These workflows also all run in parallel, including the `docker_build` step of
both integration test workflows. This has not conflicted in testing as it
takes place on the same Packet host and just utilizes docker layer caching
well.

Signed-off-by: Kevin Leimkuhler <kevin@kleimkuhler.com>
2020-02-13 09:11:30 -08:00
.github Separate single Actions workflow into multiple workflows (#4039) 2020-02-13 09:11:30 -08:00
bin Improve cni resources labels (#4032) 2020-02-11 12:10:08 +02:00
charts Improve cni resources labels (#4032) 2020-02-11 12:10:08 +02:00
cli Update identity to make certs more diagnosable (#3990) 2020-02-13 11:21:41 +02:00
cni-plugin Use correct go module file syntax (#4021) 2020-02-07 07:58:54 -08:00
controller Show traffic split metrics from sources in all namespaces (#3967) 2020-02-12 09:21:59 -08:00
grafana Add CronJobs and ReplicaSets to dashboard and CLI (#3687) 2019-12-11 10:02:37 -08:00
pkg Update identity to make certs more diagnosable (#3990) 2020-02-13 11:21:41 +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 Integration test flakiness: endpoint version mismatch warning (#4020) 2020-02-11 13:58:11 -05:00
testutil Remove dependency on httpbin in egress integration test (#3987) 2020-02-07 19:35:51 -05:00
web Refactoring to suppress eslint warnings jsx-a11y/click-events-have-key-events (#3995) 2020-02-11 09:28:02 -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 Allow CI to run concurrent builds in master (#4001) 2020-02-07 16:23:36 -05: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.