{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "ignition",
"type": "object",
"properties": {
"ignition": {
"$ref": "#/definitions/ignition"
},
"storage": {
"$ref": "#/definitions/storage"
},
"systemd": {
"$ref": "#/definitions/systemd"
},
"passwd": {
"$ref": "#/definitions/passwd"
}
},
"required": [
"ignition"
],
"definitions": {
"verification": {
"type": "object",
"properties": {
"hash": { "type": ["string", "null"] }
}
},
"ignition": {
"type": "object",
"properties": {
"version": {
"type": "string"
},
"config": {
"$ref": "#/definitions/ignition/definitions/ignition-config"
},
"timeouts": {
"$ref": "#/definitions/ignition/definitions/timeouts"
},
"security": {
"$ref": "#/definitions/ignition/definitions/security"
}
},
"definitions": {
"ignition-config": {
"type": "object",
"properties": {
"merge": {
"type": "array",
"items": {
"$ref": "#/definitions/ignition/definitions/config-reference"
}
},
"replace": {
"$ref": "#/definitions/ignition/definitions/config-reference"
}
}
},
"security": {
"type": "object",
"properties": {
"tls": {
"type": "object",
"properties": {
"certificateAuthorities": {
"type": "array",
"items": {
"$ref": "#/definitions/ignition/definitions/ca-reference"
}
}
}
}
}
},
"config-reference": {
"type": "object",
"properties": {
"source": {
"type": ["string", "null"]
},
"verification": {
"$ref": "#/definitions/verification"
}
},
"required": [
"source"
]
},
"ca-reference": {
"type": ["object", "null"],
"properties": {
"source": {
"type": "string"
},
"verification": {
"$ref": "#/definitions/verification"
}
},
"required": [
"source"
]
},
"timeouts": {
"type": "object",
"properties": {
"httpResponseHeaders": {
"type": ["integer", "null"]
},
"httpTotal": {
"type": ["integer", "null"]
}
}
}
}
},
"storage": {
"type": "object",
"properties": {
"disks": {
"type": "array",
"items": {
"$ref": "#/definitions/storage/definitions/disk"
}
},
"raid": {
"type": "array",
"items": {
"$ref": "#/definitions/storage/definitions/raid"
}
},
"filesystems": {
"type": "array",
"items": {
"$ref": "#/definitions/storage/definitions/filesystem"
}
},
"files": {
"type": "array",
"items": {
"$ref": "#/definitions/storage/definitions/file"
}
},
"directories": {
"type": "array",
"items": {
"$ref": "#/definitions/storage/definitions/directory"
}
},
"links": {
"type": "array",
"items": {
"$ref": "#/definitions/storage/definitions/link"
}
}
},
"definitions": {
"disk": {
"type": "object",
"properties": {
"device": {
"type": "string"
},
"wipeTable": {
"type": ["boolean", "null"]
},
"partitions": {
"type": "array",
"items": {
"$ref": "#/definitions/storage/definitions/partition"
}
}
},
"required": [
"device"
]
},
"raid": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"level": {
"type": "string"
},
"spares": {
"type": ["integer", "null"]
},
"devices": {
"type": "array",
"items": {
"type": "string"
}
},
"options": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"name",
"level",
"devices"
]
},
"filesystem": {
"type": "object",
"properties": {
"path": {
"type": ["string", "null"]
},
"device": {
"type": "string"
},
"format": {
"type": ["string", "null"]
},
"options": {
"type": "array",
"items": {
"type": "string"
}
},
"wipeFilesystem": {
"type": ["boolean", "null"]
},
"label": {
"type": ["string", "null"]
},
"uuid": {
"type": ["string", "null"]
}
},
"required": [
"device"
]
},
"file": {
"allOf": [
{
"$ref": "#/definitions/storage/definitions/node"
},
{
"type": "object",
"properties": {
"mode": {
"type": ["integer", "null"]
},
"contents": {
"$ref": "#/definitions/storage/definitions/file-contents"
},
"append": {
"type": "array",
"items": {
"$ref": "#/definitions/storage/definitions/file-contents"
}
}
}
}
]
},
"directory": {
"allOf": [
{
"$ref": "#/definitions/storage/definitions/node"
},
{
"type": "object",
"properties": {
"mode": {
"type": ["integer", "null"]
}
}
}
]
},
"link": {
"allOf": [
{
"$ref": "#/definitions/storage/definitions/node"
},
{
"type": "object",
"properties": {
"target": {
"type": "string"
},
"hard": {
"type": ["boolean", "null"]
}
},
"required": [
"target"
]
}
]
},
"partition": {
"type": "object",
"properties": {
"label": {
"type": ["string", "null"]
},
"number": {
"type": "integer"
},
"sizeMiB": {
"type": ["integer", "null"]
},
"startMiB": {
"type": ["integer", "null"]
},
"typeGuid": {
"type": ["string", "null"]
},
"guid": {
"type": ["string", "null"]
},
"wipePartitionEntry": {
"type": ["boolean", "null"]
},
"shouldExist": {
"type": ["boolean", "null"]
}
}
},
"file-contents": {
"type": "object",
"properties": {
"compression": {
"type": ["string", "null"]
},
"source": {
"type": ["string", "null"]
},
"verification": {
"$ref": "#/definitions/verification"
}
}
},
"node": {
"type": "object",
"properties": {
"path": {
"type": "string"
},
"overwrite": {
"type": ["boolean", "null"]
},
"user": {
"type": "object",
"properties": {
"id": {
"type": ["integer", "null"]
},
"name": {
"type": ["string", "null"]
}
}
},
"group": {
"type": "object",
"properties": {
"id": {
"type": ["integer", "null"]
},
"name": {
"type": ["string", "null"]
}
}
}
},
"required": [
"path"
]
}
}
},
"systemd": {
"type": "object",
"properties": {
"units": {
"type": "array",
"items": {
"$ref": "#/definitions/systemd/definitions/unit"
}
}
},
"definitions": {
"unit": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"enabled": {
"type": ["boolean", "null"]
},
"mask": {
"type": ["boolean", "null"]
},
"contents": {
"type": ["string", "null"]
},
"dropins": {
"type": "array",
"items": {
"$ref": "#/definitions/systemd/definitions/dropin"
}
}
},
"required": [
"name"
]
},
"dropin": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"contents": {
"type": ["string", "null"]
}
},
"required": [
"name"
]
}
}
},
"passwd": {
"type": "object",
"properties": {
"users": {
"type": "array",
"items": {
"$ref": "#/definitions/passwd/definitions/user"
}
},
"groups": {
"type": "array",
"items": {
"$ref": "#/definitions/passwd/definitions/group"
}
}
},
"definitions": {
"user": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"passwordHash": {
"type": ["string", "null"]
},
"sshAuthorizedKeys": {
"type": "array",
"items": {
"type": "string"
}
},
"uid": {
"type": ["integer", "null"]
},
"gecos": {
"type": ["string", "null"]
},
"homeDir": {
"type": ["string", "null"]
},
"noCreateHome": {
"type": ["boolean", "null"]
},
"primaryGroup": {
"type": ["string", "null"]
},
"groups": {
"type": "array",
"items": {
"type": "string"
}
},
"noUserGroup": {
"type": ["boolean", "null"]
},
"system": {
"type": ["boolean", "null"]
},
"noLogInit": {
"type": ["boolean", "null"]
},
"shell": {
"type": ["string", "null"]
}
},
"required": [
"name"
]
},
"group": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"gid": {
"type": ["integer", "null"]
},
"passwordHash": {
"type": ["string", "null"]
},
"system": {
"type": ["boolean", "null"]
}
},
"required": [
"name"
]
}
}
}
}
}