apache / apache/cloudstack

[KVM] CloudStack infrastructure metadata is preserved in libvirt XML after unmanaged VM operation (introduced in PR #11061)

Open
#12,126 2 comments 0 reactions 1 assignee Claimed by @pavanaravapalli View on GitHub
component:kvm component:libvirt no-issue-activity
Dominant language
Java
Stars
3.1k
Forks
1.4k
Avg merge
6d 19h
Merged PRs (30d)
32

Description

### problem

When a KVM instance is marked as unmanaged, CloudStack leaves infrastructure metadata — zone, pod, cluster, and host details — inside the libvirt VM XML.

This behavior appears to have been introduced as part of the enhancement in PR: https://github.com/apache/cloudstack/pull/11061.
As a result, operators must manually or programmatically remove these metadata entries.

### versions

4.22.1, main

### The steps to reproduce the bug

**Steps to Reproduce**

1. Install CloudStack main branch.
2. Deploy a VM on a KVM hypervisor.
3. Trigger an "unmanage VM" operation in CloudStack.
4. On the KVM host, inspect the libvirt XML for that VM: /etc/libvirt/qemu/.xml
5. Observe that infrastructure metadata tags (zone, pod, cluster, host) remain intact.

**Expected Behavior**

- When a VM is marked unmanaged:
CloudStack-specific infrastructure metadata should be removed from the libvirt XML,

**Actual Behavior**

- Metadata remains in the VM’s libvirt XML after the unmanage operation.
- Users must manually remove or script the cleanup of zone/pod/cluster/host metadata.
- This may cause confusion or inconsistent state if unmanaged VMs are later moved, repurposed, or reused.

** Impact **

- Operational confusion: Unmanaged VMs still appear to reference CloudStack infrastructure.
- Automation issues: Tools/scripts that rely on metadata may misinterpret the VM’s state.
- Security & hygiene: Residual metadata may mislead audits or lifecycle operations.
- Maintenance overhead: Users must clean up metadata manually or build custom scripts.

### What to do about it?

**Proposed Fix**

Automatically remove CloudStack metadata (zone, pod, cluster, host) during the unmanage VM workflow on KVM.
Alternatively, add a new configuration variable (e.g., kvm.libvirt.xml.metadata.clean=true|false) so operators can opt in or out of automatic cleanup.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.