This documentation is for an unreleased version of Kaniop. View the latest stable documentation →

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

  1. Fork and Clone

    git clone https://github.com/<your-username>/kaniop.git
    cd kaniop
    
  2. Install Rust Toolchain

    rustup toolchain install stable
    rustup default stable
    rustup component add rustfmt clippy
    
  3. 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

  1. Create a Feature Branch

    git checkout -b feature/your-feature-name
    
  2. Make Your Changes

    • Write tests for new functionality
    • Update documentation as needed
    • Follow existing code style
  3. Test Your Changes

    make test
    make lint
    
  4. 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

Thank you for contributing to Kaniop!