> ## 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.

> RAIDArrayConfig provisions a Linux MD (software RAID) array.
Provisions a Linux software RAID (MD) array from matching disks.

The array is exposed at `/dev/disk/by-id/md-name-<name>` and can back a
user volume. Provisioning is additive: the array and its members are
created but never destroyed by this document. Use `talosctl wipe md <device>`
to remove an array.


# RAIDArrayConfig

```yaml theme={null}
apiVersion: v1alpha1
kind: RAIDArrayConfig
name: talos # Array name, stamped into the md metadata.
level: raid1 # RAID level.
# The provisioning describes how the RAID arrays are provisioned.
provisioning:
    # The volume selector describes how the members of RAID arrays are selected.
    volumeSelector:
        match: disk.transport == "nvme" && disk.size > 100u * GiB # CEL expression matching the member volumes of the array.
```

<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>Array name, stamped into the md metadata.<br /><br />Must be 1-32 chars: ASCII letters, digits, hyphens, underscores.<br />Exposed as `/dev/disk/by-id/md-name-<name>`.</td>

      <td />
    </tr>

    <tr>
      <td>`level`</td>
      <td>MDLevel</td>
      <td>RAID level.</td>
      <td>`raid1`<br /></td>
    </tr>

    <tr>
      <td>`metadata`</td>
      <td>MDMetadata</td>
      <td>MD on-disk metadata format.<br /><br />Defaults to 1.0, which stores the superblock at the end of the member<br />device so the array can back a bootable partition. Use 1.2 for data<br />arrays that do not need to be bootable.</td>
      <td>`1.0`<br />`1.2`<br /></td>
    </tr>

    <tr>
      <td>`provisioning`</td>
      <td><a href="#provisioning">RAIDProvisioningSpec</a></td>
      <td>The provisioning describes how the RAID arrays are provisioned.</td>

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

## provisioning

RAIDProvisioningSpec describes how the RAID arrays are provisioned.

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

  <tbody>
    <tr>
      <td>`volumeSelector`</td>
      <td><a href="#volumeselector">RAIDVolumeSelector</a></td>
      <td>The volume selector describes how the members of RAID arrays are selected.</td>

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

### volumeSelector

RAIDVolumeSelector matches member disks with CEL.

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

  <tbody>
    <tr>
      <td>`match`</td>
      <td>Expression</td>
      <td>CEL expression matching the member volumes of the array.<br /><br />Evaluated against each discovered volume with the `volume` variable;<br />the `disk` variable is bound for whole disks (empty for partitions), so<br />both whole disks and partitions can be selected. The system disk and<br />its partitions are never eligible.</td>

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