ironic/ironic/drivers/raid_config_schema.json

76 lines
4.0 KiB
JSON

{
"title": "raid configuration json schema",
"type": "object",
"properties": {
"logical_disks": {
"type": "array",
"items": {
"type": "object",
"properties": {
"raid_level": {
"type": "string",
"enum": [ "JBOD", "0", "1", "2", "5", "6", "1+0", "5+0", "6+0" ],
"description": "RAID level for the logical disk. Valid values are 'JBOD', '0', '1', '2', '5', '6', '1+0', '5+0' and '6+0'. Required."
},
"size_gb": {
"anyOf": [{
"type": "integer",
"minimum": 0
},
{
"type": "string",
"enum": [ "MAX" ]
}],
"description": "Size in GiB (Integer) for the logical disk. Use 'MAX' as size_gb if this logical disk is supposed to use the rest of the space available. Required."
},
"volume_name": {
"type": "string",
"description": "Name of the volume to be created. If this is not specified, it will be auto-generated. Optional."
},
"is_root_volume": {
"type": "boolean",
"description": "Specifies whether this disk is a root volume. By default, this is False. Optional."
},
"share_physical_disks": {
"type": "boolean",
"description": "Specifies whether other logical disks can share physical disks with this logical disk. By default, this is False. Optional."
},
"disk_type": {
"type": "string",
"enum": [ "hdd", "ssd" ],
"description": "The type of disk preferred. Valid values are 'hdd' and 'ssd'. If this is not specified, disk type will not be a selection criterion for choosing backing physical disks. Optional."
},
"interface_type": {
"type": "string",
"enum": [ "sata", "scsi", "sas" ],
"description": "The interface type of disk. Valid values are 'sata', 'scsi' and 'sas'. If this is not specified, interface type will not be a selection criterion for choosing backing physical disks. Optional."
},
"number_of_physical_disks": {
"type": "integer",
"minimum": 0,
"exclusiveMinimum": true,
"description": "Number of physical disks to use for this logical disk. By default, the driver uses the minimum number of disks required for that RAID level. Optional."
},
"controller": {
"type": "string",
"description": "Controller to use for this logical disk. If not specified, the driver will choose a suitable RAID controller on the bare metal node. Optional."
},
"physical_disks": {
"type": "array",
"items": { "type": "string" },
"description": "The physical disks to use for this logical disk. If not specified, the driver will choose suitable physical disks to use. Optional."
}
},
"required": ["raid_level", "size_gb"],
"additionalProperties": false,
"dependencies": {
"physical_disks": ["controller"]
}
},
"minItems": 1
}
},
"required": ["logical_disks"],
"additionalProperties": false
}