Contributor Guide
Operator Development
The Netchecks operator is written in Rust using kube-rs. The probe CLI is written in Python.
Prerequisites
- Rust (latest stable)
- Docker
- kind for local Kubernetes clusters
- kubectl
- Helm
- uv for Python dependency management
Start a test cluster
kind create cluster --name netchecks-test
Build the Docker images
Build both the probe and operator images locally:
docker build -t ghcr.io/hardbyte/netchecks:local .
docker build -t ghcr.io/hardbyte/netchecks-operator:local operator/
Load them into Kind:
kind load docker-image ghcr.io/hardbyte/netchecks:local --name netchecks-test
kind load docker-image ghcr.io/hardbyte/netchecks-operator:local --name netchecks-test
Install the operator via Helm
helm dependency build operator/charts/netchecks
helm upgrade --install netchecks-operator operator/charts/netchecks/ \
-n netchecks --create-namespace \
--set operator.image.tag=local \
--set netchecks.image.tag=local
Building the Rust operator
cd operator
cargo build --workspace
cargo fmt --all
cargo clippy --all-targets --all-features -- -D warnings
Running the Python probe tests
uv run pytest
Cleanup
kind delete cluster --name netchecks-test