Thank you for your interest in contributing to kflashback! This document provides guidelines and information for contributors.
This project follows the CNCF Code of Conduct. By participating, you are expected to uphold this code.
- Use GitHub Issues to report bugs or request features.
- Search existing issues before creating a new one.
- Include steps to reproduce, expected behavior, and actual behavior.
- Include Kubernetes version, kflashback version, and relevant logs.
- Fork the repository and create a branch from
main. - Sign off your commits using
git commit -s(DCO requirement). - Write tests for new functionality.
- Run checks locally before submitting:
make fmt make vet make lint make test - Keep PRs focused - one feature or fix per PR.
- Update documentation if your change affects user-facing behavior.
All commits must be signed off to certify you have the right to submit the code:
Signed-off-by: Your Name <your.email@example.com>
Use git commit -s to automatically add this.
- Go 1.22+
- Node.js 20+
- Docker (for image builds)
- A Kubernetes cluster (kind, minikube, etc.)
kubectlconfigured
# Clone the repository
git clone https://github.com/kflashback/kflashback.git
cd kflashback
# Build the binary
make build
# Install UI dependencies and build
make ui-install
make ui-build
# Run locally against your cluster
make runmake testAfter modifying CRD types in api/v1alpha1/types.go:
make generate| Directory | Description |
|---|---|
api/v1alpha1/ |
CRD type definitions |
cmd/kflashback/ |
Main entrypoint |
internal/controller/ |
Kubernetes controllers |
internal/diff/ |
JSON diff/patch engine |
internal/server/ |
REST API server |
internal/storage/ |
Storage backends |
ui/ |
React dashboard |
config/ |
Kubernetes manifests |
- Go: Follow standard Go conventions. Run
make fmtandmake vet. - TypeScript/React: Follow existing patterns in the UI codebase.
- Commits: Use conventional commit messages (
feat:,fix:,docs:, etc.).
Releases are automated via GitHub Actions on tag push. Version tags follow semantic versioning (v0.1.0).
- Open a GitHub Issue for bugs or feature requests.
- Start a GitHub Discussion for questions or ideas.