{ "$schema": "http://json-schema.org/draft-07/schema#", "title": "SimpleConfig", "type": "object", "required": [ "apiVersion", "kind" ], "properties": { "apiVersion": { "type": "string", "enum": [ "k3d.io/v1alpha3" ], "default": "k3d.io/v1alpha3" }, "kind": { "type": "string", "enum": [ "Simple" ], "default": "Simple" }, "name": { "description": "Name of the cluster (must be a valid hostname and will be prefixed with 'k3d-'). Example: 'mycluster'.", "type": "string", "format": "hostname" }, "servers": { "type": "number", "minimum": 1 }, "agents": { "type": "number", "minimum": 0 }, "kubeAPI": { "type": "object", "properties": { "host": { "type": "string", "format": "hostname" }, "hostIP": { "type": "string", "format": "ipv4", "examples": [ "0.0.0.0", "192.168.178.55" ] }, "hostPort": { "type": "string", "examples": [ "6443" ] } }, "additionalProperties": false }, "image": { "type": "string", "examples": [ "rancher/k3s:latest" ] }, "network": { "type": "string" }, "subnet": { "type": "string", "default": "auto", "examples": [ "172.28.0.0/16", "192.162.0.0/16" ] }, "token": { "type": "string" }, "volumes": { "type": "array", "items": { "type": "object", "properties": { "volume": { "type": "string" }, "nodeFilters": { "$ref": "#/definitions/nodeFilters" } }, "additionalProperties": false } }, "ports": { "type": "array", "items": { "type": "object", "properties": { "port": { "type": "string" }, "nodeFilters": { "$ref": "#/definitions/nodeFilters" } }, "additionalProperties": false } }, "options": { "type": "object", "properties": { "k3d": { "type": "object", "properties": { "wait": { "type": "boolean", "default": true }, "timeout": { "examples": [ "60s", "1m", "1m30s" ] }, "disableLoadbalancer": { "type": "boolean", "default": false }, "disableImageVolume": { "type": "boolean", "default": false }, "disableRollback": { "type": "boolean", "default": false }, "loadbalancer": { "type": "object", "properties": { "configOverrides": { "type": "array", "examples": [ "settings.workerConnections=2048", "settings.defaultProxyTimeout=900" ] } }, "additionalProperties": false } }, "additionalProperties": false }, "k3s": { "type": "object", "properties": { "extraArgs": { "type": "array", "items": { "type": "object", "properties": { "arg": { "type": "string", "examples": [ "--tls-san=127.0.0.1", "--disable=traefik" ] }, "nodeFilters": { "$ref": "#/definitions/nodeFilters" } }, "additionalProperties": false } }, "nodeLabels": { "type": "array", "items": { "type": "object", "properties": { "label": { "type": "string" }, "nodeFilters": { "$ref": "#/definitions/nodeFilters" } }, "additionalProperties": false } } }, "additionalProperties": false }, "kubeconfig": { "type": "object", "properties": { "updateDefaultKubeconfig": { "type": "boolean", "default": true }, "switchCurrentContext": { "type": "boolean", "default": true } }, "additionalProperties": false }, "runtime": { "type": "object", "properties": { "gpuRequest": { "type": "string" }, "serversMemory": { "type": "string" }, "agentsMemory": { "type": "string" }, "labels": { "type": "array", "items": { "type": "object", "properties": { "label": { "type": "string" }, "nodeFilters": { "$ref": "#/definitions/nodeFilters" } }, "additionalProperties": false } } } } }, "additionalProperties": false }, "env": { "type": "array", "items": { "type": "object", "properties": { "envVar": { "type": "string" }, "nodeFilters": { "$ref": "#/definitions/nodeFilters" } }, "additionalProperties": false } }, "registries": { "type": "object", "properties": { "create": { "type": "object", "description": "Create a new container image registry alongside the cluster.", "properties": { "name": { "type": "string", "examples": [ "myregistry", "registry.localhost" ] }, "host": { "type": "string", "examples": [ "0.0.0.0", "localhost", "127.0.0.1" ], "default": "0.0.0.0" }, "hostPort": { "type": "string", "examples": [ "5000", "2345" ], "default": "random" } }, "additionalProperties": false }, "use": { "type": "array", "description": "Connect another container image registry to the cluster.", "items": { "type": "string" }, "examples": [ "otherregistry:5000" ] }, "config": { "type": "string", "description": "Reference a K3s registry configuration file or at it's contents here." }, "additionalProperties": false } } }, "additionalProperties": false, "definitions": { "nodeFilters": { "type": "array", "items": { "type": "string" }, "examples": [ "loadbalancer", "server:*", "server:0", "agent:1", "all" ] } } }