# kubernetes/enhancements architecture

> Architecture diagram of the GitHub repository kubernetes/enhancements, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-28). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/kubernetes/enhancements
- Repository: https://github.com/kubernetes/enhancements

## Overview

Kubernetes Enhancements is a repository for tracking KEPs and their progress across release stages. The main user workflow is to create or maintain KEP metadata, query proposals by SIG, status, stage, and people, and render results; `kepify` also parses KEP documents into JSON. The graph includes documented release tracking and approval-related capabilities. Some subsystem links are based on README descriptions and the file tree; source excerpts for those areas were not provided.

Main entry points: [`keps`](https://github.com/kubernetes/enhancements/tree/master/keps) (KEP documents), [`pkg/repo/query.go`](https://github.com/kubernetes/enhancements/blob/master/pkg/repo/query.go) (Proposal query), [`pkg/kepctl/commands/query.go`](https://github.com/kubernetes/enhancements/blob/master/pkg/kepctl/commands/query.go) (Query command), [`pkg/proposal/create.go`](https://github.com/kubernetes/enhancements/blob/master/pkg/proposal/create.go) (KEP creation)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_records["KEP records"]
  node_kepfiles["KEP documents"]
  node_metadata["Proposal model<br/>[proposal.go]"]
end

subgraph group_workflow["Proposal workflow"]
  node_kepify["KEP JSON export<br/>[main.go]"]
  node_create["KEP creation<br/>[create.go]"]
end

subgraph group_query["Query and output"]
  node_kepctl["CLI entry<br/>[main.go]"]
  node_querycmd["Query command<br/>[query.go]"]
  node_repoquery["Proposal query<br/>[query.go]"]
  node_output["Result formats<br/>[output.go]"]
end

subgraph group_governance["Review and release tracking"]
  node_prr["PRR validation<br/>[approval.go]"]
  node_prrrecords["PRR approvals"]
  node_approvers["Reviewer verification<br/>[verify.go]"]
  node_release["Release tracking"]
end

node_contributors(("Contributors"))
node_github(("GitHub PRs"))
node_owners["SIG OWNERS"]
node_boards(("Enhancement boards"))

node_contributors -->|"requests creation"| node_create
node_create -->|"populates and validates"| node_metadata
node_create -->|"writes KEP"| node_kepfiles
node_kepify -->|"scans documents"| node_kepfiles
node_kepify -->|"parses metadata"| node_metadata
node_kepctl -->|"executes command"| node_querycmd
node_contributors -->|"sets filters"| node_querycmd
node_querycmd -->|"runs query"| node_repoquery
node_repoquery -->|"loads local KEPs"| node_kepfiles
node_repoquery -.->|"optionally fetches PRs"| node_github
node_repoquery -->|"returns proposals"| node_output
node_querycmd -->|"prints results"| node_output
node_prr -->|"checks proposal stage"| node_metadata
node_prr -->|"reads approval"| node_prrrecords
node_approvers -->|"checks KEP metadata"| node_kepfiles
node_approvers -->|"checks assignments"| node_owners
node_kepfiles -->|"tracks release stages"| node_release
node_release -->|"visualizes milestones"| node_boards

click node_kepfiles "https://github.com/kubernetes/enhancements/tree/master/keps"
click node_metadata "https://github.com/kubernetes/enhancements/blob/master/api/proposal.go"
click node_kepify "https://github.com/kubernetes/enhancements/blob/master/cmd/kepify/main.go"
click node_create "https://github.com/kubernetes/enhancements/blob/master/pkg/proposal/create.go"
click node_kepctl "https://github.com/kubernetes/enhancements/blob/master/cmd/kepctl/main.go"
click node_querycmd "https://github.com/kubernetes/enhancements/blob/master/pkg/kepctl/commands/query.go"
click node_repoquery "https://github.com/kubernetes/enhancements/blob/master/pkg/repo/query.go"
click node_output "https://github.com/kubernetes/enhancements/blob/master/pkg/output/output.go"
click node_prr "https://github.com/kubernetes/enhancements/blob/master/pkg/kepval/approval.go"
click node_prrrecords "https://github.com/kubernetes/enhancements/tree/master/keps/prod-readiness"
click node_approvers "https://github.com/kubernetes/enhancements/blob/master/pkg/nodeapprovers/verify.go"
click node_release "https://github.com/kubernetes/enhancements/tree/master/keps"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_kepfiles,node_metadata toneBlue
class node_kepify,node_create toneAmber
class node_kepctl,node_querycmd,node_repoquery,node_output toneMint
class node_prr,node_prrrecords,node_approvers,node_release toneRose
class node_contributors,node_github,node_owners,node_boards toneIndigo
```

## Components

### KEP records

- [KEP documents](https://github.com/kubernetes/enhancements/tree/master/keps): `keps`
- [Proposal model](https://github.com/kubernetes/enhancements/blob/master/api/proposal.go): `api/proposal.go`

### Proposal workflow

- [KEP JSON export](https://github.com/kubernetes/enhancements/blob/master/cmd/kepify/main.go): `cmd/kepify/main.go`
- [KEP creation](https://github.com/kubernetes/enhancements/blob/master/pkg/proposal/create.go): `pkg/proposal/create.go`

### Query and output

- [CLI entry](https://github.com/kubernetes/enhancements/blob/master/cmd/kepctl/main.go): `cmd/kepctl/main.go`
- [Query command](https://github.com/kubernetes/enhancements/blob/master/pkg/kepctl/commands/query.go): `pkg/kepctl/commands/query.go`
- [Proposal query](https://github.com/kubernetes/enhancements/blob/master/pkg/repo/query.go): `pkg/repo/query.go`
- [Result formats](https://github.com/kubernetes/enhancements/blob/master/pkg/output/output.go): `pkg/output/output.go`

### Review and release tracking

- [PRR validation](https://github.com/kubernetes/enhancements/blob/master/pkg/kepval/approval.go): `pkg/kepval/approval.go`
- [PRR approvals](https://github.com/kubernetes/enhancements/tree/master/keps/prod-readiness): `keps/prod-readiness`
- [Reviewer verification](https://github.com/kubernetes/enhancements/blob/master/pkg/nodeapprovers/verify.go): `pkg/nodeapprovers/verify.go`
- [Release tracking](https://github.com/kubernetes/enhancements/tree/master/keps): `keps`

### Other components

- **Contributors**
- **GitHub PRs**
- **SIG OWNERS**
- **Enhancement boards**

## Connections

- Contributors → KEP creation: requests creation
- KEP creation → Proposal model: populates and validates
- KEP creation → KEP documents: writes KEP
- KEP JSON export → KEP documents: scans documents
- KEP JSON export → Proposal model: parses metadata
- CLI entry → Query command: executes command
- Contributors → Query command: sets filters
- Query command → Proposal query: runs query
- Proposal query → KEP documents: loads local KEPs
- Proposal query → GitHub PRs: optionally fetches PRs
- Proposal query → Result formats: returns proposals
- Query command → Result formats: prints results
- PRR validation → Proposal model: checks proposal stage
- PRR validation → PRR approvals: reads approval
- Reviewer verification → KEP documents: checks KEP metadata
- Reviewer verification → SIG OWNERS: checks assignments
- KEP documents → Release tracking: tracks release stages
- Release tracking → Enhancement boards: visualizes milestones
