"description":"How the parameters and results are serialised",
"description":"How the parameters and results are serialised",
"enum":["xml","json-in-xml"],
"enum":[
"xml",
"json-in-xml"
],
"type":"string"
"type":"string"
},
},
"software-type":{
"software-type":{
...
@@ -44,7 +47,10 @@
...
@@ -44,7 +47,10 @@
},
},
"serialisation":{
"serialisation":{
"description":"How the parameters and results are serialised, if different from global setting, required if global setting is not provided",
"description":"How the parameters and results are serialised, if different from global setting, required if global setting is not provided",
"enum":["xml","json-in-xml"],
"enum":[
"xml",
"json-in-xml"
],
"type":"string"
"type":"string"
},
},
"request":{
"request":{
...
@@ -55,11 +61,11 @@
...
@@ -55,11 +61,11 @@
"description":"URL, relative to Software Release base path, of a json schema for values published by instance of current software type",
"description":"URL, relative to Software Release base path, of a json schema for values published by instance of current software type",
"type":"string"
"type":"string"
},
},
"software-type":{
"software-type":{
"description":"Value to be used as software type instead of the software type id (in order to use multiple diferent forms for the same software type).",
"description":"Value to be used as software type instead of the software type id (in order to use multiple diferent forms for the same software type).",
"type":"string"
"type":"string"
},
},
"shared":{
"shared":{
"description":"Define if the request will request a Slave or Software Instance.",
"description":"Define if the request will request a Slave or Software Instance.",
"description":"How the parameters and results are serialised",
"description":"How the parameters and results are serialised",
"require":true,
"require":true,
"enum":["xml","json-in-xml"],
"enum":[
"xml",
"json-in-xml"
],
"type":"string"
"type":"string"
},
},
"software-type":{
"software-type":{
...
@@ -35,7 +38,10 @@
...
@@ -35,7 +38,10 @@
},
},
"serialisation":{
"serialisation":{
"description":"How the parameters and results are serialised, if different from global setting",
"description":"How the parameters and results are serialised, if different from global setting",
"enum":["xml","json-in-xml"],
"enum":[
"xml",
"json-in-xml"
],
"type":"string"
"type":"string"
},
},
"request":{
"request":{
...
@@ -48,11 +54,11 @@
...
@@ -48,11 +54,11 @@
"description":"URL, relative to Software Release base path, of a json schema for values published by instance of current software type",
"description":"URL, relative to Software Release base path, of a json schema for values published by instance of current software type",
"type":"string"
"type":"string"
},
},
"software-type":{
"software-type":{
"description":"Value to be used as software type instead of the software type id (in order to use multiple diferent forms for the same software type).",
"description":"Value to be used as software type instead of the software type id (in order to use multiple diferent forms for the same software type).",
"type":"string"
"type":"string"
},
},
"shared":{
"shared":{
"description":"Define if the request will request a Slave or Software Instance.",
"description":"Define if the request will request a Slave or Software Instance.",
"description":"Server Alias List separated by space",
"description":"Server Alias List separated by space",
...
@@ -34,23 +32,26 @@
...
@@ -34,23 +32,26 @@
"description":"Type of slave. If redirect, the slave will redirect to the given url. If zope, the rewrite rules will be compatible with Virtual Host Monster",
"description":"Type of slave. If redirect, the slave will redirect to the given url. If zope, the rewrite rules will be compatible with Virtual Host Monster",
"description":"Content of the CA certificate file",
"description":"Content of the CA certificate file",
...
@@ -78,90 +78,101 @@
...
@@ -78,90 +78,101 @@
"description":"If set to true, http requests will be redirected to https",
"description":"If set to true, http requests will be redirected to https",
"type":"string",
"type":"string",
"default":"false",
"default":"false",
"enum":["false","true"]
"enum":[
"false",
"true"
]
},
},
"ssl-proxy-verify":{
"ssl-proxy-verify":{
"title":"Verify Backend Certificates",
"title":"Verify Backend Certificates",
"description":"If set to true, Backend SSL Certificates will be checked and frontend will refuse to proxy if certificate is invalid",
"description":"If set to true, Backend SSL Certificates will be checked and frontend will refuse to proxy if certificate is invalid",
"type":"string",
"type":"string",
"default":"false",
"default":"false",
"enum":["false","true"]
"enum":[
"false",
"true"
]
},
},
"ssl_proxy_ca_crt":{
"ssl_proxy_ca_crt":{
"title":"SSL Backend Authority's Certificate",
"title":"SSL Backend Authority's Certificate",
"description":"Content of the SSL Certificate Authority file of the backend (to be used with ssl-proxy-verify)",
"description":"Content of the SSL Certificate Authority file of the backend (to be used with ssl-proxy-verify)",
"type":"string",
"type":"string",
"default":""
"default":""
},
},
"monitor-ipv6-test":{
"monitor-ipv6-test":{
"title":"IPv6 Address to Monitor Packet Lost",
"title":"IPv6 Address to Monitor Packet Lost",
"description":"IPv6 Address for the frontend keep monitoring with ping6 (without brackets)",
"description":"IPv6 Address for the frontend keep monitoring with ping6 (without brackets)",
"type":"string",
"type":"string",
"default":""
"default":""
},
},
"monitor-ipv4-test":{
"monitor-ipv4-test":{
"title":"IPv4 Address to Monitor Packet Lost",
"title":"IPv4 Address to Monitor Packet Lost",
"description":"IPv4 Address for the frontend keep monitoring with ping",
"description":"IPv4 Address for the frontend keep monitoring with ping",
"type":"string",
"type":"string",
"default":""
"default":""
},
},
"re6st-optimal-test":{
"re6st-optimal-test":{
"title":"IPv6 and IPv4 Address to test Re6st",
"title":"IPv6 and IPv4 Address to test Re6st",
"description":"IPv6 and IPv6 Address for the frontend test if re6st is on the optimal status (use ipv6,ipv4)",
"description":"IPv6 and IPv6 Address for the frontend test if re6st is on the optimal status (use ipv6,ipv4)",
"type":"string",
"type":"string",
"default":""
"default":""
},
},
"enable_cache":{
"enable_cache":{
"title":"Enable Cache",
"title":"Enable Cache",
"description":"If set to true, http caching server (Apache Traffic Server) will be used between frontend apache and backend",
"description":"If set to true, http caching server (Apache Traffic Server) will be used between frontend apache and backend",
"type":"string",
"type":"string",
"default":"false",
"default":"false",
"enum":["false","true"]
"enum":[
"false",
"true"
]
},
},
"disable-no-cache-request":{
"disable-no-cache-request":{
"title":"Disable 'no-cache' requests",
"title":"Disable 'no-cache' requests",
"description":"If set to true, Cache-Control and Pragma requests headers will not be sent to cache and backend servers. This prevents clients from bypassing cache when enable_cache is true",
"description":"If set to true, Cache-Control and Pragma requests headers will not be sent to cache and backend servers. This prevents clients from bypassing cache when enable_cache is true",
"type":"string",
"type":"string",
"default":"false",
"default":"false",
"enum":["false","true"]
"enum":[
"false",
"true"
]
},
},
"disable-via-header":{
"disable-via-header":{
"title":"Disable 'Via' headers from cache",
"title":"Disable 'Via' headers from cache",
"description":"If set to true, Via response headers will not be sent to client",
"description":"If set to true, Via response headers will not be sent to client",
"type":"string",
"type":"string",
"default":"false",
"default":"false",
"enum":["false","true"]
"enum":[
"false",
"true"
]
},
},
"enable-http2":{
"enable-http2":{
"title":"Enable HTTP2 Protocol",
"title":"Enable HTTP2 Protocol",
"description":"Use HTTP2 Protocol for the site",
"description":"Use HTTP2 Protocol for the site",
"type":"string",
"type":"string",
"default":"true",
"default":"true",
"enum":["true","false"]
"enum":[
"true",
"false"
]
},
},
"prefer-gzip-encoding-to-backend":{
"prefer-gzip-encoding-to-backend":{
"title":"Prefer gzip Encoding for Backend",
"title":"Prefer gzip Encoding for Backend",
"description":"If set to true, frontend will rewrite Accept-Encoding request header to simply 'gzip' for all variants of Accept-Encoding containing 'gzip', in order to maximize cache hits for resources cached with Vary: Accept-Encoding when enable_cache is used",
"description":"If set to true, frontend will rewrite Accept-Encoding request header to simply 'gzip' for all variants of Accept-Encoding containing 'gzip', in order to maximize cache hits for resources cached with Vary: Accept-Encoding when enable_cache is used",
"type":"string",
"type":"string",
"default":"false",
"default":"false",
"enum":["false","true"]
"enum":[
"false",
"true"
]
},
},
"disabled-cookie-list":{
"disabled-cookie-list":{
"title":"Disabled Cookies",
"title":"Disabled Cookies",
"description":"List of Cookies separated by space that will not be sent to cache and backend servers. This is especially useful to discard analytics tracking cookies when using Vary: Cookie cache headers",
"description":"List of Cookies separated by space that will not be sent to cache and backend servers. This is especially useful to discard analytics tracking cookies when using Vary: Cookie cache headers",
"type":"string",
"type":"string",
"default":""
"default":""
},
},
"apache_custom_http":{
"apache_custom_http":{
"title":"HTTP configuration",
"title":"HTTP configuration",
"description":"Raw http configuration in python template format. Your site will be rejected if you use it without notification and approval of frontend administrators",
"description":"Raw http configuration in python template format. Your site will be rejected if you use it without notification and approval of frontend administrators",
"description":"Server Alias List separated by space",
"description":"Server Alias List separated by space",
"type":"string",
"type":"string",
"default":""
"default":""
},
},
"frontend-type":{
"frontend-type":{
"title":"Backend Type",
"title":"Backend Type",
"description":"Type of slave. If redirect, the slave will redirect to the given url. If zope, the rewrite rules will be compatible with Virtual Host Monster",
"description":"Type of slave. If redirect, the slave will redirect to the given url. If zope, the rewrite rules will be compatible with Virtual Host Monster",
"type":"string",
"type":"string",
"default":"",
"default":"",
"enum":["","zope","redirect"]
"enum":[
"",
"zope",
"redirect"
]
},
},
"frontend-path":{
"frontend-path":{
"title":"Backend Path",
"title":"Backend Path",
"description":"Path to proxy to in the backend",
"description":"Path to proxy to in the backend",
"type":"string",
"type":"string",
"default":""
"default":""
},
},
"frontend-default-path":{
"frontend-default-path":{
"title":"Default Path",
"title":"Default Path",
"description":"Provide default path to redirect user to",
"description":"Provide default path to redirect user to",
"description":"Server Alias List separated by space",
"description":"Server Alias List separated by space",
"type":"string",
"type":"string",
"default":""
"default":""
},
},
"frontend-type":{
"frontend-type":{
"title":"Backend Type",
"title":"Backend Type",
"description":"Type of slave. If redirect, the slave will redirect to the given url. If zope, the rewrite rules will be compatible with Virtual Host Monster",
"description":"Type of slave. If redirect, the slave will redirect to the given url. If zope, the rewrite rules will be compatible with Virtual Host Monster",
"type":"string",
"type":"string",
"default":"",
"default":"",
"enum":["","zope","redirect"]
"enum":[
"",
"zope",
"redirect"
]
},
},
"frontend-path":{
"frontend-path":{
"title":"Backend Path",
"title":"Backend Path",
"description":"Path to proxy to in the backend",
"description":"Path to proxy to in the backend",
"type":"string",
"type":"string",
"default":""
"default":""
},
},
"frontend-default-path":{
"frontend-default-path":{
"title":"Default Path",
"title":"Default Path",
"description":"Provide default path to redirect user to",
"description":"Provide default path to redirect user to",
"type":"string",
"type":"string",
"default":""
"default":""
},
},
"frontend-https-only":{
"frontend-https-only":{
"title":"HTTPS Only",
"title":"HTTPS Only",
"description":"If set to true, http request are redirect to https",
"description":"If set to true, http request are redirect to https",
"type":"boolean",
"type":"boolean",
"default":false
"default":false
},
},
"frontend-enable_cache":{
"frontend-enable_cache":{
"title":"Enable Cache",
"title":"Enable Cache",
"description":"If set to true, the cache is used",
"description":"If set to true, the cache is used",
"description":"Where to request instances. Each key is a query string for criterions (e.g. \"computer_guid=foo\"), and each value is a list of partition references (note: Zope partitions reference must be prefixed with \"zope-\").",
"description":"Where to request instances. Each key is a query string for criterions (e.g. \"computer_guid=foo\"), and each value is a list of partition references (note: Zope partitions reference must be prefixed with \"zope-\").",
"additionalProperties":{
"additionalProperties":{
"type":"array",
"type":"array",
"items":{"type":"string"},
"items":{
"type":"string"
},
"uniqueItems":true
"uniqueItems":true
},
},
"type":"object"
"type":"object"
...
@@ -104,7 +106,9 @@
...
@@ -104,7 +106,9 @@
},
},
"zope-partition-dict":{
"zope-partition-dict":{
"description":"Zope layout definition",
"description":"Zope layout definition",
"default":{"1":{}},
"default":{
"1":{}
},
"patternProperties":{
"patternProperties":{
".*":{
".*":{
"additionalProperties":false,
"additionalProperties":false,
...
@@ -160,12 +164,15 @@
...
@@ -160,12 +164,15 @@
"type":"string"
"type":"string"
},
},
"port-base":{
"port-base":{
"allOf":[{
"allOf":[
{
"$ref":"#/definitions/tcpv4port"
"$ref":"#/definitions/tcpv4port"
},{
},
{
"description":"Start allocating ports at this value. Useful if one needs to make several partitions share the same port range (ie, several partitions bound to a single address)",
"description":"Start allocating ports at this value. Useful if one needs to make several partitions share the same port range (ie, several partitions bound to a single address)",
"default":2200
"default":2200
}]
}
]
}
}
},
},
"type":"object"
"type":"object"
...
@@ -215,11 +222,14 @@
...
@@ -215,11 +222,14 @@
"description":"Common settings ZEO servers",
"description":"Common settings ZEO servers",
"properties":{
"properties":{
"tcpv4-port":{
"tcpv4-port":{
"allOf":[{
"allOf":[
{
"$ref":"#/definitions/tcpv4port"
"$ref":"#/definitions/tcpv4port"
},{
},
{
"description":"Start allocating ports at this value, going upward"
"description":"Start allocating ports at this value, going upward"
}]
}
]
},
},
"backup-periodicity":{
"backup-periodicity":{
"description":"When to backup, specified in the same format as for systemd.time(7) calendar events (years & seconds not supported, DoW & DoM can not be combined). Enter 'never' to disable backups.",
"description":"When to backup, specified in the same format as for systemd.time(7) calendar events (years & seconds not supported, DoW & DoM can not be combined). Enter 'never' to disable backups.",
...
@@ -237,7 +247,9 @@
...
@@ -237,7 +247,9 @@
"zodb":{
"zodb":{
"description":"Zope Object DataBase mountpoints. See https://github.com/zopefoundation/ZODB/blob/3.10/src/ZODB/component.xml for extra options.",
"description":"Zope Object DataBase mountpoints. See https://github.com/zopefoundation/ZODB/blob/3.10/src/ZODB/component.xml for extra options.",
"items":{
"items":{
"required":["type"],
"required":[
"type"
],
"properties":{
"properties":{
"name":{
"name":{
"description":"Database name",
"description":"Database name",
...
@@ -251,14 +263,21 @@
...
@@ -251,14 +263,21 @@
},
},
"type":{
"type":{
"description":"Storage type",
"description":"Storage type",
"enum":["zeo","neo"],
"enum":[
"zeo",
"neo"
],
"type":"string"
"type":"string"
},
},
"server":{
"server":{
"description":"Instantiate a server. If missing, 'storage-dict' must contain the necessary properties to mount the ZODB. For ZEO, the partition reference is 'zodb'. For NEO, they are 'neo-0', 'neo-1', ...",
"description":"Instantiate a server. If missing, 'storage-dict' must contain the necessary properties to mount the ZODB. For ZEO, the partition reference is 'zodb'. For NEO, they are 'neo-0', 'neo-1', ...",
"description":"Start allocating ports at this value, going upward"
"description":"Start allocating ports at this value, going upward"
}]
}
]
},
},
"postmaster":{
"postmaster":{
"description":"Mail address to send technical mails to. Non-empty value required for smptd relay service to be deployed. Values will be put in alias-dict as 'postmaster' key (alias-dict takes precedence)",
"description":"Mail address to send technical mails to. Non-empty value required for smptd relay service to be deployed. Values will be put in alias-dict as 'postmaster' key (alias-dict takes precedence)",
...
@@ -29,7 +34,9 @@
...
@@ -29,7 +34,9 @@
"relay":{
"relay":{
"description":"Forward outgoing mails to a specific relay. If enabled, relay must support TLS-encrypted SASL authentication.",
"description":"Forward outgoing mails to a specific relay. If enabled, relay must support TLS-encrypted SASL authentication.",
"description":"hostname (or IP) of the NBD server containing the boot image.",
"description":"hostname (or IP) of the NBD server containing the boot image.",
"type":"string",
"type":"string",
"format":["host-name","ip-address","ipv6"],
"format":[
"host-name",
"ip-address",
"ipv6"
],
"default":"debian.nbd.vifib.net"
"default":"debian.nbd.vifib.net"
},
},
"nbd-port":{
"nbd-port":{
...
@@ -130,12 +187,15 @@
...
@@ -130,12 +187,15 @@
"minimum":1,
"minimum":1,
"maximum":65535
"maximum":65535
},
},
"nbd2-host":{
"nbd2-host":{
"title":"Second NBD hostname",
"title":"Second NBD hostname",
"description":"hostname (or IP) of the second NBD server (containing drivers for example).",
"description":"hostname (or IP) of the second NBD server (containing drivers for example).",
"type":"string",
"type":"string",
"format":["host-name","ip-address","ipv6"]
"format":[
"host-name",
"ip-address",
"ipv6"
]
},
},
"nbd2-port":{
"nbd2-port":{
"title":"Second NBD port",
"title":"Second NBD port",
...
@@ -144,7 +204,6 @@
...
@@ -144,7 +204,6 @@
"minimum":1,
"minimum":1,
"maximum":65535
"maximum":65535
},
},
"virtual-hard-drive-url":{
"virtual-hard-drive-url":{
"title":"Existing disk image 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.",
"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.",
...
@@ -168,7 +227,6 @@
...
@@ -168,7 +227,6 @@
"type":"boolean",
"type":"boolean",
"default":true
"default":true
},
},
"external-disk-number":{
"external-disk-number":{
"title":"Number of additional disk to create for virtual machine",
"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.",
"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.",
...
@@ -189,9 +247,15 @@
...
@@ -189,9 +247,15 @@
"description":"Type of QEMU disk drive, to create.",
"description":"Type of QEMU disk drive, to create.",
"type":"string",
"type":"string",
"default":"qcow2",
"default":"qcow2",
"enum":["qcow2","raw","vdi","vmdk","cloop","qed"]
"enum":[
"qcow2",
"raw",
"vdi",
"vmdk",
"cloop",
"qed"
]
},
},
"wipe-disk-ondestroy":{
"wipe-disk-ondestroy":{
"title":"Wipe disks when destroy the VM",
"title":"Wipe disks when destroy the VM",
"description":"Say if disks should be wiped by writing new data over every single bit before delete them. This option is used to securely delete VM disks",
"description":"Say if disks should be wiped by writing new data over every single bit before delete them. This option is used to securely delete VM disks",
...
@@ -206,7 +270,6 @@
...
@@ -206,7 +270,6 @@
"minimum":1,
"minimum":1,
"maximum":5
"maximum":5
},
},
"use-tap":{
"use-tap":{
"title":"Use QEMU TAP network interface",
"title":"Use QEMU TAP network interface",
"description":"Use QEMU TAP network interface, might require a bridge on SlapOS Node.",
"description":"Use QEMU TAP network interface, might require a bridge on SlapOS Node.",
"description":"Parameters to instantiate a NEO cluster. See https://lab.nexedi.com/nexedi/neoppod/blob/master/neo.conf for more information.",
"description":"Parameters to instantiate a NEO cluster. See https://lab.nexedi.com/nexedi/neoppod/blob/master/neo.conf for more information.",
"additionalProperties":false,
"additionalProperties":false,
"require":["cluster"],
"require":[
"cluster"
],
"properties":{
"properties":{
"cluster":{
"cluster":{
"description":"Cluster unique identifier. Your last line of defense against mixing up NEO clusters and corrupting your data. Choose a unique value for each of your cluster.",
"description":"Cluster unique identifier. Your last line of defense against mixing up NEO clusters and corrupting your data. Choose a unique value for each of your cluster.",
...
@@ -30,7 +32,9 @@
...
@@ -30,7 +32,9 @@
"description":"[NEO SR only] Where to request instances. Each key is a query string for criterions (e.g. \"computer_guid=foo\"), and each value is a list of partition references ('node-0', 'node-1', ...). The prefix 'node-' is mandatory and the number must start from 0. The total number of nodes here must be equal to the length of node-list.",
"description":"[NEO SR only] Where to request instances. Each key is a query string for criterions (e.g. \"computer_guid=foo\"), and each value is a list of partition references ('node-0', 'node-1', ...). The prefix 'node-' is mandatory and the number must start from 0. The total number of nodes here must be equal to the length of node-list.",
"description":"Used to qualify RR in the configuration. i.e.: if your origin is a.example.com and the RR for Europe is 'eu' the european clients will use eu.a.exmple.com",
"description":"Used to qualify RR in the configuration. i.e.: if your origin is a.example.com and the RR for Europe is 'eu' the european clients will use eu.a.exmple.com",
"type":"string"
"type":"string"
},
},
"default":{
"default":{
"title":"Default RR",
"title":"Default RR",
"description":"Defautl record to use when the ip is not regognized",
"description":"Defautl record to use when the ip is not regognized",