This web application aims to offer a simple dashboard for Crossplane v2.
Deploy it quickly in the cluster where crossplane is installed, access the web
application and instantly discover all the crossplane resources whether they are
cluster scope (crossplane-system namespace) or namespace scope
(leaving in any from any other namespace).
The application discover and list each kind of resources (Provider,
ProviderConfig, XRD, Composition, XR, Functions) with the related
status conditions, and help understanding relations between each type of object.
Resources list can be filtered regarding multiple criteria in order easily find what you're looking for.
Data are frequently refreshed to see any changes.
- Resource Discovery: Automatically discover all Crossplane resources in your cluster
- Scope Awareness: Clear distinction between cluster-scoped and namespace-scoped resources
- Detailed Status Monitoring:
- Providers & Functions: View Installed + Healthy status
- XRDs: View Established status
- Composite Resources: View Ready/Synced status
- Package Organization: Display package and API group for each resource to understand naming strategies
- Relationship Mapping: Understand connections between resources (XRDs, Compositions, XRs)
- Educational Tool: Helps visualize Crossplane v2 concepts and multi-tenancy
# Build the image
make docker-build
# Run the container
make docker-runAccess the dashboard at http://localhost:3000.
# Install in your cluster
helm install crossplane-spy ./helm/crossplane-spy
# Port-forward to access locally
kubectl port-forward svc/crossplane-spy 3000:3000# Start both backend and frontend
make devSee Development Guide for detailed instructions.
graph LR
subgraph Frontend
A[Next.js App] -->|HTTP| B
end
subgraph Backend
B[Go Backend API] -->|Kube API| C
end
C[(Kubernetes Cluster)]
Read more in Architecture Documentation.
- Architecture - System design and component overview
- Development Guide - How to develop and contribute
- Backend README - Backend-specific documentation
- Frontend README - Frontend-specific documentation
Backend
- Go 1.23+
- Gin web framework
- Kubernetes client-go
Frontend
- Next.js 15
- TypeScript
- TailwindCSS
- shadcn/ui components
This is an educational tool for the Crossplane community. Contributions are welcome!
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'feat: add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.
- Monitor Crossplane installation health
- Understand resource relationships
- Debug composition issues
- Validate multi-tenancy setup
- Learn Crossplane v2 concepts
- Visualize cluster vs namespace scope
- Understand package and CRD naming conventions
- See real-time impact of changes
- Kubernetes cluster with Crossplane v2 installed
- Read-only access to Crossplane resources (via RBAC)