test-infra
This repository contains tools and configuration files for the testing and automation needs of the Kubernetes project.
Our architecture diagram provides a (wildly out of date #13063) overview of how the different tools and services interact.
CI Job Management
Kubernetes uses a prow
instance at prow.k8s.io to handle CI and
automation for the entire project. Everyone can participate in a
self-service PR-based workflow, where changes are automatically deployed
after they have been reviewed. All job configs are located in config/jobs
- Add or update job configs
- Delete job configs
- Test job configs locally
- Trigger jobs on PRs using bot commmands
Dashboards
Test Result Dashboards
- Testgrid shows historical test results over time (
testgrid
) - Triage shows clusters of similar test failures across all jobs (
triage
)
Job and PR Dashboards
- Deck shows what jobs are running or have recently run in prow (
prow/cmd/deck
) - Gubernator's PR Dashboard shows which PRs need your review (
gubernator
) - PR Status shows what needs to be done to get PRs matching a GitHub Query to merge (
prow/cmd/tide
) - Tide History shows what actions tide has taken over time to trigger tests and merge PRs (
prow/cmd/tide
) - Tide Status shows what PRs are in tide pools to be tested and merged (
prow/cmd/tide
)
Other Tools
boskos
manages pools of resources; our CI leases GCP projects from these poolsexperiment/
is a catchall directory for one-shot tools or scriptsgcsweb
is a UI we use to display test artifacts stored in public GCS bucketsghproxy
is a GitHub-aware reverse proxy cache to help keep our GitHub API token usage within rate limitsgopherage
is a tool for manipulating Go coverage filesgreenhouse
is a shared bazel cache we use to ensure faster build and test presubmit jobslabel_sync
creates, updates and migrates GitHub labels across orgs and repos based onlabels.yaml
filekettle
extracts test results from GCS and puts them into bigquerykubetest
is how our CI creates and e2e tests kubernetes clustersmaintenance/migratestatus
is used to migrate or retire GitHub status contexts on PRs across orgs and reposmetrics
runs queries against bigquery to generate metrics based on test resultsrobots/commenter
is used by some of our jobs to comment on GitHub issues
Contributing
Please see CONTRIBUTING.MD