PR: https://github.com/goharbor/harbor-cli/pull/776

Overview

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.

Goals / Objectives

Proposed Solution

a. CLI Commands Design

Top-level command:

Subcommand groups:

Note:

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: