Cannot remove VM classes from Region Quota in VCF Automation 9.0.x
search cancel

Cannot remove VM classes from Region Quota in VCF Automation 9.0.x

book

Article ID: 434925

calendar_today

Updated On:

Products

VCF Operations/Automation (formerly VMware Aria Suite)

Issue/Introduction

In VMware Cloud Foundation (VCF) 9.0, attempting to modify or reduce the number of VM classes assigned to a Provider's Region Quota encounter a validation error "Cannot remove VM classes from region quota. There are namespaces associated with them".
This prevents the removal of specific VM classes even if they are not currently hosting active virtual machines.

Environment

VCF Automation (VCFA) 9.0

Cause

VCF Automation 9.0 enforces strict referential integrity between infrastructure resources and active workloads. A VM class cannot be removed from a Region Quota if it is currently "bound" to an active Supervisor Namespace or defined within a Namespace Class template assigned to that organization.

Resolution

We must perform a bottom-up detachment of the VM class before it can be removed from the Region Quota.
 
Step 1: Remove from Namespace Classes
 
If the VM class is part of a Namespace Class template:
  • Go to Manage & Govern > Namespace Class.
  • Select the class and click Edit.
  • Locate the VM Classes section and Deselect the specific classes you wish to remove.
  • Note: If you used a wildcard (*), you must replace it with an explicit list of allowed classes to exclude the unwanted ones.
  • Click Update.
Step 2: Remove from Existing Namespaces 
 
For namespaces already provisioned in a project, the VM classes must be removed from their specific configuration:
 
Prerequisites
  • You must have Provider Administrator or Organization Administrator rights.
  • A REST client (Postman, cURL) or the built-in API Explorer (Navigate to Infrastructure > Support > API Explorer)
  • Header: Content-Type: application/json
    1. Identify the Namespace URN, need the unique identifier (URN) of the namespace you are modifying.

      Endpoint: GET https://<VCFA_FQDN>/tm/cloudapi/v1/namespaces
      Locate the namespace in the JSON response and copy the "id" value (e.g., urn:vcloud:shareable_namespace:xxxx-xxxx).
    2. Retrieve the Current Configuration, fetch the current state to ensure you don't overwrite other settings (quotas, storage policies).

      Endpoint: GET https://<VCFA_FQDN>/tm/cloudapi/v1/namespaces/{namespace_id}
      Copy the entire JSON response body.
    3. Prepare the Updated Payload

      Edit the JSON body you just copied.
      Locate the virtualMachineClasses array.
      Delete the objects corresponding to the VM classes you wish to remove.
      
      Example Payload Snippet:
            JSON
            "virtualMachineClasses": [
      	   {
      	            "id": "urn:vcloud:virtualMachineClass:vcf-small" 
                 }
                // Removed: { "id": "urn:vcloud:virtualMachineClass:vcf-large" }
      	]
    4. Execute the Update

      Send the modified payload back to the control plane.
      Endpoint: PUT https://<VCFA_FQDN>/tm/cloudapi/v1/namespaces/{namespace_id}
      Body: The edited JSON from Step 3.
    5. Verification of Success

      * A successful update returns 200 OK or 202 Accepted.
      * The returned JSON should reflect only the VM classes you kept.
      * In the VCF Automation UI, the namespace status may briefly transition to Synchronizing. Wait for it to return to Active before attempting to modify the Region Quota.

Step 3: Update Region Quota

  1. Navigate to Infrastructure > Organizations > [Select Org] > Region Quota.

  2. Edit the quota and deselect the VM classes. The error should no longer appear.

Additional Information

https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-0/provider-management/managing-organizations/region-quota-of-an-organization/edit-the-vm-classes-of-a-region-quota.html