Skip to content

Comments

feat(module): add Virtualization Overview dashboard and VM info metric#1956

Merged
fl64 merged 14 commits intomainfrom
feat/module/add-cluster-overview-dashboard
Feb 13, 2026
Merged

feat(module): add Virtualization Overview dashboard and VM info metric#1956
fl64 merged 14 commits intomainfrom
feat/module/add-cluster-overview-dashboard

Conversation

@fl64
Copy link
Member

@fl64 fl64 commented Feb 5, 2026

Description

  • Add new metric d8_virtualization_virtualmachine_info with virtualmachineclass and node labels
  • Add "Virtualization Overview" dashboard with cluster-wide VM statistics
  • Move VM and VMs dashboards to virtualization folder

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

Operators need centralized visibility into virtualization resources across the cluster — VM distribution by VMClass, storage usage by StorageClass, and per-namespace breakdown. The new metric shows which VMClass is actually applied to running VMs (may differ from spec before restart).

What is the expected result?

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: module
type: feature
summary: add Virtualization Overview dashboard and VM info metric

@fl64 fl64 added this to the v1.6.0 milestone Feb 5, 2026
@fl64 fl64 force-pushed the feat/module/add-cluster-overview-dashboard branch from c726a78 to 82a1051 Compare February 5, 2026 13:57
@fl64 fl64 changed the title feat(module): add d8_virtualization_virtualmachine_info feat(module): add Virtualization Overview dashboard and VM info metric Feb 5, 2026
@fl64 fl64 force-pushed the feat/module/add-cluster-overview-dashboard branch from 9732893 to e03a58c Compare February 11, 2026 12:52
@fl64 fl64 marked this pull request as ready for review February 12, 2026 06:04
fl64 added 10 commits February 12, 2026 09:20
Signed-off-by: Pavel Tishkov <pavel.tishkov@flant.com>
Signed-off-by: Pavel Tishkov <pavel.tishkov@flant.com>
Signed-off-by: Pavel Tishkov <pavel.tishkov@flant.com>
Signed-off-by: Pavel Tishkov <pavel.tishkov@flant.com>
Signed-off-by: Pavel Tishkov <pavel.tishkov@flant.com>
Signed-off-by: Pavel Tishkov <pavel.tishkov@flant.com>
Signed-off-by: Pavel Tishkov <pavel.tishkov@flant.com>
Signed-off-by: Pavel Tishkov <pavel.tishkov@flant.com>
Signed-off-by: Pavel Tishkov <pavel.tishkov@flant.com>
Signed-off-by: Pavel Tishkov <pavel.tishkov@flant.com>
@fl64 fl64 force-pushed the feat/module/add-cluster-overview-dashboard branch from 6833284 to abf009e Compare February 12, 2026 06:22
return nil
}

func (l *iterator) buildKVVMMap(ctx context.Context) (map[string]*virtv1.VirtualMachine, error) {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You are using the buildKVVMMap function in one place. And actually you don't need the entire KVVM map - you only need the VirtualMachineClassName from it. So extract it right away and put it into a map.

I'm bringing this up because you are using UnsafeDisableDeepCopy. Modifying the received KVVM means modifying the KVVM in the cache. To make the code safe, let's fetch and process the data in one function, without passing objects up where they could be modified.

if kvvm == nil {
return ""
}
spec, err := kvbuilder.LoadLastAppliedSpec(kvvm)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is there no other way to get the vmclass other than serializing it from the annotation?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

idk how to get actual (running) vmclass, any ideas?

fl64 added 2 commits February 12, 2026 14:40
Signed-off-by: Pavel Tishkov <pavel.tishkov@flant.com>
Signed-off-by: Pavel Tishkov <pavel.tishkov@flant.com>
@fl64 fl64 requested a review from yaroslavborbat February 12, 2026 11:54
fl64 added 2 commits February 12, 2026 15:49
Signed-off-by: Pavel Tishkov <pavel.tishkov@flant.com>
Signed-off-by: Pavel Tishkov <pavel.tishkov@flant.com>
@fl64 fl64 merged commit d82dfe9 into main Feb 13, 2026
27 of 28 checks passed
@fl64 fl64 deleted the feat/module/add-cluster-overview-dashboard branch February 13, 2026 07:49
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