Releases: jumpstarter-dev/jumpstarter
Developer Preview
Jumpstarter v0.8.1 — Release notes
This release begins with version v0.8.1, as version v0.8.0 was accidentally released previously and cannot be undone.
What's new
- Operator-first installation: Helm-based service installs are now deprecated; operator installs are the recommended and supported path for production and new environments.
- OCI-based flashing improvements: Improved
oci://handling, private registry authentication, and more robust remote flashing behavior with retries and timeouts. - Sparse and partition workflows: Improved sparse image support; through
flsandfastboot, theflashersandridesx4drivers can now flash sparse images (simg) encapsulated in OCI artifacts, properly built .simg files can improve flashing times by x2-x10 by avoiding don't care areas in the images. - Authentication and login UX: Continued improvements to simplified login flows and operator-managed endpoint behavior.
- Platform growth: Monorepo transition completed in this release cycle, featuring ongoing operator and driver refinements and more robust CI.
- Monorepo: Python packages, protocol, Kubernetes operator, and automation are now in a single repository (UV workspace under
python/). - CLI & auth: Simplified
jmp login, default client selection after OIDC login, and various auth UX and configuration fixes.
Driver updates
The table below summarizes driver-level changes in v0.8.1.
Status = New driver indicates the package was added during the 0.8 release cycle.
| Driver | Status | Notable updates in 0.8 line |
|---|---|---|
ble |
New driver | Added BLE stream driver and fixed console behavior |
ssh-mitm |
New driver | Added SSH MITM driver; evolved architecture and compatibility |
flashers |
Updated | Added --no-power-off to flashers; chunk long credentials over serial |
http |
Updated | Tracked rename/delete/copy operations; removed created HTTP/TFTP files by default |
iscsi |
Updated | Addressed review fixes; added explicit requests dependency |
network |
Updated | noVNC updates (encrypt option, documentation, and coverage improvements) |
opendal |
Updated | Improved RideSX decompressed-file cleanup and remote hash behavior |
probe-rs |
Updated | Added speed configuration option |
pyserial |
Updated | Increased StreamReader limit; added disable_hupcl and --no-output support |
qemu |
Updated | Improved vsock availability check; added disk resize support |
ridesx |
Updated | Added OCI flashing support and reliability improvements |
shell |
Updated | Added per-method descriptions/timeouts and shared method infrastructure |
ssh |
Updated | stream_async now works as an async context manager; client refinements |
tftp |
Updated | Removed created files by default for cleanup consistency |
tmt |
Updated | Adjusted default reboot behavior and added --feeling-safe support |
uboot |
Updated | Improved error formatting and timeout forwarding in run_command() |
vnc |
Updated | New VNC driver line updates and noVNC encrypt support |
Installation
Installing the Jumpstarter service on Kubernetes or OpenShift should be done via the Jumpstarter Operator. The operator reconciles a Jumpstarter custom resource (operator.jumpstarter.dev/v1alpha1) and manages the controller, router, login endpoints, TLS integration with cert-manager, and related networking.
Documentation
Example
kubectl apply -f https://github.com/jumpstarter-dev/jumpstarter/releases/download/v0.8.1/operator-installer.yamlContributors
We would like to thank all our contributors, with a special shout-out to our new contributors:
| Commits (in range) | Name | GitHub |
|---|---|---|
| 33 | Evgeni Vakhonin | @evakhoni |
| 10 | Albert Esteve | @aesteve-rh |
| 5 | Mario Parra | @mparram |
| 2 | Andreas Karner | @whati001 |
| 2 | Christian Holl | @hochbit |
| 2 | Daniel Glaser | @the78mole |
| 2 | Jared Kangas | @rh-jkangas |
| 2 | Michael Kuehl | @mickume |
| 1 | Mohamad Abo Ras | @maboras-rh |
All contributors
- Albert Esteve (@aesteve-rh)
- Andreas Karner (@whati001)
- Bella Khizgiyaev (@bkhizgiy)
- Benny Zlotnik (@bennyz)
- Christian Holl (@hochbit)
- Daniel Glaser (@the78mole)
- Enric Balletbo i Serra (@eballetbo)
- Evgeni Vakhonin (@evakhoni)
- Jared Kangas (@rh-jkangas)
- Kirk Brauer (@kirkbrauer)
- Leonardo Rossetti (@odra)
- Michael Kuehl (@mickume)
- Michal Skrivanek (@michalskrivanek)
- Miguel Angel Ajo Pelayo (@mangelajo)
- Mohamad Abo Ras (@maboras-rh)
- Mario Parra (@mparram)
- Nick Cao (@NickCao)
- Paul Wallrabe (@raballew)
v0.8.1-rc.1
What's Changed
(this changelog spans the repo migration from jumpstarter-dev/jumpstarter-python / jumpstarter-dev/jumpstarter-controller into the new monorepo jumpstarter-dev/jumpstarter)
Legacy repo (jumpstarter-python) changes after c5d38de (v0.7.4)
- OIDC: allow providing a custom callback port by @evakhoni in jumpstarter-dev/jumpstarter-python#788
- ridesx: improve error for ridesx flashing by @bennyz in jumpstarter-dev/jumpstarter-python#790
- Add compressed image support for QEMU driver by @evakhoni in jumpstarter-dev/jumpstarter-python#789
- Add disk resize support for QEMU driver by @evakhoni in jumpstarter-dev/jumpstarter-python#793
- cli: add auth status by @bennyz in jumpstarter-dev/jumpstarter-python#791
- flashers: support flashing from OCI registries by @bennyz in jumpstarter-dev/jumpstarter-python#795
- cli: add jmp login --force by @bennyz in jumpstarter-dev/jumpstarter-python#797
- ridesx: support http and insecure https by @bennyz in jumpstarter-dev/jumpstarter-python#783
- Revert "ridesx: support http and insecure https" by @mangelajo in jumpstarter-dev/jumpstarter-python#802
- Nvdemux serial support by @mangelajo in jumpstarter-dev/jumpstarter-python#798
- console: do not reset console on exist by @mangelajo in jumpstarter-dev/jumpstarter-python#804
- quick fix qemu resize command by @evakhoni in jumpstarter-dev/jumpstarter-python#808
Legacy controller repo (jumpstarter-controller) changes after v0.7.1 (5cedce7)
- add online field to Exporter by @michalskrivanek in jumpstarter-dev/jumpstarter-controller#154
- log authentication error on exporter registration as Info by @michalskrivanek in jumpstarter-dev/jumpstarter-controller#155
- add missing nodeport option by @bennyz in jumpstarter-dev/jumpstarter-controller#156
- Support running additional routers by @NickCao in jumpstarter-dev/jumpstarter-controller#157
- Fixup validation of oidc configuration by @NickCao in jumpstarter-dev/jumpstarter-controller#159
- Fix typo in exporter online message by @mangelajo in jumpstarter-dev/jumpstarter-controller#161
- Offline exporters should be Pending and not Unsatisfiable by @mangelajo in jumpstarter-dev/jumpstarter-controller#166
- support future leases, calculate effective begin/end/duration lease times by @michalskrivanek in jumpstarter-dev/jumpstarter-controller#168
- Add the operator in deploy/operator by @mangelajo in jumpstarter-dev/jumpstarter-controller#169
- Operator: initial implementation by @mangelajo in jumpstarter-dev/jumpstarter-controller#170
- Fix crd generation to put files in the right directory by @mangelajo in jumpstarter-dev/jumpstarter-controller#171
- Add a backwards compatible only_active flag on list leases by @michalskrivanek in jumpstarter-dev/jumpstarter-controller#172
- operator: ingress support by @mangelajo in jumpstarter-dev/jumpstarter-controller#176
- operator: implement routes and api detection by @mangelajo in jumpstarter-dev/jumpstarter-controller#177
- fix race condition in beginlease test by @mangelajo in jumpstarter-dev/jumpstarter-controller#178
- Fix operator container building by @mangelajo in jumpstarter-dev/jumpstarter-controller#179
- e2e test the operator by @mangelajo in jumpstarter-dev/jumpstarter-controller#180
- fix label selector in jmp create lease by @mangelajo in jumpstarter-dev/jumpstarter-controller#184
- Update nginx wait for operator-e2e by @mangelajo in jumpstarter-dev/jumpstarter-controller#185
- operator: e2e ingress by @mangelajo in jumpstarter-dev/jumpstarter-controller#187
- Support migrated-namespace and migrated-uid annotations by @mangelajo in jumpstarter-dev/jumpstarter-controller#190
- operator: create basic bundle by @mangelajo in jumpstarter-dev/jumpstarter-controller#191
- feat: add external certificate support for controller and router and possibility to disable ingress and route generation by @hochbit in jumpstarter-dev/jumpstarter-controller#192
- fix: build of bundle failing in CI/merge by @mangelajo in jumpstarter-dev/jumpstarter-controller#193
- Add project badges to README by @the78mole in jumpstarter-dev/jumpstarter-controller#197
- support custom lease name request by @bennyz in jumpstarter-dev/jumpstarter-controller#198
- implement lease transfer by @bennyz in jumpstarter-dev/jumpstarter-controller#199
- operator: sensible defaults to allow minimal configuration Jumpstarter resource creation by @evakhoni in jumpstarter-dev/jumpstarter-controller#202
- operator: basedomain autodetect by @evakhoni in jumpstarter-dev/jumpstarter-controller#204
- operator: test coverage for ApplyEndpointDefaults by @evakhoni in jumpstarter-dev/jumpstarter-controller#205
- skip duration validation for lease transfer by @bennyz in jumpstarter-dev/jumpstarter-controller#206
- force secrets-job to run first by @mickume in jumpstarter-dev/jumpstarter-controller#207
Monorepo migration and jumpstarter changes up to v0.8.1-rc.1
- Moved into monorepo structure
- fix(controller): fix flaky test for competing scheduled leases by @mangelajo in #138
- import_pr fix "Script failed" after successful apply by @evakhoni in #143
- Gracefully handle missing driver client imports by @evakhoni in #142
- Update installation script path in documentation to monorepo by @mangelajo in #160
- build(deps): bump sigs.k8s.io/yaml from 1.4.0 to 1.6.0 in /controller/deploy/operator by @dependabot in #157
- build(deps): bump peter-evans/repository-dispatch from 3 to 4 by @dependabot in #153
- build(deps-dev): bump ruff from 0.9.2 to 0.14.14 in /python by @dependabot in #148
- build(deps): bump crate-ci/typos from 1.32.0 to 1.42.2 by @dependabot in #145
- router: cleanup pending entries once exporter and client are connected by @bennyz in #164
- operator: fix authentication spec api by @mangelajo in #137
- treewide: use fedora 43 by @NickCao in #166
- bump pyobjc-core to 12.1 by @bennyz in #171
- [python/qemu-driver] _vsock_available function changes by @odra in #169
- add offline access to allow refresh tokens by @bennyz in #163
- Operator cert manager by @mangelajo in #139
- build(deps): bump actions/upload-artifact from 4 to 6 by @dependabot in #150
- allow lease filtering by exporter labels by @evakhoni in #168
- Fix lease labels over-filtering by @evakhoni in #174
- chore: fix typos across codebase by @maboras-rh in #179
- e2e: run e2e testing with the operator as well by @mangelajo in #173
- ci: build expirable images for pull-requests by @mangelajo in #167
- tls: enable tls.ca setting in client/exporter config files by @mangelajo in #177
- tls ca distribution to OIDC login users + easier login by @mangelajo in #180
- ci: fix python skips by @mangelajo in #176
- ci: run PR workflows on top of any branch by @mangelajo in #197
- Adapt assistant rules to new format, and add CLAUDE.md by @mangelajo in #107
- build(deps): bump astral-sh/ruff-action from 3.3.1 to 3.6.1 by @dependabot in #183
- build(deps): bump actions/upload-pages-artifact from 3 to 4 by @dependabot in #188
- make pkg-test typo by @evakhoni in #198
- build(deps): bump astral-sh/setup-uv from 2 to 7 by @dependabot in #185
- ridesx: support OCI flashing by @bennyz in #195
- Update operator scripts for upstream repos by @mangelajo in #200
- ci: ru...