272 lines
4.6 KiB
JSON
272 lines
4.6 KiB
JSON
{
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
"title": "OptionalNode",
|
|
"type": "object",
|
|
"properties": {
|
|
"arch": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/$defs/NodeArch"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"install": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/$defs/OptionalInstall"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"kernelArgs": {
|
|
"type": [
|
|
"array",
|
|
"null"
|
|
],
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"network": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/$defs/OptionalNetwork"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"ntp": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"patches": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/$defs/OptionalPatches"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"schematic": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/$defs/Schematic"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"sops": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/$defs/Secret"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"type": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/$defs/NodeType"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"additionalProperties": false,
|
|
"$defs": {
|
|
"NodeArch": {
|
|
"type": "string",
|
|
"enum": [
|
|
"amd64"
|
|
]
|
|
},
|
|
"NodeType": {
|
|
"type": "string",
|
|
"enum": [
|
|
"worker",
|
|
"controlPlane"
|
|
]
|
|
},
|
|
"OptionalInstall": {
|
|
"type": "object",
|
|
"properties": {
|
|
"auto": {
|
|
"type": [
|
|
"boolean",
|
|
"null"
|
|
]
|
|
},
|
|
"disk": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"serial": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"OptionalNetwork": {
|
|
"type": "object",
|
|
"properties": {
|
|
"dns": {
|
|
"type": [
|
|
"array",
|
|
"null"
|
|
],
|
|
"items": {
|
|
"type": "string",
|
|
"format": "ipv4"
|
|
},
|
|
"maxItems": 2,
|
|
"minItems": 2
|
|
},
|
|
"gateway": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
],
|
|
"format": "ipv4"
|
|
},
|
|
"interface": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"ip": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
],
|
|
"format": "ipv4"
|
|
},
|
|
"netmask": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
],
|
|
"format": "ipv4"
|
|
},
|
|
"tailscale": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/$defs/OptionalTailscale"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"OptionalPatches": {
|
|
"type": "object",
|
|
"properties": {
|
|
"all": {
|
|
"type": [
|
|
"array",
|
|
"null"
|
|
],
|
|
"items": {
|
|
"$ref": "#/$defs/Patch"
|
|
}
|
|
},
|
|
"controlPlane": {
|
|
"type": [
|
|
"array",
|
|
"null"
|
|
],
|
|
"items": {
|
|
"$ref": "#/$defs/Patch"
|
|
}
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"OptionalTailscale": {
|
|
"type": "object",
|
|
"properties": {
|
|
"advertiseRoutes": {
|
|
"type": [
|
|
"boolean",
|
|
"null"
|
|
]
|
|
},
|
|
"authKey": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/$defs/Secret"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"server": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
],
|
|
"default": null
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"Patch": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
}
|
|
]
|
|
},
|
|
"Schematic": {
|
|
"type": "string"
|
|
},
|
|
"Secret": {
|
|
"$ref": "#/$defs/SecretHelper"
|
|
},
|
|
"SecretHelper": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"file": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"file"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|