Skip to content
This repository was archived by the owner on Jan 23, 2026. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .python-version
Original file line number Diff line number Diff line change
@@ -1 +1 @@
3.12.3
3.12
3 changes: 2 additions & 1 deletion __templates__/driver/pyproject.toml.tmpl
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
[project]
name = "jumpstarter-driver-${DRIVER_NAME}"
version = "0.1.0"
dynamic = ["version", "urls"]
description = "Add your description here"
readme = "README.md"
license = { text = "Apache-2.0" }
authors = [
{ name = "${AUTHOR_NAME}", email = "${AUTHOR_EMAIL}" }
]
Expand Down
2 changes: 1 addition & 1 deletion docs/source/api-reference/drivers.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Driver API Reference
# Base Driver classes

```{warning}
This project is still evolving, so these docs may be incomplete or out-of-date.
Expand Down
2 changes: 1 addition & 1 deletion docs/source/api-reference/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
This section provides details on the Jumpstarter core API and contrib drivers.

```{toctree}
drivers.md
drivers/index.md
adapters/index.md
drivers.md
```
4 changes: 4 additions & 0 deletions docs/source/architecture.md
Original file line number Diff line number Diff line change
Expand Up @@ -171,3 +171,7 @@ block-beta

style hardware fill:#888,stroke:#333,stroke-width:4px
```

```{toctree}
drivers.md
```
8 changes: 0 additions & 8 deletions docs/source/cli-reference/index.md

This file was deleted.

24 changes: 8 additions & 16 deletions docs/source/cli/clients.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
# Manage Clients

The `jmpctl` admin CLI can be used to manage your client configurations
The `jmp admin` admin CLI can be used to manage your client configurations
on the distributed service.

## Creating a Client

If you have configured [a Jumpstarter service](../introduction/service.md)
and you have a kubeconfig, the `jmpctl` CLI will attempt to use
and you have a kubeconfig, the [`jmp admin` CLI](./reference/jmp-admin.md#jmp-admin-create-client) will attempt to use
your current credentials to provision the client automatically, and produce
a client configuration file.

Expand All @@ -18,12 +18,7 @@ You can also use the following options to specify kubeconfig and context to use:
To create a new client and its associated config, run the following command:

```bash
$ jmpctl client create john --namespace jumpstarter-lab > john.yaml
$ cat >> john.yaml <<EOF
drivers:
allow: []
unsafe: True
EOF
$ jmp admin create client john --namespace jumpstarter-lab --unsafe -o john.yaml
```

This creates a client named `john` and outputs the configuration to a YAML
Expand All @@ -39,14 +34,14 @@ endpoint: grpc.jumpstarter.192.168.1.10.nip.io:8082
token: <<token>>
tls:
ca: ''
insecure: True
insecure: False
drivers:
allow: []
unsafe: True
```

In addition we have included a `drivers` section in the configuration file, which
allows you to specify a list of allowed driver packages and enable unsafe mode (allow any driver).
We use the `--unsafe` setting that configures the `drivers` section to allow
any driver packages on the client.

```{warning}
This section can be important if you don't trust the exporter's configuration, since every
Expand All @@ -60,9 +55,6 @@ self-signed certificates.

### Manual Provisioning

If you do not have `jmpctl` installed or don't have direct access to the cluster,
a client can also be provisioned manually on a different machine.

1. Apply the YAML to your cluster:

```yaml
Expand All @@ -87,10 +79,10 @@ a client can also be provisioned manually on a different machine.

3. Those details can be installed as a secret on CI, or passed down to the final user.

Then the user can create the client performing:
Then the user can create the client using the [jmp client](./reference/jmp-client.md#jmp-client-create-config) CLI:

```bash
$ jmp create my-client
$ jmp client create-config my-client
Enter a valid Jumpstarter service endpoint: devl.jumpstarter.dev
Enter a Jumpstarter auth token (hidden): ***
Enter a comma-separated list of allowed driver packages (optional):
Expand Down
8 changes: 4 additions & 4 deletions docs/source/cli/exporters.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
# Manage Exporters

The `jmpctl` admin CLI can be used to manage your exporter configurations
The `jmp admin` admin CLI can be used to manage your exporter configurations
on the distributed service.

## Creating a exporter

If you have configured [a Jumpstarter service](../introduction/service.md)
and you have a kubeconfig, the `jmpctl` CLI will attempt to use
your current credentials to provision the client automatically, and produce
and you have a kubeconfig, the [`jmp admin` CLI](./reference/jmp-admin.md#jmp-admin-create-exporter)
will attempt to use your current credentials to provision the client automatically, and produce
a base exporter configuration file.

To connect a target device to Jumpstarter, an exporter instance must be registered.
Expand All @@ -17,7 +17,7 @@ the Kubernetes cluster where the `jumpstarter-controller` service is hosted.

```bash
# Create the exporter instance
$ jmpctl exporter create my-exporter --namespace jumpstarter-lab > my-exporter.yaml
$ jmp admin create exporter my-exporter --namespace jumpstarter-lab -o my-exporter.yaml
```

This creates an exporter named `my-exporter` and produces a YAML configuration file `my-exporter.yaml`:
Expand Down
21 changes: 0 additions & 21 deletions docs/source/cli/getting-started.md

This file was deleted.

7 changes: 5 additions & 2 deletions docs/source/cli/index.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,12 @@
# Command-Line Interface
To simplify the management and operation of Jumpstarter, we provide several command-line tools for different use cases. These CLI tools can also be installed together through the `jmpstarter-cli` package and accessed using the `jmp` command for simplicity.

Each tool can also be installed separately for users who want to reduce the dependencies on their developer machine or an embedded exporter with limited available resources.


```{toctree}
getting-started.md
reference/index.md
clients.md
exporters.md
run-tests.md
shell.md
```
43 changes: 43 additions & 0 deletions docs/source/cli/reference/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
# Reference

This section provides details on the Jumpstarter CLI.

## jmp

The base jmp command contains a set of subcommands for the different featuers, those
can also be installed and used independently as `jmp-admin`, `jmp-client`, and
`jmp-exporter`, `jmp-driver`.

```bash
jmp [OPTIONS] COMMAND [ARGS]...
```

### commands

```{toctree}
:maxdepth: 1
jmp-admin.md
```

The `jmp-admin` or `jmp admin` CLI allows administration of exporters and clients in a Kubernetes cluster. To use this CLI, you must have a valid `kubeconfig` and access to the cluter/namespace where the Jumpstarter controller resides.

```{toctree}
:maxdepth: 1
jmp-client.md
```

The `jmp-client` or `jmp client` CLI allows interaction with Jumpstarter as a clients.


```{toctree}
:maxdepth: 1
jmp-exporter.md
```
The `jmp-exporter` or `jmp exporter` CLI allows you to run Jumpstarter exporters as services, container, or standalone.

```{toctree}
:maxdepth: 1
jmp-driver.md
```

The `jmp-driver` or `jmp driver` CLI allows you to list and create Jumpstarter drivers.
7 changes: 7 additions & 0 deletions docs/source/cli/reference/jmp-admin.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# admin

```{eval-rst}
.. click:: jumpstarter_cli_admin:admin
:prog: jmp-admin
:nested: full
```
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
# jmp
# client

```{eval-rst}
.. click:: jumpstarter_cli_client:client
:prog: jmp
:prog: jmp-client
:nested: full
```

7 changes: 7 additions & 0 deletions docs/source/cli/reference/jmp-driver.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# driver

```{eval-rst}
.. click:: jumpstarter_cli_driver:driver
:prog: jmp-driver
:nested: full
```
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# jmp-exporter
# exporter

```{eval-rst}
.. click:: jumpstarter_cli_exporter:exporter
Expand Down
4 changes: 0 additions & 4 deletions docs/source/cli/shell.md

This file was deleted.

4 changes: 2 additions & 2 deletions docs/source/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -46,8 +46,8 @@
]
myst_substitutions = {
"requires_python": ">=3.11",
"version": "0.5.0",
"controller_version": "0.5.0",
"version": "latest",
"controller_version": "0-latest",
}

doctest_test_doctest_blocks = ""
Loading