Run all PRs on GH Actions VMs ## Motivation Currently all pushes to master branch, tags, and Linkerd org member PRs run the `kind_integration_host` job on the same Packet host. The means that parallel jobs spin up KinD clusters with a unique name and sandbox the tests so that they do not clash. This is problematic for a few reasons: * There is a limit on the number of jobs we can run in parallel due to resource constraints. * Workflow cancellation and re-runs conflict when the cancelled run deletes it's namespaces and the running one expects them to be present. * There has been an observed flakiness with running multiple KinD clusters resulting in inconsistent timeouts and docker errors. ## Solution This change moves all KinD integration testing to GH Actions VMs. This is currently what forked repository workflows do. There is no longer a `docker_pull` job as it's responsibilities has been moved into one of the `kind_integration_tests` steps. The renamed `kind_integration_tests` job is responsible for **all** PR workflows and has steps specific to forked and non-forked repositories. ### Non-forked repository PRs The Packet host is still used for building docker images as leveraging docker layer caching is still valuable--a build can be as fast as 30 seconds compared to ~12 minutes. Loading the docker images into the KinD cluster on the GH Action VM is done by saving the Packet host docker images as image archives, and loading those directly into the local KinD cluster. ### Forked repository PRs `docker_build` has been sped up slightly by sending `docker save` processes to the background. Docker layer caching cannot be leveraged since there are no SSH secrets available, so the `artifact-upload`/`artifact-download` actions introduced in #TODO are still used. ### Cleanup This PR also includes some general cleanup such as: * Some job names have been renamed to better reflect their purpose or match the current naming pattern. * Environment variables are set earlier in jobs as a separate step if it is currently exported multiple times. * Indentation was really bothering me because it switches back and forth throughout the workflow file, so lists are now indented. Signed-off-by: Kevin Leimkuhler <kevin@kleimkuhler.com> |
||
---|---|---|
.github | ||
bin | ||
charts | ||
cli | ||
cni-plugin | ||
controller | ||
grafana | ||
pkg | ||
proto | ||
proxy-identity | ||
test | ||
testutil | ||
web | ||
.dockerignore | ||
.editorconfig | ||
.gcp.json.enc | ||
.gitattributes | ||
.gitignore | ||
.golangci.yml | ||
.proxy-version | ||
ADOPTERS.md | ||
BUILD.md | ||
CHANGES.md | ||
CODE_OF_CONDUCT.md | ||
CONTRIBUTING.md | ||
DCO | ||
Dockerfile-base | ||
Dockerfile-debug | ||
Dockerfile-go-deps | ||
Dockerfile-proxy | ||
GOVERNANCE.md | ||
LICENSE | ||
MAINTAINERS.md | ||
README.md | ||
SECURITY_AUDIT.pdf | ||
TEST.md | ||
go.mod | ||
go.sum | ||
tools.go |
README.md
🎈 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:
- linkerd2: Main Linkerd 2.x repo, including control plane and CLI
- linkerd2-proxy: Linkerd 2.x data plane proxy
- linkerd2-proxy-api: Linkerd 2.x gRPC API bindings
- linkerd: Linkerd 1.x
- website: linkerd.io website (including docs for 1.x and 2.x)
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
- Join Linkerd's user mailing list, developer mailing list, and announcements mailing list.
- Follow @linkerd on Twitter.
- Join the Linkerd Slack.
- Join us in the regular online community meetings!
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.