bootstrap-vz/base/manifest-schema.json
Anders Ingemann 1c93094833 Integrated package plugin with base system
New phase introduced "package installation" (fixes #114)
Apt source lines are now parsed, this allows to verify the target release of added packages.
All packages (except locales) are now installed *after* bootstrapping (fixes #123)
Added env argument to log_(check_)call
HostDependencies have been refactored a little
2013-12-29 20:58:06 +01:00

137 lines
3.1 KiB
JSON

{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Generic manifest",
"type": "object",
"properties": {
"provider": {
"type": "string"
},
"bootstrapper": {
"type": "object",
"properties": {
"workspace": { "$ref": "#/definitions/path" },
"mirror": { "type": "string", "format": "uri" },
"tarball": { "type": "boolean" }
},
"required": ["workspace"]
},
"system": {
"type": "object",
"properties": {
"release": { "enum": ["wheezy"] },
"architecture": { "enum": ["i386", "amd64"] },
"timezone": { "type": "string" },
"locale": { "type": "string" },
"charmap": { "type": "string" }
},
"required": ["release", "architecture", "timezone", "locale", "charmap"]
},
"packages": {
"type": "object",
"properties": {
"sources": {
"type": "object",
"patternProperties": {
"^\\w+$": {
"type": "array",
"items": {"type": "string"},
"minItems": 1
}
},
"additionalProperties": false,
"minItems": 1
},
"remote": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"properties": {
"name": {"type": "string"},
"target": {"type": "string"}
},
"required": ["name"]
},
{ "type": "string" }
]
},
"minItems": 1
},
"local": {
"type": "array",
"items": { "$ref": "#/definitions/absolute_path" },
"minItems": 1
}
},
"additionalProperties": false
},
"volume": {
"type": "object",
"properties": {
"backing": { "type": "string" },
"partitions": {
"type": "object",
"oneOf": [
{ "$ref": "#/definitions/no_partitions" },
{ "$ref": "#/definitions/partition_table" }
]
}
},
"required": ["partitions"]
},
"plugins": {
"type": "object",
"patternProperties": {
"^\\w+$": {
"type": "object"
}
},
"additionalProperties": false
}
},
"required": ["provider", "bootstrapper", "volume", "system"],
"definitions": {
"path": {
"type": "string",
"pattern": "^[^\\0]+$"
},
"absolute_path": {
"type": "string",
"pattern": "^/[^\\0]+$"
},
"no_partitions": {
"type": "object",
"properties": {
"type": { "enum": ["none"] },
"root": { "$ref": "#/definitions/partition" }
},
"required": ["root"],
"additionalProperties": false
},
"partition_table": {
"type": "object",
"properties": {
"type": { "enum": ["mbr", "gpt"] },
"boot": { "$ref": "#/definitions/partition" },
"root": { "$ref": "#/definitions/partition" },
"swap": {
"type": "object",
"properties": { "size": { "type": "integer", "minimum": 1 } },
"required": ["size"]
}
},
"required": ["root"],
"additionalProperties": false
},
"partition": {
"type": "object",
"properties": {
"size": { "type": "integer", "minimum": 1 },
"filesystem": { "enum": ["ext2", "ext3", "ext4", "xfs"] }
},
"required": ["size", "filesystem"]
}
},
"required": ["provider", "bootstrapper", "system", "volume"]
}