Jumpstarter Service

When building a lab with many devices under test, it quickly becomes difficult to keep track of devices, schedule access for automated tests, and perform routine tasks such as batch updates.

Jumpstarter provides a Cloud Native service that can be installed in any Kubernetes cluster to manage connected clients and exporters.

If you’re already using a Kubernetes-native CI tool such as Tekton, Jenkins X, or GitLab CI, Jumpstarter can integrate directly into your existing cloud or on-prem cluster.

Controller

The core of the Jumpstarter service is the Controller, which manages access to devices, authenticates clients/exporters, and maintains a set of labels to easily identify specific devices.

The Controller is implemented as a Kubernetes controller using Custom Resource Definitions (CRDs) to store information about clients, exporters, leases, etc.

Leases

When a client requests access to an exporter and a matching instance is found, a Lease is created. The lease ensures that each lesee (client) has exclusive access to a specific device/exporter.

Clients can be scheduled to access a specific exporter or any exporter that matches a set of requested labels, similar to node selection in Kubernetes. This enable flexible CI-driven testing even when physical resources are limited.

Router

The Router service is used by the controller to route messages between clients and exporters through a gRPC tunnel. This enables remote access to exported interfaces via a the client.

Once a lease is established, all traffic between the client and the exporter flows through a router instance. While there may only be one controller, the router can be scaled to handle traffic from many clients/exporters simultaneously.