> ## Documentation Index
> Fetch the complete documentation index at: https://docs.siderolabs.com/llms.txt
> Use this file to discover all available pages before exploring further.

# VirtualMachineProfileConfig

> VirtualMachineProfileConfig declares a named amd64 guest ABI.
Profiles bundle the guest machine type and CPU model. Use a versioned machine
type and a CPU baseline tested on every host for migration. Aliases drift as QEMU
changes. A named CPU model is not a migration guarantee across arbitrary hosts.


```yaml theme={null}
apiVersion: v1alpha1
kind: VirtualMachineProfileConfig
name: rack-a-compat # Profile name. Builtin names and the compat- prefix are reserved.
machine: pc-q35-9.2 # q35 or i440fx machine family, preferably a versioned type.
# Guest CPU model and feature policy.
cpu:
    mode: custom # host-model, host-passthrough or custom.
    model: Haswell-noTSX-IBRS # Named CPU model; required only for custom.
    # Explicit feature policies for a custom model.
    features:
        - name: pku # CPU feature name.
          policy: disable # require, disable, optional, force or forbid.
```

<table>
  <thead>
    <tr>
      <th>Field</th>
      <th>Type</th>
      <th>Description</th>
      <th>Value(s)</th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td>`name`</td>
      <td>string</td>
      <td>Profile name. Builtin names and the compat- prefix are reserved.</td>

      <td />
    </tr>

    <tr>
      <td>`machine`</td>
      <td>string</td>
      <td>q35 or i440fx machine family, preferably a versioned type.</td>

      <td />
    </tr>

    <tr>
      <td>`cpu`</td>
      <td>[VirtualMachineProfileCPU](#cpu)</td>
      <td>Guest CPU model and feature policy.</td>

      <td />
    </tr>
  </tbody>
</table>

## cpu

VirtualMachineProfileCPU selects the guest-visible CPU.

<table>
  <thead>
    <tr>
      <th>Field</th>
      <th>Type</th>
      <th>Description</th>
      <th>Value(s)</th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td>`mode`</td>
      <td>VirtualMachineProfileCPUMode</td>
      <td>host-model, host-passthrough or custom.</td>
      <td>`host-model`\
      `host-passthrough`\
      `custom`\
      </td>
    </tr>

    <tr>
      <td>`model`</td>
      <td>string</td>
      <td>Named CPU model; required only for custom.</td>

      <td />
    </tr>

    <tr>
      <td>`fallback`</td>
      <td>string</td>
      <td>allow or forbid (default forbid) for custom model fallback.</td>

      <td />
    </tr>

    <tr>
      <td>`features`</td>
      <td>[VirtualMachineProfileCPUFeature](#features%5B%5D)</td>
      <td>Explicit feature policies for a custom model.</td>

      <td />
    </tr>
  </tbody>
</table>

### features\[]

VirtualMachineProfileCPUFeature selects one CPU flag.

<table>
  <thead>
    <tr>
      <th>Field</th>
      <th>Type</th>
      <th>Description</th>
      <th>Value(s)</th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td>`name`</td>
      <td>string</td>
      <td>CPU feature name.</td>

      <td />
    </tr>

    <tr>
      <td>`policy`</td>
      <td>VirtualMachineProfileCPUFeaturePolicy</td>
      <td>require, disable, optional, force or forbid.</td>
      <td>`require`\
      `disable`\
      `optional`\
      `force`\
      `forbid`\
      </td>
    </tr>
  </tbody>
</table>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.