Development Guide
This guide covers local development for contributors.
Requirements
- Go version from
go.mod - Docker or compatible container tool
- Helm 3
- kubectl
- kind
- Python 3.12+ and uv for Python Runtime work
Pinned tool versions are declared in Makefile. The Make targets install or
verify local tools before use.
Repository Setup
git clone https://github.com/kruntimes/kruntimes.git
cd kruntimes
make test
Generate Code and CRDs
make generate manifests
Generated files must stay current. CI fails if generation changes tracked files.
Build Binaries
make build
Individual targets:
make build-scheduler
make build-controller
make build-runtimed
make build-cli
make build-bash-runtime
Build Images
make docker-build
Override image names:
IMG_CONTROLLER=ghcr.io/example/controller:dev make docker-build-controller
Local E2E Environment
make e2e-setup
make e2e-test
Or run both:
make e2e
Clean up:
make e2e-cleanup
Python Runtime
cd runtimes/python
uv sync --frozen
uv run --frozen python -m unittest server_test -v
Regenerate Python protobuf stubs from the repository root:
make proto-python
Contribution Flow
- Open or reference an issue when the change is non-trivial.
- Create a branch.
- Keep changes focused.
- Run the relevant tests.
- Open a PR using the template.
Read CONTRIBUTING.md , GOVERNANCE.md , and CODE_OF_CONDUCT.md .
API Compatibility
The project is currently experimental. Even so, public API and CRD changes should include:
- generated CRD updates,
- tests,
- documentation updates,
- changelog entry when user-visible.