runspec-rundeck
Sync your venv's runspec runnables to
Rundeck as jobs — a JVM-free replacement for
rd jobs load you can drop into a CI publish stage. When your internal runnables
are published and installed into a venv, rundeck sync makes every one of them
available on the Rundeck platform, with argument definitions always in sync.
pip install runspec-rundeck
Verbs
| Command | Autonomy | What it does |
|---|---|---|
rundeck sync |
confirm | Discover every runnable in the venv, emit a Rundeck job per leaf command, and import them into a project |
rundeck push |
confirm | Import already-emitted jobs/*.json files (the rd jobs load replacement) |
rundeck list |
autonomous | List a project's jobs |
How sync works
sync composes two stable runspec CLI surfaces — it does not reach into runspec
internals:
runspec emit --rundeck --stdout --project <p>renders one Rundeck job per leaf command (subcommands flatten likerunspec serve), baking a stableuuid5(project/group/job)into each.runspec local --format jsonsupplies each runnable'sdiscoverableflag, so hidden internal helpers are skipped (pass--allto include them).- The jobs are imported over the Rundeck REST API with
dupeOption=update&uuidOption=preserve, so a matching job is updated and a missing one created — rename-safe, because identity is the UUID.
--prune then deletes jobs in the managed group whose UUID wasn't in the push,
so a runnable removed from the venv has its job cleaned up.
Auth & environments
Auth is environment-variable first:
export RUNDECK_URL=https://rundeck.example.com
export RUNDECK_TOKEN=… # a Rundeck API token
export RUNDECK_PROJECT=ops
rundeck sync
Target several instances (dev/uat/prod, or regional labels like prod-eu) with
RUNDECK_<ENV>_* prefixes selected by --env:
export RUNDECK_PROD_EU_URL=https://rundeck.eu.example.com
export RUNDECK_PROD_EU_TOKEN=…
rundeck sync --env prod-eu --project ops
A CI matrix runs one invocation per instance. UUIDs only need to be unique within an instance, so the same emitted jobs push cleanly to every separate instance.
--token (a password arg) supplies the token through the runspec-console secret
channel instead; --url / --project / --api-version / --ca-bundle /
--proxy / --insecure override the environment for private-CA / proxied
instances.
Per-runnable Rundeck settings
Schedules, notifications, node filters, and the job group come from a
[<runnable>.meta.rundeck] table in the runnable's runspec.toml (project
defaults in [config.meta.rundeck]) — see the
Rundeck jobs docs. sync passes them straight
through the emitter.
Built on runspec-rundeck-core.
Release files for runspec-rundeck 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| runspec_rundeck-0.1.0.tar.gz | 11.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| runspec_rundeck-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 20.9 kB
Release files / runspec_rundeck-0.1.0.tar.gz
| Download URL | runspec_rundeck-0.1.0.tar.gz |
|---|---|
| Size | 11.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
a10fab3fdd301d1bbd64113573d7ba507cd7f88d263cff0a7ac9c0031a1ebf09
|
|
BLAKE2b-256 checksum How to use checksums |
d04a7ba787ea631f0b0617a4c0916cee16cbb4f728bbeb93df9fa6e7b6b2d1c7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 23, 2026.
Transparency logRelease files / runspec_rundeck-0.1.0-py3-none-any.whl
| Download URL | runspec_rundeck-0.1.0-py3-none-any.whl |
|---|---|
| Size | 9.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
35fd74e06bb1ac97b8ca27a56fb2fe000475883b099d4330de6f5ffab068e800
|
|
BLAKE2b-256 checksum How to use checksums |
ee99dd3235ca74f877cc752788b7d1702ce31dc2b8320da24894289b2c8e2992
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 23, 2026.
Transparency log