Thank you for your interest in contributing! This guide will help you get started.
- Go 1.22+
- Docker
- kind (for local testing)
- Helm 3.0+
- kubectl
# Clone the repository
git clone https://github.com/varaxlabs/onax.git
cd onax
# Install dependencies
go mod download
# Run tests
make test
# Build binary
make build
# Build Docker image
make docker-build# Create a kind cluster with Prometheus
make kind-create
# Load the image into kind
kind load docker-image ghcr.io/varaxlabs/onax:latest --name cronjob-monitor-test
# Deploy
make deploy
# Deploy test CronJobs
kubectl apply -f examples/basic-cronjob.yaml
# Check metrics
kubectl port-forward -n monitoring svc/onax 8080:8080
curl http://localhost:8080/metrics | grep cronjob_monitor- Fork the repository
- Create a feature branch:
git checkout -b feature/my-feature - Make your changes
- Run tests:
make test - Run linting:
make lint - Commit your changes with a descriptive message
- Push to your fork and open a Pull Request
- Follow standard Go conventions
- Run
go fmtandgo vetbefore committing - Write tests for new functionality
- Maintain >80% test coverage
- Keep PRs focused on a single change
- Include tests for new features
- Update documentation if needed
- Ensure CI passes
- Use the GitHub issue templates
- Include Kubernetes version, operator version, and relevant logs
- Provide steps to reproduce
By contributing, you agree that your contributions will be licensed under the Apache 2.0 License.