instance-kvm-input-schema.json 6.29 KB
Newer Older
1
{
2 3 4 5
  "type": "object",
  "$schema": "http://json-schema.org/draft-04/schema",

  "title": "Input Parameters",
6 7 8 9 10 11 12
  "properties": {
    "ram-size": {
      "title": "RAM size",
      "description": "RAM size, in MB.",
      "type": "integer",
      "default": 1024,
      "minimum": 128,
13
      "multipleOf": 128,
14 15 16 17 18 19 20 21
      "maximum": 16384
    },
    "disk-size": {
      "title": "Disk size",
      "description": "Disk size, in GB.",
      "type": "integer",
      "default": 10,
      "minimum": 1,
22
      "maximum": 1000
23
    },
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
    "disk-type": {
      "title": "Disk type",
      "description": "Type of QEMU disk drive.",
      "type": "string",
      "default": "virtio",
      "enum": ["ide", "scsi", "sd", "mtd", "floppy", "pflash", "virtio"]
    },

    "cpu-count": {
      "title": "CPU count",
      "description": "Number of CPU cores.",
      "type": "integer",
      "minimum": 1,
      "maximum": 8
    },
39
    "cpu-options": {
40 41
      "title": "CPU Additional options: cores, threads, sockets, maxcpus.",
      "description": "Additional options to use with cpu-count. Options are separated by coma: [cores=cores][,threads=threads][,sockets=sockets][,maxcpus=maxcpus]. Set this option if you know what you're doing.",
42 43 44
      "type": "string"
    },
    "numa": {
45 46
      "title": "Simulate a multi node NUMA system.",
      "description": "Simulate a multi node NUMA system. If mem and cpus are omitted, resources are split equally. Each numa option are separated by space: node,nodeid=4,cpus=40-49,mem=64g node,nodeid=1,cpus=10-19,mem=128g. Set this option if you know what you're doing.",
47 48
      "type": "string"
    },
49

50
    "nbd-host": {
51 52 53 54 55 56 57 58 59 60 61 62 63 64
      "title": "NBD hostname",
      "description": "hostname (or IP) of the NBD server containing the boot image.",
      "type": "string",
      "format": ["host-name", "ip-address", "ipv6"],
      "default": "debian.nbd.vifib.net"
    },
    "nbd-port": {
      "title": "NBD port",
      "description": "Port of the NBD server containing the boot image.",
      "type": "integer",
      "default": 1024,
      "minimum": 1,
      "maximum": 65535
    },
65

Cédric de Saint Martin's avatar
Cédric de Saint Martin committed
66 67 68 69
    "nbd2-host": {
      "title": "Second NBD hostname",
      "description": "hostname (or IP) of the second NBD server (containing drivers for example).",
      "type": "string",
Cédric de Saint Martin's avatar
Cédric de Saint Martin committed
70
      "format": ["host-name", "ip-address", "ipv6"]
Cédric de Saint Martin's avatar
Cédric de Saint Martin committed
71 72 73 74 75 76 77 78 79
    },
    "nbd2-port": {
      "title": "Second NBD port",
      "description": "Port of the second NBD server containing the boot image.",
      "type": "integer",
      "minimum": 1,
      "maximum": 65535
    },

80 81 82 83
    "virtual-hard-drive-url": {
      "title": "Existing disk image URL",
      "description": "If specified, will download an existing disk image (qcow2, raw, ...), and will use it as main virtual hard drive. Can be used to download and use an already installed and customized virtual hard drive.",
      "format": "uri",
84
      "type": "string"
85
    },
86 87 88
    "virtual-hard-drive-md5sum": {
      "title": "Checksum of virtual hard drive",
      "description": "MD5 checksum of virtual hard drive, used if virtual-hard-drive-url is specified.",
89
      "type": "string"
90
    },
91 92 93 94 95 96 97 98 99 100 101 102 103 104 105
    "virtual-hard-drive-gzipped": {
      "title": "Define if virtual hard drive to download is gzipped",
      "description": "Define if virtual hard drive to download is gzipped using gzip. This help to reduce size of file to download.",
      "type": "boolean",
      "default": false
    },

    "external-disk-number": {
      "title": "Number of additional disk to create for virtual machine",
      "description": "Specify the number of additional disk to create for virtual machine in data folder of SlapOS Node. Requires instance_storage_home to be configured on SlapOS Node.",
      "type": "integer",
      "minimum": 0,
      "default": 0
    },
    "external-disk-size": {
106 107
      "title": "Size of additional disk to create for virtual machine, in Gigabytes",
      "description": "Specify the size of additional disk to create for virtual machine in data folder of SlapOS Node. Requires instance_storage_home to be configured on SlapOS Node.",
108
      "type": "integer",
109
      "minimum": 10,
110
      "maximum": 1000,
111 112
      "default": 20
    },
113 114 115 116 117 118 119
    "external-disk-format": {
      "title": "Type of external disk drive to create by QEMU.",
      "description": "Type of QEMU disk drive, to create.",
      "type": "string",
      "default": "qcow2",
      "enum": ["qcow2", "raw", "vdi", "vmdk", "cloop"]
    },
120

121 122
    "use-tap": {
      "title": "Use QEMU TAP network interface",
123
      "description": "Use QEMU TAP network interface, might require a bridge on SlapOS Node.",
124 125 126
      "type": "boolean",
      "default": false
    },
127 128 129 130 131 132
    "use-nat": {
      "title": "Use QEMU USER Mode networking",
      "description": "Use QEMU user-mode network stack (NAT).",
      "type": "boolean",
      "default": true
    },
133 134 135
    "nat-rules": {
      "title": "List of rules for NAT of QEMU user mode network stack.",
      "description": "List of rules for NAT of QEMU user mode network stack, as comma-separated list of ports. For each port specified, it will redirect port x of the VM (example: 80) to the port x + 10000 of the public IPv6 (example: 10080). Defaults to \"22 80 443\". Ignored if \"use-tap\" parameter is enabled.",
136
      "type": "string"
137
    },
138
    "authorized-key": {
139 140
      "title": "Public keys to get from all virtual machines.",
      "description": "Set the public keys to add in your virtual machine. Keys are separated with '##'. The public key file will be available in the VM via url http://10.0.2.100/authorized_keys if you keep the NAT interface enabled",
141 142
      "type": "string"
    },
143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163
    "frontend-instance-guid": {
      "title": "Frontend Instance ID",
      "description": "Unique identifier of the frontend instance, like \"SOFTINST-11031\".",
      "type": "string",
      "default": "SOFTINST-11031"
    },
    "frontend-software-type": {
      "title": "Frontend Software Type",
      "description": "Type of the frontend instance, like \"frontend\".",
      "type": "string",
      "default": "frontend"
    },
    "frontend-software-url": {
      "title": "Frontend Software URL",
      "description": "Software Release URL of the frontend instance, like \"http://example.com/path/to/software.cfg\".",
      "type": "string",
      "format": "uri",
      "default": "http://git.erp5.org/gitweb/slapos.git/blob_plain/refs/tags/slapos-0.92:/software/kvm/software.cfg"
    }
  }
}