Type object
File match ksail-*.yaml ksail-*.yml ksail_*.yaml ksail_*.yml ksail.*.yaml ksail.*.yml *-ksail.yaml *-ksail.yml *_ksail.yaml *_ksail.yml *.ksail.yaml *.ksail.yml ksail.yaml ksail.yml
Schema URL https://catalog.lintel.tools/schemas/schemastore/ksail/latest.json
Source https://raw.githubusercontent.com/devantler-tech/ksail/refs/heads/main/schemas/ksail-config.schema.json

Validate with Lintel

npx @lintel/lintel check
Type: object

JSON schema for KSail cluster configuration (ksail.yaml)

Properties

spec object required
4 nested properties
editor string

Editor command for interactive workflows (e.g. code --wait)

cluster object
18 nested properties
distributionConfig string
connection object
3 nested properties
kubeconfig string
context string
timeout string
pattern=^[0-9]+(ns|us|µs|ms|s|m|h)$
distribution string
Values: "Vanilla" "K3s" "Talos" "VCluster"
provider string
Values: "Docker" "Hetzner" "Omni"
cni string
Values: "Default" "Cilium" "Calico"
csi string
Values: "Default" "Enabled" "Disabled"
metricsServer string
Values: "Default" "Enabled" "Disabled"
loadBalancer string
Values: "Default" "Enabled" "Disabled"
certManager string
Values: "Enabled" "Disabled"
policyEngine string
Values: "None" "Kyverno" "Gatekeeper"
localRegistry object
1 nested properties
registry string
gitOpsEngine string
Values: "None" "Flux" "ArgoCD"
sops object
2 nested properties
ageKeyEnvVar string
enabled boolean
importImages string

Path to tar archive with container images to import after cluster creation but before component installation

vanilla object
1 nested properties
mirrorsDir string
talos object
6 nested properties
controlPlanes integer
workers integer
config string
iso integer
extraPortMappings object[]
imageVerification string
Values: "Enabled" "Disabled"
hetzner object
11 nested properties
controlPlaneServerType string
workerServerType string
location string
networkName string
networkCidr string
sshKeyName string
tokenEnvVar string
placementGroupStrategy string
Values: "None" "Spread"
placementGroup string
fallbackLocations string[]
placementGroupFallbackToNone boolean
omni object
7 nested properties
endpoint string
endpointEnvVar string
serviceAccountKeyEnvVar string
talosVersion string
kubernetesVersion string
machineClass string
machines string[]
workload object
4 nested properties
sourceDirectory string

Path to the directory containing Kubernetes manifests. Used as the default path by validate, watch, and push when no explicit path argument is given.

validateOnPush boolean

Validate manifests against schemas before pushing (validation disabled by default)

tag string

OCI artifact tag for ksail workload push. Priority: CLI oci:// ref > this field > registry-embedded tag > dev

kustomizationFile string

Path to the kustomization directory relative to sourceDirectory. When set, Flux Sync.Path is configured to this path so Flux uses the specified kustomization as the entry point instead of requiring a root kustomization.yaml.

chat object
2 nested properties
model string

Chat model (empty or 'auto' for API default)

reasoningEffort string

Reasoning effort level for chat responses (low, medium, or high)

Values: "low" "medium" "high"
kind string
Values: "Cluster"
apiVersion string
Values: "ksail.io/v1alpha1"