Skip to content

Commit 7db78db

Browse files
committed
update name
1 parent f9eb359 commit 7db78db

12 files changed

Lines changed: 67 additions & 67 deletions

File tree

.github/ISSUE_TEMPLATE/bug_report.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
name: Bug report
3-
about: Report a bug in kdocter
3+
about: Report a bug in kroot
44
title: "[bug] "
55
labels: bug
66
assignees: ""
@@ -18,7 +18,7 @@ A clear and concise description of what happened.
1818
## Command run
1919

2020
```bash
21-
kdocter diagnose cluster
21+
kroot diagnose cluster
2222
```
2323

2424
## Expected behavior

.github/pull_request_template.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ cargo test --workspace
2525
If relevant, include sample CLI commands and output:
2626

2727
```bash
28-
cargo run -p kdocter -- diagnose cluster
28+
cargo run -p kroot -- diagnose cluster
2929
```
3030

3131
## Checklist

.github/workflows/release.yml

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -19,15 +19,15 @@ jobs:
1919
- os: ubuntu-latest
2020
target: x86_64-unknown-linux-gnu
2121
archive_ext: tar.gz
22-
binary_name: kdocter
22+
binary_name: kroot
2323
- os: macos-latest
2424
target: aarch64-apple-darwin
2525
archive_ext: tar.gz
26-
binary_name: kdocter
26+
binary_name: kroot
2727
- os: windows-latest
2828
target: x86_64-pc-windows-msvc
2929
archive_ext: zip
30-
binary_name: kdocter.exe
30+
binary_name: kroot.exe
3131

3232
steps:
3333
- name: Checkout
@@ -39,30 +39,30 @@ jobs:
3939
targets: ${{ matrix.target }}
4040

4141
- name: Build release binary
42-
run: cargo build -p kdocter --release --target ${{ matrix.target }}
42+
run: cargo build -p kroot --release --target ${{ matrix.target }}
4343

4444
- name: Package archive (unix)
4545
if: runner.os != 'Windows'
4646
run: |
4747
mkdir -p dist
4848
cp target/${{ matrix.target }}/release/${{ matrix.binary_name }} dist/
49-
tar -C dist -czf kdocter-${{ github.ref_name }}-${{ matrix.target }}.tar.gz ${{ matrix.binary_name }}
49+
tar -C dist -czf kroot-${{ github.ref_name }}-${{ matrix.target }}.tar.gz ${{ matrix.binary_name }}
5050
5151
- name: Package archive (windows)
5252
if: runner.os == 'Windows'
5353
shell: pwsh
5454
run: |
5555
New-Item -ItemType Directory -Path dist -Force | Out-Null
5656
Copy-Item "target/${{ matrix.target }}/release/${{ matrix.binary_name }}" "dist/${{ matrix.binary_name }}"
57-
Compress-Archive -Path "dist/${{ matrix.binary_name }}" -DestinationPath "kdocter-${{ github.ref_name }}-${{ matrix.target }}.zip"
57+
Compress-Archive -Path "dist/${{ matrix.binary_name }}" -DestinationPath "kroot-${{ github.ref_name }}-${{ matrix.target }}.zip"
5858
5959
- name: Upload archive artifact
6060
uses: actions/upload-artifact@v4
6161
with:
62-
name: kdocter-${{ matrix.target }}
62+
name: kroot-${{ matrix.target }}
6363
path: |
64-
kdocter-${{ github.ref_name }}-${{ matrix.target }}.tar.gz
65-
kdocter-${{ github.ref_name }}-${{ matrix.target }}.zip
64+
kroot-${{ github.ref_name }}-${{ matrix.target }}.tar.gz
65+
kroot-${{ github.ref_name }}-${{ matrix.target }}.zip
6666
6767
publish:
6868
name: Publish GitHub Release

AGENTS.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
# kdocter
1+
# kroot
22

3-
kdocter is a CLI tool for performing root cause analysis (RCA)
3+
kroot is a CLI tool for performing root cause analysis (RCA)
44
on Kubernetes clusters.
55

66
The tool diagnoses failures like:

CHANGELOG.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,9 @@ All notable changes to this project will be documented in this file.
88

99
### Added
1010

11-
- Initial `kdocter` CLI:
12-
- `kdocter diagnose cluster`
13-
- `kdocter diagnose pod <name>`
11+
- Initial `kroot` CLI:
12+
- `kroot diagnose cluster`
13+
- `kroot diagnose pod <name>`
1414
- Namespace controls: `-n/--namespace`, `-A/--all-namespaces`
1515
- Output formats: `text`, `json`, `sarif`
1616
- Offline analysis via `--context-file`

CONTRIBUTING.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1-
# Contributing to kdocter
1+
# Contributing to kroot
22

3-
Thanks for contributing to kdocter.
3+
Thanks for contributing to kroot.
44

55
## Development setup
66

77
```bash
8-
git clone https://github.com/AnonJon/kdocter
9-
cd kdocter
8+
git clone https://github.com/AnonJon/kroot
9+
cd kroot
1010
cargo build --workspace
1111
```
1212

Cargo.lock

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

README.md

Lines changed: 36 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,46 +1,46 @@
1-
![CI](https://github.com/AnonJon/kdocter/actions/workflows/ci.yml/badge.svg)
2-
![Release](https://img.shields.io/github/v/release/AnonJon/kdocter)
1+
![CI](https://github.com/AnonJon/kroot/actions/workflows/ci.yml/badge.svg)
2+
![Release](https://img.shields.io/github/v/release/AnonJon/kroot)
33
![License](https://img.shields.io/badge/license-MIT-blue)
44
![Rust](https://img.shields.io/badge/rust-stable-orange)
55
![Kubernetes](https://img.shields.io/badge/kubernetes-compatible-blue)
66

7-
# kdocter
7+
# kroot
88

99
Root cause analysis for Kubernetes incidents.
1010

11-
`kdocter` is a Rust CLI that analyzes Kubernetes resources,
11+
`kroot` is a Rust CLI that analyzes Kubernetes resources,
1212
builds dependency graphs, and explains _why failures occur_.
1313

14-
Instead of only detecting symptoms, `kdocter` builds a dependency graph
14+
Instead of only detecting symptoms, `kroot` builds a dependency graph
1515
and traces resource relationships to explain root causes.
1616

1717
## TL;DR
1818

1919
```bash
20-
kdocter diagnose cluster -A
20+
kroot diagnose cluster -A
2121
```
2222

2323
Find root causes for Kubernetes failures using dependency-aware analysis.
2424

25-
## How kdocter Works
25+
## How kroot Works
2626

27-
`kdocter` analyzes a cluster in three stages:
27+
`kroot` analyzes a cluster in three stages:
2828

2929
1. Collect Kubernetes resources (pods, services, secrets, and related objects).
3030
2. Build a dependency graph between resources.
3131
3. Run analyzers that detect failure patterns and trace root causes.
3232

33-
This allows `kdocter` to report not just failing resources, but the dependency chains that explain the failure.
33+
This allows `kroot` to report not just failing resources, but the dependency chains that explain the failure.
3434

3535
## Contents
3636

3737
- [TL;DR](#tldr)
38-
- [How kdocter Works](#how-kdocter-works)
39-
- [Why kdocter](#why-kdocter)
38+
- [How kroot Works](#how-kroot-works)
39+
- [Why kroot](#why-kroot)
4040
- [Features](#features)
4141
- [Installation](#installation)
4242
- [Quick Start](#quick-start)
43-
- [When to Use kdocter](#when-to-use-kdocter)
43+
- [When to Use kroot](#when-to-use-kroot)
4444
- [Example Output](#example-output)
4545
- [Command Reference](#command-reference)
4646
- [Output Formats](#output-formats)
@@ -58,10 +58,10 @@ This allows `kdocter` to report not just failing resources, but the dependency c
5858
- [Contributing](#contributing)
5959
- [License](#license)
6060

61-
## Why kdocter
61+
## Why kroot
6262

6363
Most Kubernetes tooling tells you _what failed_.
64-
`kdocter` is designed to explain _why it failed_ by correlating resources and their relationships.
64+
`kroot` is designed to explain _why it failed_ by correlating resources and their relationships.
6565

6666
Example chain:
6767

@@ -87,8 +87,8 @@ Example chain:
8787
### Build and run locally
8888

8989
```bash
90-
git clone https://github.com/AnonJon/kdocter
91-
cd kdocter
90+
git clone https://github.com/AnonJon/kroot
91+
cd kroot
9292
cargo build --workspace
9393
```
9494

@@ -101,32 +101,32 @@ cargo install --path cli
101101
### Install from source repository (single command)
102102

103103
```bash
104-
cargo install --git https://github.com/AnonJon/kdocter --bin kdocter
104+
cargo install --git https://github.com/AnonJon/kroot --bin kroot
105105
```
106106

107107
Then run:
108108

109109
```bash
110-
kdocter --help
110+
kroot --help
111111
```
112112

113113
## Quick Start
114114

115115
Diagnose current namespace from your active kubeconfig context:
116116

117117
```bash
118-
cargo run -p kdocter -- diagnose cluster
118+
cargo run -p kroot -- diagnose cluster
119119
```
120120

121121
Diagnose a specific pod:
122122

123123
```bash
124-
cargo run -p kdocter -- diagnose pod payments-api -n prod
124+
cargo run -p kroot -- diagnose pod payments-api -n prod
125125
```
126126

127-
## When to Use kdocter
127+
## When to Use kroot
128128

129-
`kdocter` is useful when:
129+
`kroot` is useful when:
130130

131131
- a pod is failing but the root cause is unclear
132132
- service traffic suddenly stops working
@@ -135,14 +135,14 @@ cargo run -p kdocter -- diagnose pod payments-api -n prod
135135

136136
Typical workflow:
137137

138-
1. Run `kdocter diagnose cluster`.
138+
1. Run `kroot diagnose cluster`.
139139
2. Inspect dependency traces.
140140
3. Identify the upstream failing resource.
141141

142142
## Example Output
143143

144144
```text
145-
$ kdocter diagnose cluster -n prod
145+
$ kroot diagnose cluster -n prod
146146
147147
Diagnosis Report
148148
----------------
@@ -168,13 +168,13 @@ Dependency Traces:
168168
### Diagnose cluster
169169

170170
```bash
171-
kdocter diagnose cluster [-n <namespace> | -A] [--output text|json|sarif] [--context-file <path>]
171+
kroot diagnose cluster [-n <namespace> | -A] [--output text|json|sarif] [--context-file <path>]
172172
```
173173

174174
### Diagnose pod
175175

176176
```bash
177-
kdocter diagnose pod <name> [-n <namespace>] [--output text|json|sarif] [--context-file <path>]
177+
kroot diagnose pod <name> [-n <namespace>] [--output text|json|sarif] [--context-file <path>]
178178
```
179179

180180
### Notes
@@ -199,7 +199,7 @@ Human-readable diagnosis report with:
199199
Machine-readable output for scripting:
200200

201201
```bash
202-
kdocter diagnose cluster --output json -n prod
202+
kroot diagnose cluster --output json -n prod
203203
```
204204

205205
High-level JSON shape:
@@ -213,15 +213,15 @@ High-level JSON shape:
213213
SARIF output is useful for CI systems and security/dev tooling pipelines:
214214

215215
```bash
216-
kdocter diagnose cluster --output sarif -A > kdocter.sarif.json
216+
kroot diagnose cluster --output sarif -A > kroot.sarif.json
217217
```
218218

219219
## Release Binaries and Package Managers
220220

221221
Release binaries are published on tagged releases (`v*`) through:
222222

223223
- [`.github/workflows/release.yml`](./.github/workflows/release.yml)
224-
- [Latest release](https://github.com/AnonJon/kdocter/releases/latest)
224+
- [Latest release](https://github.com/AnonJon/kroot/releases/latest)
225225

226226
Available now:
227227

@@ -237,7 +237,7 @@ Planned install paths:
237237
Run analysis against a previously captured context:
238238

239239
```bash
240-
kdocter diagnose cluster --context-file ./context.json
240+
kroot diagnose cluster --context-file ./context.json
241241
```
242242

243243
Example context fixture:
@@ -283,15 +283,15 @@ kubectl get events -n prod
283283

284284
This surfaces symptoms, but usually not the full dependency cause chain.
285285

286-
`kdocter` correlates dependencies directly:
286+
`kroot` correlates dependencies directly:
287287

288288
`Pod/prod/payments-api -> Secret/prod/db-password -> Secret missing`
289289

290290
That gives a direct root-cause path instead of disconnected clues.
291291

292292
## Project Status
293293

294-
`kdocter` is early-stage but functional for real diagnostics.
294+
`kroot` is early-stage but functional for real diagnostics.
295295

296296
First public release: `v0.1.0` (March 8, 2026).
297297

@@ -307,19 +307,19 @@ Expect active iteration as graph coverage and reasoning depth expand.
307307

308308
## Similar Tools
309309

310-
`kdocter` focuses on dependency-aware root cause analysis.
310+
`kroot` focuses on dependency-aware root cause analysis.
311311

312312
Related tools:
313313

314314
- `popeye` (cluster linting)
315315
- `kube-score` (manifest/static analysis)
316316
- `kubectl` (manual troubleshooting)
317317

318-
`kdocter` complements these by correlating runtime relationships between resources.
318+
`kroot` complements these by correlating runtime relationships between resources.
319319

320320
## Kubernetes Permissions (RBAC)
321321

322-
`kdocter` collects and correlates multiple resource types. Your identity should allow at least:
322+
`kroot` collects and correlates multiple resource types. Your identity should allow at least:
323323

324324
- `get/list` on `pods`
325325
- `get/list` on `services`
@@ -362,7 +362,7 @@ DependencyGraph
362362

363363
Workspace crates:
364364

365-
- `cli`: binary crate (`kdocter`)
365+
- `cli`: binary crate (`kroot`)
366366
- `crates/cluster`: Kubernetes collectors and context loading
367367
- `crates/types`: normalized domain models
368368
- `crates/graph`: dependency graph builder/model (`petgraph`)

cli/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
[package]
2-
name = "kdocter"
2+
name = "kroot"
33
version = "0.1.0"
44
edition = "2024"
55

cli/src/main.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ use serde::Serialize;
55
use std::path::PathBuf;
66

77
#[derive(Parser, Debug)]
8-
#[command(name = "kdocter", about = "Kubernetes root cause analysis CLI")]
8+
#[command(name = "kroot", about = "Kubernetes root cause analysis CLI")]
99
struct Cli {
1010
#[command(subcommand)]
1111
command: Commands,
@@ -331,8 +331,8 @@ fn build_sarif_log(diagnoses: &[types::Diagnosis]) -> SarifLog {
331331
runs: vec![SarifRun {
332332
tool: SarifTool {
333333
driver: SarifDriver {
334-
name: "kdocter".to_string(),
335-
information_uri: "https://github.com/AnonJon/kdocter".to_string(),
334+
name: "kroot".to_string(),
335+
information_uri: "https://github.com/AnonJon/kroot".to_string(),
336336
rules: rules.into_values().collect(),
337337
},
338338
},

0 commit comments

Comments
 (0)