Skip to content

Discussion : Project preheat command #836

@Sypher845

Description

@Sypher845

What it does?

Harbor supports P2P (Peer-to-Peer) preheat distribution using engines like Dragonfly or Kraken. Users can create preheat policies under a project to preload container images into a P2P network before they are needed. The preheat command allows users to manage preheat policies, monitor executions, and inspect tasks from the terminal.

Since preheat is project-scoped, all commands live under harbor project preheat.

Proposed Approach

The following is a proposed structure for the command.

  • Commands

Command What it does
harbor project preheat policy list List all preheat policies under a project
harbor project preheat policy create Create a new preheat policy
harbor project preheat policy view View details of a preheat policy
harbor project preheat policy update Update an existing preheat policy
harbor project preheat policy delete Delete a preheat policy
harbor project preheat policy run Trigger a preheat policy manually
harbor project preheat execution list List executions of a preheat policy
harbor project preheat execution view View details of a specific execution
harbor project preheat execution stop Stop a running execution
harbor project preheat task list List tasks for a preheat execution
harbor project preheat task log Get the log of a specific task

harbor project preheat policy command

  • harbor project preheat policy list [projectName] : list all preheat policies under a project.

Flags: --page, --page-size, --query, --sort

Output:

sypher@sypher845:~/Projects/harbor-cli$ ./harbor project preheat policy list
┌──────────────────────────────────────────────────────────────────────────────┐
│  ID    Name          Provide…  Provider Na…  Enabled   Description           │
│ ──────────────────────────────────────────────────────────────────────────── │
│  1     test1         9         edge-basic    Ena…      test1                 │
│  3     Udfgdg        18        kraken-loca…  Ena…      zxczx                 │
│  2     vfcbc         9         edge-basic    Dis…      bcvb                  │
└──────────────────────────────────────────────────────────────────────────────┘
  • harbor project preheat policy create [projectName] [policyName] : create a new preheat policy under a project. Using flags or TUI.

Flags: --description, --provider, --enable, --filters, --trigger

Output:

Preheat policy 'my-policy' created in project 'my-project' 
  • harbor project preheat policy view [projectName] [policyName] : view details of a preheat policy

Output:

sypher@sypher845:~/Projects/harbor-cli$ ./harbor project preheat policy view
┌──────────────────────────────────────────────────────────────────────────────┐
│  ID    Name          Provide…  Provider Na…  Enabled   Description           │
│ ──────────────────────────────────────────────────────────────────────────── │
│  1     test1         9         edge-basic    Ena…      test1                 │
└──────────────────────────────────────────────────────────────────────────────┘
  • harbor project preheat policy update [projectName] [policyName] : update fields of an existing preheat policy.

Flags: --name, --description, --provider, --enable, --filters, --trigger

Output:

Preheat policy 'my-policy' updated in project 'my-project'
  • harbor project preheat policy delete [projectName] [policyName] : delete a preheat policy from a project

Output:

Preheat policy 'my-policy' deleted from project 'my-project'
  • harbor project preheat policy run [projectName] [policyName] : trigger a preheat policy manually. This creates a new execution for the policy.

Output:

Preheat policy 'my-policy' triggered in project 'my-project' 

harbor project preheat execution command

  • harbor project preheat execution list [projectName] [policyName] : list all executions for a preheat policy

Flags: --page, --page-size, --query, --sort

Output:

┌───────────────────────────────────────────────────────────────────────────────────────────────┐
│ Execution ID  Status    Trigger   Vendor        Start Time              End Time              │
│ ───────────────────────────────────────────────────────────────────────────────────────────── │
│  45            Error     Manual    P2P_PREHEAT   Apr 24, 2026 1:30 AM    Apr 24, 2026 1:30 AM │ 
│  44            Success   Manual    P2P_PREHEAT   Apr 23, 2026 9:15 PM    Apr 23, 2026 9:16 PM │
└───────────────────────────────────────────────────────────────────────────────────────────────┘

  • harbor project preheat execution view [projectName] [policyName] [executionID] : view details of a specific execution

Output:

┌───────────────────────────────────────────────────────────────────────────────────────────────┐
│ Execution ID  Status    Trigger   Vendor        Start Time              End Time              │
│ ───────────────────────────────────────────────────────────────────────────────────────────── │
│  45            Error     Manual    P2P_PREHEAT   Apr 24, 2026 1:30 AM    Apr 24, 2026 1:30 AM │ 
└───────────────────────────────────────────────────────────────────────────────────────────────┘
  • harbor project preheat execution stop [projectName] [policyName] [executionID] : stop a running preheat execution

Output:

Preheat execution '123' stopped for policy 'my-policy' in project 'my-project'

harbor project preheat task command

  • harbor project preheat task list [projectName] [policyName] [executionID] : list all tasks for a preheat execution. Tasks represent individual artifacts being preheated.

Flags: --page, --page-size, --query, --sort

  • harbor project preheat task log [projectName] [policyName] [executionID] [taskID] : get the log output of a specific preheat task

Will refine more while implementing. Please have a look and suggest any required changes in the structure of the command.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions