A free, open source tool for automated testing on real and virtual hardware with CI/CD integration. Simplify device automation with consistent rules across local and distributed environments.
- ๐งช Unified Testing - One tool for local, virtual, and remote hardware
- ๐ Python-Powered - Leverage Python's testing ecosystem
- ๐ Hardware Abstraction - Simplify complex hardware interfaces with drivers
- ๐ Collaborative - Share test hardware globally
- โ๏ธ CI/CD Ready - Works with cloud native developer environments and pipelines
- ๐ป Cross-Platform - Supports Linux and macOS
This monorepo contains all Jumpstarter components:
| Directory | Description |
|---|---|
python/ |
Python client, CLI, drivers, and testing framework |
controller/ |
Kubernetes controller and operator (Jumpstarter Service) |
protocol/ |
gRPC protocol definitions (protobuf) |
e2e/ |
End-to-end testing infrastructure |
pip install --extra-index-url https://pkg.jumpstarter.dev/ jumpstarter-cliOr install all Python components:
pip install --extra-index-url https://pkg.jumpstarter.dev/ jumpstarter-allTo install the Jumpstarter Service in your Kubernetes cluster, see the Service Installation documentation.
The Python implementation provides:
jmpCLI tool for interacting with hardware- Client libraries for test automation
- Hardware drivers for various devices
- Testing framework integration
See python/README.md for details.
The Kubernetes-native service that provides:
- Centralized hardware management
- Client and exporter routing
- Authentication and authorization
- Multi-tenant support
Prerequisites:
- Kubernetes v1.11.3+
- kubectl v1.11.3+
See controller/README.md for deployment instructions.
The gRPC-based communication layer that enables:
- Unified interface for virtual and physical hardware
- Secure communication over HTTPS
- Tunneling support for Unix sockets, TCP, and UDP
- Flexible topology with direct or routed connections
See protocol/README.md for details.
Comprehensive testing infrastructure for the entire Jumpstarter stack:
setup-e2e.sh- One-time environment setup (auto-installs bats libraries on macOS)run-e2e.sh- Quick test runner for iterationsaction.yml- GitHub Actions composite action for CI/CD- Full integration tests covering authentication, exporters, and clients
Run e2e tests locally:
# First time setup
make e2e-setup
# Run tests (repeat as needed)
make e2e # or: make e2e-run
# Or full setup + run in one command
make e2e-full
# Clean up e2e environment (delete cluster, certs, etc.)
make e2e-clean- Python 3.11+ (for Python components)
- Go 1.22+ (for controller)
- Docker/Podman (for container builds)
- kubectl (for Kubernetes deployment)
# Build all components
make all
# Build specific components
make python # Python packages
make controller # Controller binary
make protocol # Generate protocol code
# Run tests
make test
# Run end-to-end tests
make e2e-setup # First time only
make e2e # Run tests
make e2e-clean # Clean up# Start a local development environment
make devJumpstarter's documentation is available at jumpstarter.dev.
Jumpstarter welcomes contributors of all levels of experience! See the contributing guide to get started.
Jumpstarter is licensed under the Apache 2.0 License (LICENSE or https://www.apache.org/licenses/LICENSE-2.0).