CR(D) Wizard is a tool designed to provide a clear and intuitive interface for visualizing and exploring Kubernetes Custom Resource Definitions (CRDs) and their corresponding Custom Resources (CRs). It helps developers and cluster administrators quickly understand the state of their custom controllers and the resources they manage.
CR(D) Wizard is available as both a web-based dashboard and a TUI (Text-based User Interface). This allows you to choose the interface that best suits your workflow, whether you prefer a graphical interface or a lightweight, terminal-based view.
kubectl krew install crd-wizardbrew tap pehlicd/crd-wizard https://github.com/pehlicd/crd-wizard
brew install crd-wizard${aurHelper:-paru} -S crd-wizard-binYou can install the latest version with one command:
sh -c "$(curl -sSflL 'https://raw.githubusercontent.com/pehlicd/crd-wizard/main/install.sh')"Install a specific version: Set the CRD_WIZARD_VERSION environment variable.
CRD_WIZARD_VERSION="0.0.1" sh -c "$(curl -sSflL 'https://raw.githubusercontent.com/pehlicd/crd-wizard/main/install.sh')"Install to a custom directory: Pass the desired path as an argument.
sh -c "$(curl -sSflL 'https://raw.githubusercontent.com/pehlicd/crd-wizard/main/install.sh')" -- /my/custom/bingo install github.com/pehlicd/crd-wizard@latestYou can deploy CRD Wizard to your Kubernetes cluster using Kustomize.
Default Deployment (uses latest tag):
kubectl apply -k deploy/k8s/baseInstall directly from GitHub: You can also deploy directly without cloning the repository:
kubectl apply -k 'github.com/pehlicd/crd-wizard/deploy/k8s/base?ref=main'Custom Deployment (specify version): If you need to use a specific version due to cluster policies or stability requirements:
cd deploy/k8s/base
kustomize edit set image ghcr.io/pehlicd/crd-wizard:v0.1.6
kubectl apply -k .The deployment includes:
- Deployment: Runs the web server.
- Service: Exposes port 80 utilizing port 8080.
- Ingress: Provides external access (check
deploy/k8s/base/ingress.yamlfor annotations). - RBAC:
ClusterRolewith extensive permissions to visualize all resources.
Using CR(D) Wizard is super simple. Just run the following command:
crd-wizard webOR if you don't want to leave your terminal run:
crd-wizard tuik9s plugin
plugins:
crd-wizard:
shortCut: Shift-W
description: CRD Wizard
dangerous: false
scopes:
- crds
command: bash
background: false
confirm: false
args:
- -c
- "crd-wizard tui --kind $COL-KIND"CR(D) Wizard includes a powerful documentation generator that can convert your CRDs into beautiful, readable HTML or Markdown files.
- Live Preview: Real-time preview of your documentation as you edit or upload CRDs.
- Multiple Inputs: Support for raw YAML/JSON, file uploads, and direct Git Provider URLs (GitHub/GitLab).
- Export Formats: Export as standalone HTML pages or Markdown (ideal for READMEs).
- Batch Export: Export documentation for all CRDs in your cluster at once as a ZIP archive.
- Navigate to the Generator page in the Web UI.
- Input:
- Paste raw CRD content.
- Upload a file.
- Or paste a Git URL (e.g.,
https://github.com/prometheus-operator/.../alertmanager.yaml).
- Preview: Instantly see how the documentation looks.
- Export: Click "Download" to save the file.
- Batch Export: On the main CRD list page, click the "Export All" button in the toolbar to download a ZIP of all CRDs.
You can also generate documentation directly from the CLI:
# From a local file
crd-wizard generate -f path/to/crd.yaml
# From a Git URL
crd-wizard generate --url https://github.com/user/repo/blob/main/crd.yaml
# Export a single CRD from the cluster
crd-wizard export alertmanagers.monitoring.coreos.com
# Export all CRDs to Markdown
crd-wizard export --all --format md --output ./docs/CR(D) Wizard integrates with LLMs to provide intelligent documentation and explanations for your CRDs.
You can enable AI features by passing the --enable-ai flag. By default, it uses Ollama running locally.
Ollama (Default):
crd-wizard tui --enable-ai
# Defaults to http://localhost:11434 and model 'llama3.1'Google Gemini:
crd-wizard tui --enable-ai \
--ai-provider gemini \
--gemini-api-key "YOUR_API_KEY"In the CRD list view, navigate to a CRD and press a.
An overlay will appear showing the AI-generated analysis of the CRD schema.
When AI is enabled, the web interface exposes AI features (via /crd/generate-context endpoint) to provide insights directly in the dashboard.
CR(D) Wizard supports managing CRDs across multiple Kubernetes clusters seamlessly. It automatically discovers all contexts defined in your kubeconfig file.
- Auto-Discovery: Automatically loads all valid contexts from
~/.kube/config. - Context Switching: Switch between clusters instantly without restarting the application.
- Unified Interface: Available in both the Web UI and TUI.
- Web UI: Use the cluster selector dropdown in the top navigation bar to switch contexts. The selection persists across sessions.
- TUI: Press
cto open the cluster selection dialog and switch contexts instantly.
If you'd like to contribute to CR(D) Wizard, feel free to submit pull requests or open issues on the GitHub repository. Your feedback and contributions are highly appreciated!
Thank you for contributing, you're awesome 🫶
This project is licensed under the GPL-3.0 - see the LICENSE file for details.