MCPcopy
hub / github.com/kubernetes/test-infra

github.com/kubernetes/test-infra @main sqlite

repository ↗ · DeepWiki ↗
3,413 symbols 9,727 edges 311 files 1,183 documented · 35%
README

test-infra

GoDoc Build status

This repository contains tools and configuration files for the testing and automation needs of the Kubernetes project.

Our architecture diagram provides an (updated #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]

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])
  • 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 pools
  • experiment is a catchall directory for one-shot tools or scripts
  • gcsweb is a UI we use to display test artifacts stored in public GCS buckets
  • ghproxy is a GitHub-aware reverse proxy cache to help keep our GitHub API token usage within rate limits
  • gopherage is a tool for manipulating Go coverage files
  • label_sync creates, updates and migrates GitHub labels across orgs and repos based on labels.yaml file
  • kettle extracts test results from GCS and puts them into bigquery
  • kubetest2 is how our CI creates and e2e tests kubernetes clusters
  • metrics runs queries against bigquery to generate metrics based on test results
  • robots/commenter is used by some of our jobs to comment on GitHub issues

Contributing

Please see CONTRIBUTING.MD

Extension points exported contracts — how you extend this code

Tester (Interface)
Tester is implemented by runners that run our tests [4 implementers]
kubetest/e2e/interfaces.go
OwnerMapper (Interface)
OwnerMapper finds an owner for a given test name. [3 implementers]
robots/issue-creator/creator/creator.go
ImageResolver (Interface)
ImageResolver validates container image references against a registry. When a mutated image tag does not exist, it resol [2 …
releng/config-forker/pkg/forker.go
PersistenceLayer (Interface)
PersistenceLayer defines a simple interface to persists Boskos Information [1 implementers]
kubetest/boskos/storage/storage.go
ClientInterface (Interface)
ClientInterface is the interface for manipulating secretmanager [1 implementers]
experiment/clustersecretbackup/secretmanager/secretmanager.go
Pos (Interface)
(no doc)
gopherage/cmd/html/static/parser.ts
PRMungeFunc (FuncType)
(no doc)
pkg/ghclient/wrappers.go
TestBuilder (Interface)
TestBuilder is implemented by deployers that want to customize how the e2e tests are run [3 implementers]
kubetest/e2e/interfaces.go

Core symbols most depended-on inside this repo

append
called by 207
experiment/parse_build_log.py
Run
called by 143
kubetest/e2e/interfaces.go
String
called by 113
kubetest/kops.go
expect
called by 103
gubernator/static/build_test.js
FinishRunning
called by 97
kubetest/process/process.go
open
called by 86
gubernator/third_party/cloudstorage/cloudstorage_api.py
get
called by 80
gubernator/main.py
Close
called by 59
kubetest/dump.go

Shape

Function 1,675
Method 1,278
Struct 225
Class 173
Interface 30
TypeAlias 26
FuncType 6

Languages

Go49%
Python38%
TypeScript12%

Modules by API surface

gubernator/static/moment.min.js222 symbols
jenkins/bootstrap_test.py186 symbols
gubernator/third_party/cloudstorage/storage_api.py60 symbols
label_sync/main.go53 symbols
jenkins/bootstrap.py49 symbols
gubernator/view_build_test.py45 symbols
kubetest/aksengine.go43 symbols
config/tests/jobs/jobs_test.go41 symbols
robots/issue-creator/creator/creator.go38 symbols
gopherage/cmd/html/static/zz.browser.bundle.min.js36 symbols
gopherage/cmd/html/static/browser_bundle.es2015.js36 symbols
kubetest/main.go35 symbols

Dependencies from manifests, versioned

4d63.com/gocheckcompilerdirectivesv1.3.0 · 1×
4d63.com/gochecknoglobalsv0.2.2 · 1×
bitbucket.org/creachadair/stringsetv0.0.9 · 1×
cel.dev/exprv0.25.1 · 1×
cloud.google.com/gov0.120.0 · 1×
cloud.google.com/go/authv0.16.1 · 1×
cloud.google.com/go/auth/oauth2adaptv0.2.8 · 1×
cloud.google.com/go/computev1.23.0 · 1×
cloud.google.com/go/compute/metadatav0.9.0 · 1×
cloud.google.com/go/monitoringv1.24.0 · 1×
cloud.google.com/go/secretmanagerv1.14.5 · 1×

For agents

$ claude mcp add test-infra \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact