You can use devspaces, devcontainers, or your favorite OS/distro to develop Jumpstarter, however the following examples are for Fedora 43.
Jumpstarter is programmed in Python and Go, the Jumpstarter controller is written in Go, while the core and drivers are written in Python.
The Jumpstarter core and drivers live in the jumpstarter repository.
We use uv as our python package and project
manager, and make as our build interface.
To install the basic set of dependencies, run the following commands:
$ sudo dnf install -y python-devel g++ make git uv qemu qemu-user-staticThen you can clone the project and build the virtual environment with:
$ git clone https://github.com/jumpstarter-dev/jumpstarter.git
$ cd jumpstarter
$ make syncAt this point you can run any of the jumpstarter commands prefixing them with
uv run:
$ uv run jmpTo run the tests, you can use the make command:
$ make testYou can also run specific tests with:
$ make test-pkg-${package_name}The Jumpstarter controller lives in the jumpstarter-controller repository.
To install the basic set of dependencies, run the following commands:
$ sudo dnf install -y git make golang kubectlThen you can clone the project and build the project with:
$ git clone https://github.com/jumpstarter-dev/jumpstarter-controller.git
$ cd jumpstarter-controller
$ make buildAt this point you can deploy the controller in a kubernetes cluster in docker
(kind) with:
$ CONTAINER_TOOL=podman make deployAnd you can cleanup and stop the controller/cluster with:
$ CONTAINER_TOOL=podman make cleanTo run the tests, you can use the make command:
$ make test