PR: https://github.com/goharbor/harbor-cli/pull/776
Harbor UI exposes a Job Service Dashboard with worker, queue, schedule, and log operations that were previously not available from the CLI in one cohesive command group. This proposal introduces a new harbor jobservice command tree that maps core dashboard workflows to terminal-first operations. The design focuses on practical parity with the UI for day-to-day administration while keeping command behavior script-friendly and predictable. The result is improved operational visibility, reduced UI dependency, and better support for automation workflows.
harbor jobservice command group for dashboard-aligned workflows.Top-level command:
harbor jobserviceSubcommand groups:
harbor jobservice poolsharbor jobservice workersharbor jobservice queuesharbor jobservice schedulesharbor jobservice jobsNote:
jobservice queue command tree.--output-format=<json|yaml> to all list commands. Default is table format(i.e without flag).Command matrix:
| Command | Purpose | Primary Flags / Inputs | Notes |
|---|---|---|---|
harbor jobservice pools list |
List worker pools | none | Alias group available as pool |
harbor jobservice workers list |
List workers from all pools | none | Defaults to all pools |
harbor jobservice workers list --pool <pool-id> |
List workers in one pool | --pool |
Supports --pool all |
harbor jobservice workers list <pool-id> |
Positional pool lookup | [POOL_ID] |
Alternate to --pool |
harbor jobservice workers list --all |
Explicit all-pool listing | --all |
Same behavior as default |
harbor jobservice workers list --pool-all |
Compatibility all-pool listing | --pool-all |
Backward-compatible alias behavior |
harbor jobservice workers free --job-id <job-id> |
Free one busy worker by stopping a running job | --job-id |
Required flag |
harbor jobservice workers free-all |
Free all busy workers | none | Uses backend job_id=all semantics |
harbor jobservice queues list |
List queue state and latency | none | Table/JSON/YAML output available using --output-format <type> |
| `harbor jobservice queues stop --type <type | all>` | Stop pending queue items | --type <type1>, <type2>,...., --interactive (Default interactive mode) |
| `harbor jobservice queues pause --type <type | all>` | Pause queue(s) | --type <type1>, <type2>,...., --interactive (Default interactive mode) |
| `harbor jobservice queues resume --type <type | all>` | Resume queue(s) | --type, --interactive (Default interactive mode) |
harbor jobservice schedules list --page N --page-size M |
List schedules with pagination | --page, --page-size |
Reads total count from headers |
harbor jobservice schedules status |
Show global scheduler paused/running | none | Uses all scheduler status endpoint |
harbor jobservice schedules pause-all |
Pause global scheduler | none | Implemented via queue action on SCHEDULER |
harbor jobservice schedules resume-all |
Resume global scheduler | none | Implemented via queue action on SCHEDULER |
harbor jobservice jobs log --job-id <id> |
Fetch plain-text job log | --job-id |
Required flag |
Aliases:
harbor jobservice workers also supports worker.harbor jobservice pools also supports pool.