Skip to content

feat(vm): add domain jobs info subcommands to vlctl#2280

Merged
yaroslavborbat merged 1 commit into
mainfrom
feat/vm/add-domain-jobs-info-subcommands
Apr 27, 2026
Merged

feat(vm): add domain jobs info subcommands to vlctl#2280
yaroslavborbat merged 1 commit into
mainfrom
feat/vm/add-domain-jobs-info-subcommands

Conversation

@yaroslavborbat
Copy link
Copy Markdown
Member

@yaroslavborbat yaroslavborbat commented Apr 27, 2026

Description

Bump kubevirt: deckhouse/3p-kubevirt#106

Add two new subcommands to vlctl domain:

  • jobs — retrieves active domain jobs info via libvirt API
  • block-jobs — retrieves active block jobs info via libvirt API

New gRPC methods GetDomainJobs and GetDomainBlockJobs were added to cmd.proto and implemented in the vlctl client and server.

❯ k exec -it d8v-vm-linux-01-wxrnzmml5 -- vlctl domain block-jobs -ojson
{
  "return": [
    {
      "auto-finalize": true,
      "io-status": "ok",
      "device": "drive-ua-vd-vd-alpine-root-disk",
      "auto-dismiss": false,
      "busy": false,
      "len": 2151350272,
      "offset": 100663296,
      "status": "concluded",
      "paused": false,
      "speed": 671088640,
      "ready": false,
      "type": "mirror",
      "actively-synced": false,
      "error": "Input/output error"
    }
  ],
  "id": "libvirt-1541"
}

❯ k exec -it d8v-vm-linux-01-wxrnzmml5 -- vlctl domain jobs -ojson
{
  "return": [
    {
      "current-progress": 100663296,
      "status": "concluded",
      "total-progress": 2151350272,
      "type": "mirror",
      "id": "drive-ua-vd-vd-alpine-root-disk",
      "error": "Input/output error"
    }
  ],
  "id": "libvirt-1562"
}

Why do we need it, and what problem does it solve?

Operators and developers need visibility into active domain jobs (e.g., live migration, snapshots) and block jobs (e.g., disk copy, commit) running inside the VM launcher.
Since libvirt only accepts connections from virt-launcher, there is no direct way to query this information from outside the pod.
The new subcommands expose it via vlctl, making debugging significantly easier.

What is the expected result?

  1. Run vlctl domain jobs inside a virt-launcher pod — receive XML output with current domain jobs.
  2. Run vlctl domain block-jobs inside a virt-launcher pod — receive XML output with current block jobs.
  3. If no jobs are running, an empty status is returned without error.

Checklist

  • The code is covered by unit tests.
  • e2e tests passed.
  • Documentation updated according to the changes.
  • Changes were tested in the Kubernetes cluster manually.

Changelog entries

section: vm
type: feature
summary: Add domain jobs and block-jobs info subcommands to vlctl.

@yaroslavborbat yaroslavborbat added this to the v1.9.0 milestone Apr 27, 2026
@yaroslavborbat yaroslavborbat marked this pull request as ready for review April 27, 2026 12:06
Signed-off-by: Yaroslav Borbat <yaroslav.borbat@flant.com>
@yaroslavborbat yaroslavborbat force-pushed the feat/vm/add-domain-jobs-info-subcommands branch from eb7c267 to 20f580d Compare April 27, 2026 14:23
@yaroslavborbat yaroslavborbat merged commit ee8c9e4 into main Apr 27, 2026
27 of 28 checks passed
@yaroslavborbat yaroslavborbat deleted the feat/vm/add-domain-jobs-info-subcommands branch April 27, 2026 14:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants