kubernetes/kubernetes

alint replaces 17 of Kubernetes' 50 hand-rolled hack/verify-*.sh scripts with one declarative config.

Narrative
Replaces N hand-rolled validation scripts
Rules
49
Last revalidated
Engineering reference
README on GitHub · .alint.yml

Why this matters

kubernetes/kubernetes is the canonical “verify-script sprawl” repo. Every PR is gated by 50 hack/verify-*.sh scripts, each with its own filesystem walk, its own error-reporting style, and its own way of integrating with the rest of CI. When CI breaks the contributor has 50 scripts to triage; when a rule needs to change, 50 places to look.

This is the canonical script-sprawl problem alint was designed to fix.

Headline catch

17 of 50 verify-scripts collapse to a single declarative config. alint replaces 12 scripts as drop-in primitives (file_header, file_max_size, yaml_path_matches, etc.), absorbs another 5 via the command: shellout (shellcheck, spelling, gofmt, golangci-lint, govulncheck), and runs them all in parallel — vs. the existing pipeline’s serial bash invocations.

One file. One pass. One place to look when the build is red.

The remaining 33 split cleanly: 7 motivate language-aware import-gate primitives that are now on the v0.10 must-ship list (Kubernetes is one of 4 Go monorepos demanding the same shape); 18 are deliberately out of alint’s scope (codegen drift, vendor-graph analysis, AST-aware Go checks); 6 are duplicates or pre-existing CVE / deps tooling.

Where alint earns its keep here

Future story angles

The factual engineering writeup (tooling inventory, mapping table, gap catalogue, validation status footer) lives in the public alint repo at github.com/asamarts/alint/tree/main/examples/kubernetes-kubernetes/README.md.