Skip to content
Create Small VM Catalog Item

Create Small VM Catalog Item

This guide walks you through creating a catalog item for a small virtual machine using the DCM CLI.

Prerequisites

  • DCM services running locally (see Local Setup)
  • The dcm CLI installed and in your PATH

Define the Catalog Item

For a detailed explanation of the catalog item schema, see the Catalog Item Schema enhancement.

Create a file called small-vm.yaml with the following content:

api_version: v1alpha1
display_name: "Small VM"
spec:
  resources:
    - name: main
      service_type: vm
      fields:
        - path: metadata
          editable: true
        - path: vcpu.count
          display_name: "CPU Count"
          editable: true
          default: 2
          validation_schema:
            type: integer
            minimum: 1
            maximum: 4
        - path: memory.size
          display_name: "Memory (GB)"
          editable: false
          default: "2GB"
        - path: storage.disks
          display_name: "Storage (GB)"
          editable: false
          default:
            - name: boot
              capacity: "20GB"
          validation_schema:
            type: array
        - path: guest_os.type
          display_name: "Guest OS"
          editable: true
          default: "rhel-10"
          validation_schema:
            type: string
            enum:
              - rhel-9
              - rhel-10

A catalog item declares one or more resources — each with a name, service type, and field configurations. This single-resource catalog item defines a VM (main) with:

  • Metadata — editable by users, for setting VM name and labels
  • 2 vCPUs — editable by users, between 1 and 4
  • 2 GB memory — fixed, not editable by users
  • Storage — fixed, a single 20 GB boot disk
  • Guest OS — editable by users, either rhel-9 or rhel-10

Create the Catalog Item

dcm catalog item create --from-file small-vm.yaml --id small-vm

Example output:

UID       DISPLAY NAME  SERVICE TYPE  CREATED
small-vm  Small VM      vm            2026-03-25T12:14:47.800832Z

Verify the Catalog Item

dcm catalog item get small-vm

You can also view the full details in YAML format:

dcm catalog item get small-vm -o yaml