/jobrunner

A job worker service to run processes on Linux or Darwin hosts.

Primary LanguageGoApache License 2.0Apache-2.0

🏃‍ Job Runner

A prototype job worker service that provides a gRPC API to run arbitrary processes on Linux or Darwin hosts.

Features:

  • RPCs to start, stop, and query a process.
  • Stream RPC to follow logs of a process (supports multiple concurrent clients).
  • Clients authenticated with mTLS.
  • Access control list authorization.

🚀 Running

Before proceeding, please ensure you have Docker installed and running.

  1. Generate certificates using cfssl (bundled as a module dependency).

    make gencert
  2. Build the jobrunner image.

    make build
  3. Run the jobrunner gRPC service.

    make run
  4. Make requests to localhost:9090 using a gRPC client or simply run the integration test using make integration.

🔬 Testing

  • Unit tests: make unit
  • Integration tests (server must be running): make integration