feat: expand runpodctl coverage with legacy-safe cli#229
Open
TimPietruskyRunPod wants to merge 24 commits intomainfrom
Open
feat: expand runpodctl coverage with legacy-safe cli#229TimPietruskyRunPod wants to merge 24 commits intomainfrom
TimPietruskyRunPod wants to merge 24 commits intomainfrom
Conversation
…urce groups - rename module from runpodctl to runpod and binary to runpod - change command structure from verb-noun to noun-verb pattern - add new resource command groups: serverless, template, volume, registry - add legacy command support for backward compatibility - create internal api layer with rest client and resource methods - add output formatting support (json/yaml/table) - enhance ssh key management and commands - update dependencies (cobra v1.8.1, viper v1.19.0) - update documentation and add agents.md for ai tooling - remove deprecated test files and consolidate version handling
- rename volume command to network-volume with alias 'nv' - remove table output format, keep only json and yaml - hide deprecated project command - update help text and command descriptions - simplify api test responses to use direct arrays - update all tests to reflect command rename and output changes
- add user command to show account info and balance (alias: me, account) - add gpu command to list available gpu types - add datacenter command to list datacenters (alias: dc) - add billing command with subcommands for pods, serverless, network-volume - add doctor command to diagnose and fix cli configuration issues - add pod restart and reset commands - refactor legacy commands to use actual commands with deprecation warnings - improve config handling with explicit viper value setting - update error messages to guide users to doctor command - deprecate config command in favor of doctor - update default ssh key name to RunPod-Key-Go - add comprehensive e2e tests for all new commands - update root help text with getting started instructions
- add completion command that auto-detects shell (bash, zsh, fish, powershell) - automatically install completion to appropriate config files - disable default cobra completion command - add hidden generate subcommand for advanced usage - register completion and update commands in root - update comment formatting in update command
- update root help text to mention runpod v2 (formerly runpodctl) - update version template to include formerly runpodctl note - update version command output to clarify migration from runpodctl
- add template search command to search by name or image - add --type flag to filter templates (official, community, user) - add --limit and --offset flags for pagination - add --all flag to include user templates - update list command with smart defaults (show all for official/user, limit for community) - add graphql support for fetching official and community templates - enhance gettemplate to try rest api first, fallback to graphql - add template type constants and list options struct - add comprehensive e2e tests for filtering and pagination
- add cpu pod creation with compute-type and gpu-type-id naming - include ssh info and lifecycle fields in pod get output - return template readme/env/ports on get and parse graphql ports - promote model repo commands and add legacy get models mapping - update gpu list output to gpu type id and expand e2e coverage
keep exec as a hidden legacy command that points users to ssh, and restore missing legacy commands for cloud and multi-pod operations.
preserve backward compatibility for legacy exec while pointing users to ssh. add project create/build test coverage and remove resolved issue notes.
add global-networking to pod create with validation and error hints, wire the rest request, add e2e coverage, and update the issue note.
add --public-ip for community cloud pods, wire supportPublicIp, add unit and e2e coverage, and document testing expectations.
standardize command help text casing and plurals, and add unit + e2e checks to prevent regressions.
avoid breaking existing users by reverting the cli name to runpodctl. align docs, tooling, and tests so install and update paths keep the same binary.
add legacy command assertions and help coverage for remaining cli entrypoints. include ssh, completion, and send/receive checks to catch regressions.
install govulncheck in ci and call it directly to keep the build green.
document non-obvious pitfalls to avoid regressions in templates, legacy, and doctor.
use --template-id for pod creation to align with serverless and clarify intent. update help text and e2e coverage accordingly.
rename gpu-type-id flag to gpu-id and normalize gpuTypeId output to gpuId. align billing filters/grouping and update tests/docs; remove resolved docs/issues.
simplify root help messaging and regenerate markdown docs for the new cli. update pr template to match the new summary/testing guidance.
update go.mod module path to github.com/runpod/runpodctl and rewrite imports to match; includes gofmt cleanup after the path change.
remove the cli restructure justification from the repo while keeping it locally. Co-authored-by: Cursor <cursoragent@cursor.com>
use graphql api for gpu pod creation to support startSsh field, which controls whether ssh keys are injected into the pod. cpu pods fall back to rest api since graphql requires gpuTypeId.
create model and remove model were not registered in the legacy command layer, causing flags like --name and --owner to be unknown.
model repo uploads do not accept a hash, causing errors when specified. also bumps go version to 1.25.7. cherry-picked from #230.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
summary
runpodctlbinary kept; legacy commands still work with stderr-only warnings--gpu-idflag andgpuId/gpuIdsoutputdoctor+ ssh key setup + auto-migration from~/.runpod.yamlto~/.runpod/config.tomlt.Cleanuphelp (runpodctl --help):
tests
go test ./...go test -tags e2e ./e2e