dstack plugin that surfaces piqc GPU waste scanning when a GPU fleet or run is applied
Project description
paralleliq-dstack-plugin
A dstack plugin that surfaces piqc — Paralleliq's open-source GPU waste scanner — whenever a GPU fleet or run is applied to a dstack project.
What it does
When a user runs dstack apply on a fleet or task that requests GPU resources, the plugin prints a one-time message showing how to run a GPU waste scan against the cluster:
╔══════════════════════════════════════════════════════════════════╗
║ Paralleliq — GPU fleet detected ║
║ ║
║ Run a free GPU waste scan on this cluster: ║
║ ║
║ kubectl apply -f https://.../deploy/rbac.yaml ║
║ kubectl apply -f https://.../deploy/scan-job.yaml ║
║ kubectl logs -n kube-system job/piqc-scan ║
║ ║
║ github.com/paralleliq/piqc · paralleliq.ai ║
╚══════════════════════════════════════════════════════════════════╝
The two kubectl commands:
- Apply RBAC — creates a
ServiceAccount,ClusterRole, andClusterRoleBindingscoped to what piqc needs - Run the scan — launches a one-shot K8s Job using
ghcr.io/paralleliq/piqc:latest
Results appear in the job logs. The job auto-deletes after 10 minutes.
Why kubectl instead of a dstack task?
piqc needs cluster-wide Kubernetes API access — to list pods, deployments, and nodes, and to exec into pods to run nvidia-smi. dstack does not currently support specifying a serviceAccountName in task configuration, so a dstack task would run with the namespace default service account and have no cluster permissions.
Using standard K8s manifests lets piqc work correctly on any Kubernetes cluster, dstack-managed or not.
Installation
Install on the server where dstack is running:
pip install paralleliq-dstack-plugin
dstack discovers plugins automatically via Python entry points — no additional configuration required.
Requirements
- dstack >= 0.19 (server-side installation)
- kubectl access to the cluster (for running the scan commands)
piqc
piqc is open-source. Source and docs: github.com/paralleliq/piqc
Built by Paralleliq
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file paralleliq_dstack_plugin-0.1.0.tar.gz.
File metadata
- Download URL: paralleliq_dstack_plugin-0.1.0.tar.gz
- Upload date:
- Size: 2.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.8.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3d0b834d90ab575e7c2e5cd154878f1f1275953413c808fb133ab8fdd05bea21
|
|
| MD5 |
7a03f07def88cc5fcc560e5fa8e2204a
|
|
| BLAKE2b-256 |
0283ec735fd35b210d0cb4ca6e9f14fe60ce87d0049ff0c054d925b7fa70bf20
|
File details
Details for the file paralleliq_dstack_plugin-0.1.0-py3-none-any.whl.
File metadata
- Download URL: paralleliq_dstack_plugin-0.1.0-py3-none-any.whl
- Upload date:
- Size: 3.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.8.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a37a839856252b612d0ca7cc5e77924e123db98a7d52b8cc0bf76144c4691366
|
|
| MD5 |
cfc488587f42935f6fb2deaada7f4747
|
|
| BLAKE2b-256 |
99fdd7476140e4b914ae0085555459dcf8f15e3a1285eeeada4020ff9eefc881
|