Thanks for your interest in contributing! This document covers the basics for getting started.
- Go 1.26+
- Docker or Podman
- Helm 3
- A Kubernetes cluster (Docker Desktop, kind, or minikube)
- golangci-lint
git clone https://github.com/slauger/openvox-operator.git
cd openvox-operator
make buildmake test # Unit tests
make lint # Linting
make helm-lint # Helm chart linting
make ci # All CI checks (lint, test, vet, helm-lint, check-manifests)Build all container images and deploy to your local cluster:
make local-deployDeploy a stack for testing:
make local-stackE2E tests use Chainsaw and require a running cluster:
make e2e- Fork the repository
- Create a feature branch from
develop(feat/my-featureorfix/my-fix) - Make your changes
- Run
make cito verify everything passes - Commit with a descriptive message following Conventional Commits
- Open a pull request against
develop
developis the main development branch - all PRs targetdevelopmainis the release branch - only receives merges fromdevelop- Branch naming:
feat/<topic>,fix/<topic>,ci/<topic>,docs/<topic>
git fetch origin develop
git checkout -b feat/my-feature origin/developWe follow Conventional Commits. Semantic-release uses these to determine version bumps automatically.
feat: add new feature # minor version bump
fix: resolve bug in controller # patch version bump
docs: update README
ci: add workflow for E2E tests
chore: update dependencies
refactor: simplify reconcile loop
test: add unit tests for helpers
After modifying CRD types in api/v1alpha1/:
make generate manifestsThis regenerates CRD manifests, deepcopy methods, and copies CRDs into the Helm chart. Always commit the generated files. Run make check-manifests before opening a PR to verify nothing is out of date.
api/v1alpha1/ CRD type definitions
cmd/ Entrypoints (operator, ENC, autosign, report, mock)
internal/controller/ Reconcilers
charts/ Helm charts (openvox-operator, openvox-stack)
config/crd/bases/ Generated CRD manifests
tests/e2e/ Chainsaw E2E tests
images/ Containerfiles
docs/ Documentation
- Use GitHub Issues
- For security vulnerabilities, see SECURITY.md
By contributing, you agree that your contributions will be licensed under the Apache License 2.0.