Contributing
We welcome contributions to Kaniop! This guide will help you get started with development and contributing to the project.
Development Environment Setup
Prerequisites
- Rust: Install the latest stable Rust toolchain
- Kubernetes: Access to a Kubernetes cluster (kind, minikube, or remote)
- kubectl: Kubernetes command-line tool
- Helm: Package manager for Kubernetes
- Docker: For building container images
Getting Started
-
Fork and Clone
git clone https://github.com/<your-username>/kaniop.git cd kaniop
-
Install Rust Toolchain
rustup toolchain install stable rustup default stable rustup component add rustfmt clippy
-
Build the Project
make build make test
Code Generation
Kaniop uses code generation for CRDs and examples:
Generate CRDs
make crdgen
Generate Examples
make examples
Testing
Unit Tests
make test
Integration Tests
Integration tests require a running Kubernetes cluster:
make integration-test
End-to-End Tests
Full E2E tests including Kanidm deployment:
make e2e-test
Contribution Guidelines
Pull Request Process
-
Create a Feature Branch
git checkout -b feature/your-feature-name
-
Make Your Changes
- Write tests for new functionality
- Update documentation as needed
- Follow existing code style
-
Test Your Changes
make test make lint
-
Commit and Push
git commit -m "feat: add new feature description" git push origin feature/your-feature-name
Follow Conventional Commits format.
Documentation
Book Documentation
Preview the documentation book:
make book
Keep docs in sync with code changes and CRD definitions.
Community
- GitHub Issues: Report bugs or request features
- GitHub Discussions: Ask questions and discuss ideas
Thank you for contributing to Kaniop!