feat: add hub command to browse and deploy from the runpod hub#262
feat: add hub command to browse and deploy from the runpod hub#262TimPietruskyRunPod wants to merge 4 commits intomainfrom
Conversation
|
📝 Documentation updates detected! Updated existing suggestion: Update runpodctl documentation for v2.0 Tip: Create additional Docs Collections to keep multiple repositories in sync 📚 |
adds `runpodctl hub` command group to browse, search, and get details from the runpod hub marketplace. also adds `--hub-id` flag to `serverless create` to deploy endpoints directly from hub listings without needing to create a template first. new commands: - hub list (with --type, --category, --order-by, --owner filters) - hub search <term> - hub get <id-or-owner/name> serverless create --hub-id resolves the listing, extracts the build image and config, creates an inline template via graphql, and deploys the endpoint — matching the web ui flow.
adds two eval scenarios to test whether an agent can discover and deploy serverless endpoints from the runpod hub using the new hub commands and --hub-id flag.
…hub release - serverless template creation via REST fails because the api rejects volumeInGb on serverless templates even when set to 0; skip sending volume fields when --serverless is set - include tests field in hub release get response so agents can use the pre-built test payloads to call deployed endpoints
6c73c06 to
a41be3c
Compare
max4c
left a comment
There was a problem hiding this comment.
Looks good — clean command structure, solid E2E coverage, and good UX touches (owner/name format, helpful error messages). A couple minor suggestions for follow-up: (1) document that --type filtering is client-side so limit may return fewer results than expected, (2) check for double error output from output.Error + RunE return, (3) consider resolving the hardcoded listing ID in TestCLI_ServerlessCreateFromHub dynamically. None are blockers.
- document that --type filtering is client-side so --limit may return fewer results than expected (list and search help text) - resolve hardcoded vllm listing id in TestCLI_ServerlessCreateFromHub dynamically via hub get runpod-workers/worker-vllm - note: double error output is not an issue — SilenceErrors is true in root.go, so output.Error + return err is the intended pattern
|
thanks for the review @max4c! addressed all three points in 351603f:
|
Summary
runpodctl hubcommand group (list, search, get) to browse the RunPod Hub marketplace via the existing GraphQLlistingsAPI--hub-idflag toserverless createas an alternative to--template-id, enabling one-command deployment from hub repos--hub-idis used, the CLI resolves the listing, extracts the build image and config from the latest release, creates an inline template via the GraphQLsaveEndpointmutation (matching the web UI flow), and deploys the endpointNew commands
Serverless create from hub
runpodctl hub search vllm runpodctl serverless create --hub-id cm8h09d9n000008jvh2rqdsmb --name "my-vllm"GPU IDs and container disk size are automatically pulled from the hub release config. Users can override with
--gpu-id.Test plan
go test ./...)