Python Packages and CLI¶
Release install¶
The Jumpstarter Python packages contain all the necessary tools to run an exporter or interact with your hardware as a client.
The Python package can be installed using pip
or similar, Python >=3.11 is required.:
$ pip3 install --extra-index-url https://docs.jumpstarter.dev/packages/simple \
jumpstarter-all
$ mkdir -p "${HOME}/.config/jumpstarter/"
$ sudo mkdir /etc/jumpstarter
Tip
This will install the jumpstarter
packages globally, when using Jumpstarter
as a library, it is recommended to install the package in a virtual environment
instead. i.e.
$ python3 -m venv ~/.venv/jumpstarter
$ source ~/.venv/jumpstarter/bin/activate
$ pip3 install ….
An alternative to installing the packages is to use the container package.
Development install¶
Jumpstarter is under heavy development, and new features are added frequently, we perform basic
e2e testing and thorough unit testing, so we recommend installing the latest version from the
main
branch.
For this you will need a few tools like uv
, make
and git
.
$ sudo dnf install -y uv make git
# Clone the repository
$ git clone https://github.com/jumpstarter-dev/jumpstarter.git
$ cd jumpstarter
$ rm .python-version # remove the python version pining
$ make # creates the dist directory with all the packages
$ make sync # installs the packages in a local .venv
# create the configuration directories
$ mkdir -p "${HOME}/.config/jumpstarter/"
$ sudo mkdir /etc/jumpstarter
Then you can use the jumpstarter cli commands by activating the Python virtual environment:
$ source .venv/bin/activate
$ jmp version
Tip
If you configured a jmp / jmp-exporter or jmp-client alias to use the container
please undefine those aliases before running the jmp
command.
i.e. unalias jmp
Running in a Container¶
For interacting with the Jumpstarter service without installing the Python
packages locally, you can create an alias to run the jmp
client in a container.
Tip
It is recommended to add the alias to your shell profile.
$ alias jmp-client='podman run --rm -it -w /home \
-v "$(pwd):/home":z \
-v "${HOME}/.config/jumpstarter/:/root/.config/jumpstarter":z \
quay.io/jumpstarter-dev/jumpstarter:latest jmp-client'
Then you can try:
$ jmp-client list-configs
CURRENT NAME ENDPOINT PATH
* default grpc.devel.jumpstarter.dev:443 /root/.config/jumpstarter/clients/default.yaml
test grpc.devel.jumpstarter.dev:443 /root/.config/jumpstarter/clients/test.yaml
Hardware Access for Exporters¶
If you need access to your hardware, i.e. because you are running the jmp exporter
or you are following the local-only workflow
(i.e. without a distributed service), you need to mount access to devices into
the container, provide host network access, and run the container in privileged
mode, this probably needs to be run as root.
$ mkdir -p "${HOME}/.config/jumpstarter/" /etc/jumpstarter
# you may want to add this alias to the profile
$ alias jmp-exporter='podman run --rm -it \
-v "${HOME}/.config/jumpstarter/:/root/.config/jumpstarter":z \
--net=host --privileged \
-v /run/udev:/run/udev -v /dev:/dev -v /etc/jumpstarter:/etc/jumpstarter:z \
quay.io/jumpstarter-dev/jumpstarter:latest jmp-exporter'
Python Components¶
The Jumpstarter packages which can be installed are:
Component |
Description |
---|---|
The core Jumpstarter Python package. This is necessary to lease and interact with the exporters, it’s also the component that runs on the exporter hosts as a service. In most cases installation is not necessary and can be consumed through another package such as |
|
A metapackage containing all of the Jumpstarter CLI components including the cluster admin CLI |
|
The Jumpstarter admin CLI ( |
|
The Jumpstarter client CLI ( |
|
All community and official driver packages that are distributed as part of Jumpstarter are prefixed with |
|
All community and official adapter packages that are distributed as part of Jumpstarter are prefixed with |
|
A library to perform image checking from video inputs using the simple python imagehash library |
|
Testing tools for writing Jumpstarter-powered tests with |