Skip to content

Latest commit

 

History

History
152 lines (111 loc) · 6.59 KB

CONTRIBUTING.md

File metadata and controls

152 lines (111 loc) · 6.59 KB

Contributing to kubernetes/test-infra

Welcome! If you haven't seen them already, the Kubernetes project has:

Contact

This repo is owned by SIG Testing, and the people most directly involved are listed in /OWNERS. We are most responsive on our slack channel

We also have two other slack channels:

Workflow

In general we use the same pull request (PR) and review workflow used by the rest of the Kubernetes project. This means the use of the CNCF CLA, code review by reviewers and approvers listed in OWNERS files, and tests that automatically exercise code or enforce conventions. Many PRs will result in changes automatically being deployed.

Some conventions that are specific to this repo:

  • For large code changes, please write a design doc or KEP and get signoff from SIG Testing before trying to land code. If you're not sure what a KEP should look like, kuberenetes/enhancements/keps/sig-testing has some examples. If you're not sure what "large" means, come ask us
  • We find it polite to apply the do-not-merge/hold label via the /hold command when in doubt about whether/when a PR should merge. If we don't explain why we're adding a /hold, this is usually because the PR will cause changes to be deployed on merge, and we want the person responsible for deploying and monitoring the changes to decide when to /hold cancel. In some cases this is the PR author, in other cases this may be whomever is on-call for prow.k8.io. If you are unsure which, please ask.
  • Many of us use gubernator.k8s.io/pr to keep track of which PRs require our attention. Use of the /cc @person or /assign @person commands is the most effective way to put PRs on our radar. You can also contact us on slack.

Issue Triage

Issues are ideally labeled with:

  • milestone: during which release cycle do we plan on working on this issue
  • sig/foo: which SIG owns this work
  • area/foo: which subproject or code is this issue related to
  • kind/foo: which kind of work is this issue describing
  • priority/foo: how important is this issue

For example, an issue related to cleaning up and consolidating (kind/cleanup) release-related (sig/release) jobs and dashboards (area/config) for the v1.16 cycle (milestone: v1.16) that may not get completed by the end of the cycle if more important or more urgent arises (priority/important-longterm).

We try to have a non-stale pool of issues that are available for new contributors who want to help out but aren't sure what to work on or where to get started:

Guides

If you're not sure where to contribute or what any of these mean, please see /README.md for a brief description of the various codebases in this repo.

Build and Test

We use bazel to build, test and deploy code in this repo. In most cases you can get by just fine with:

bazel build //path/to/thing/in/repo/...
bazel test //path/to/thing/in/repo/...

If you modify Go code, run ./hack/update-bazel.sh to keep BUILD.bazel files up to date

Dependency Management

Please see /docs/dep.md

Prow Jobs

The majority of the Kubernetes project is tested via prowjobs that run on prow.k8s.io. See /config/jobs/README.md for more information.

TestGrid Config

Test results generated by our prow jobs are available at testgrid.k8s.io. To learn more about how to configure which test results display where, see /testgrid/README.md

GitHub Labels

go.k8s.io/github-labels describes GitHub labels that are synced across all Kubernetes orgs and repos. To update these, please see /label_sync/README.md

External Test Results

We welcome contribution of e2e test results for kubernetes/kubernetes generated by other CI systems on other platforms to ensure that Kubernetes has test coverage in a variety of environments. For more info please see /docs/contributing-test-results.md