Local Setup¶
Prerequisites¶
- Go (version from
go.mod) - Docker Desktop with Kubernetes enabled (or any local cluster)
- Helm 3.x
- kubectl
Clone and Build¶
Tool Dependencies¶
Go tool dependencies are managed via the tool directive in go.mod. This includes controller-gen, govulncheck, and chainsaw. No manual installation is needed -- Go resolves them automatically:
golangci-lint is the only tool managed externally. In CI it is provided by golangci-lint-action. For local usage, install it via the official instructions.
Deploy to Local Cluster¶
Build all container images and deploy the operator to your local cluster:
Deploy an OpenVox stack (single-node by default):
Use a different scenario:
Override the image tag:
Teardown¶
Remove everything (stack, operator, CRDs):
Code Generation¶
After modifying CRD types in api/v1alpha1/, regenerate manifests and deepcopy methods:
Check for drift (used in CI):
Makefile Targets¶
| Target | Description |
|---|---|
build |
Build operator binary |
manifests |
Generate CRD manifests |
generate |
Generate deepcopy methods |
local-build |
Build all container images with the current git commit as tag |
local-deploy |
Build images and deploy the operator via Helm |
local-install |
Deploy operator via Helm with local images (no build) |
local-stack |
Deploy openvox-stack via Helm with local images |
install |
Install operator via Helm with default images |
stack |
Deploy openvox-stack via Helm with default images |
uninstall |
Remove stack, operator, and CRDs from the cluster |
unstack |
Remove only the openvox-stack |
ci |
Run all CI checks locally |