1
0
mirror of https://github.com/opencontainers/runtime-spec.git synced 2026-02-05 09:45:57 +01:00
Files
runtime-spec/schema/config-schema.json
Doug Rabson afdbcb8545 Add FreeBSD as a platform
This uses FreeBSD jails to implement container isolation.

Signed-off-by: Doug Rabson <dfr@rabson.org>
2025-10-24 14:23:35 +01:00

262 lines
8.7 KiB
JSON

{
"description": "Open Container Initiative Runtime Specification Container Configuration Schema",
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"ociVersion": {
"$ref": "defs.json#/definitions/ociVersion"
},
"hooks": {
"type": "object",
"properties": {
"prestart": {
"$ref": "defs.json#/definitions/ArrayOfHooks"
},
"createRuntime": {
"$ref": "defs.json#/definitions/ArrayOfHooks"
},
"createContainer": {
"$ref": "defs.json#/definitions/ArrayOfHooks"
},
"startContainer": {
"$ref": "defs.json#/definitions/ArrayOfHooks"
},
"poststart": {
"$ref": "defs.json#/definitions/ArrayOfHooks"
},
"poststop": {
"$ref": "defs.json#/definitions/ArrayOfHooks"
}
}
},
"annotations": {
"$ref": "defs.json#/definitions/annotations"
},
"hostname": {
"type": "string"
},
"domainname": {
"type": "string"
},
"mounts": {
"type": "array",
"items": {
"$ref": "defs.json#/definitions/Mount"
}
},
"root": {
"description": "Configures the container's root filesystem.",
"type": "object",
"required": [
"path"
],
"properties": {
"path": {
"$ref": "defs.json#/definitions/FilePath"
},
"readonly": {
"type": "boolean"
}
}
},
"process": {
"type": "object",
"required": [
"cwd"
],
"properties": {
"args": {
"$ref": "defs.json#/definitions/ArrayOfStrings"
},
"commandLine": {
"type": "string"
},
"consoleSize": {
"type": "object",
"required": [
"height",
"width"
],
"properties": {
"height": {
"$ref": "defs.json#/definitions/uint64"
},
"width": {
"$ref": "defs.json#/definitions/uint64"
}
}
},
"cwd": {
"type": "string"
},
"env": {
"$ref": "defs.json#/definitions/Env"
},
"terminal": {
"type": "boolean"
},
"user": {
"type": "object",
"properties": {
"uid": {
"$ref": "defs.json#/definitions/UID"
},
"gid": {
"$ref": "defs.json#/definitions/GID"
},
"umask": {
"$ref": "defs.json#/definitions/Umask"
},
"additionalGids": {
"$ref": "defs.json#/definitions/ArrayOfGIDs"
},
"username": {
"type": "string"
}
}
},
"capabilities": {
"type": "object",
"properties": {
"bounding": {
"$ref": "defs.json#/definitions/ArrayOfStrings"
},
"permitted": {
"$ref": "defs.json#/definitions/ArrayOfStrings"
},
"effective": {
"$ref": "defs.json#/definitions/ArrayOfStrings"
},
"inheritable": {
"$ref": "defs.json#/definitions/ArrayOfStrings"
},
"ambient": {
"$ref": "defs.json#/definitions/ArrayOfStrings"
}
}
},
"apparmorProfile": {
"type": "string"
},
"oomScoreAdj": {
"type": "integer"
},
"selinuxLabel": {
"type": "string"
},
"ioPriority": {
"type": "object",
"required": [
"class"
],
"properties": {
"class": {
"type": "string",
"enum": [
"IOPRIO_CLASS_RT",
"IOPRIO_CLASS_BE",
"IOPRIO_CLASS_IDLE"
]
},
"priority": {
"$ref": "defs.json#/definitions/int32"
}
}
},
"noNewPrivileges": {
"type": "boolean"
},
"scheduler": {
"type": "object",
"required": [
"policy"
],
"properties": {
"policy": {
"$ref": "defs-linux.json#/definitions/SchedulerPolicy"
},
"nice": {
"$ref": "defs.json#/definitions/int32"
},
"priority": {
"$ref": "defs.json#/definitions/int32"
},
"flags": {
"type": "array",
"items": {
"$ref": "defs-linux.json#/definitions/SchedulerFlag"
}
},
"runtime": {
"$ref": "defs.json#/definitions/uint64"
},
"deadline": {
"$ref": "defs.json#/definitions/uint64"
},
"period": {
"$ref": "defs.json#/definitions/uint64"
}
}
},
"rlimits": {
"type": "array",
"items": {
"type": "object",
"required": [
"type",
"soft",
"hard"
],
"properties": {
"hard": {
"$ref": "defs.json#/definitions/uint64"
},
"soft": {
"$ref": "defs.json#/definitions/uint64"
},
"type": {
"type": "string",
"pattern": "^RLIMIT_[A-Z]+$"
}
}
}
},
"execCPUAffinity": {
"type": "object",
"properties": {
"initial": {
"type": "string",
"pattern": "^[0-9, -]*$"
},
"final": {
"type": "string",
"pattern": "^[0-9, -]*$"
}
}
}
}
},
"linux": {
"$ref": "config-linux.json#/linux"
},
"solaris": {
"$ref": "config-solaris.json#/solaris"
},
"windows": {
"$ref": "config-windows.json#/windows"
},
"vm": {
"$ref": "config-vm.json#/vm"
},
"zos": {
"$ref": "config-zos.json#/zos"
},
"freebsd": {
"$ref": "config-freebsd.json#/freebsd"
}
},
"required": [
"ociVersion"
]
}