Terminal highlighter for kubectl describe output.
kdescribe runs kubectl describe, finds common Kubernetes failure signals,
and prints the most important findings first. It can also read describe output
from stdin for scripting.
kubectl kdescribe pod <pod-name>
kubectl kdescribe pod <pod-name> -n <namespace>
kubectl kdescribe pod -APipe mode is still supported:
kubectl describe pod <pod-name> | kdescribeFor local development:
go run . pod <pod-name>kubectl kdescribe pod <pod-name> --output human
kubectl kdescribe pod <pod-name> --output json
kubectl kdescribe pod <pod-name> --output markdownUseful flags:
--no-colordisables ANSI colors--min-score 80only shows high-signal findings--exit-codeexits with status 1 when findings are present--show-allprints every finding instead of the top results
- regex-based detection for common workload issues
- severity and score for every finding
- line number and original describe line for context
- simple cluster health risk:
LOW,MEDIUM, orHIGH - lightweight parsing for
Containers,Conditions, andEvents
Example signals:
OOMKilledCrashLoopBackOffImagePullBackOffErrImagePullFailedSchedulingFailedMount- readiness/liveness probe failures
The release binary is named kubectl-kdescribe so krew can expose it as:
kubectl kdescribeBuild release artifacts with GoReleaser:
goreleaser release --snapshot --cleanOn main, GitHub Actions builds archives with GoReleaser first, then
semantic-release creates the GitHub Release and uploads those archives as
release assets. Each archive contains the kubectl-kdescribe binary.
The draft krew manifest lives in krew/kdescribe.yaml. Replace sha256: TODO
values with checksums from the release before submitting to the krew index.
Releases and CHANGELOG.md are generated by semantic-release on every push to
main. Use Conventional Commits so semantic-release can decide the next version:
feat: add workload grouping
fix: detect failed volume attachments
docs: document krew installationOnly commits that affect release notes, such as feat and fix, create a new
release by default.