52 lines
1.6 KiB
Text
52 lines
1.6 KiB
Text
let _concerns_lib = import "schemas/lib/concerns.ncl" in
|
|
|
|
{
|
|
K0s = {
|
|
version
|
|
| String
|
|
| doc "k0s release version (github.com/k0sproject/k0s releases, format: X.Y.Z+k0s.N)"
|
|
| default = "1.35.3+k0s.0",
|
|
|
|
role
|
|
| std.enum.TagOrString
|
|
| doc "Node role: controller+worker runs both planes on the same node (single-node mode)"
|
|
| default = 'controller_worker,
|
|
|
|
data_dir
|
|
| String
|
|
| doc "k0s data directory — mount a block volume here for persistent state"
|
|
| default = "/var/lib/k0s",
|
|
|
|
disable_ipv6
|
|
| Bool
|
|
| doc "Disable IPv6 via sysctl at install time"
|
|
| default = true,
|
|
|
|
cluster_name
|
|
| String
|
|
| doc "Cluster name embedded in k0s config and kubeconfig context"
|
|
| default = "k0s",
|
|
|
|
disable_kube_proxy
|
|
| Bool
|
|
| doc "Set spec.network.kubeProxy.disabled=true in k0s.yaml — required when Cilium replaces kube-proxy via eBPF"
|
|
| default = true,
|
|
|
|
storage_backend
|
|
| std.enum.TagOrString
|
|
| doc "Datastore backend: dqlite (kine+dqlite, recommended for single-node edge), sqlite (kine+SQLite), etcd (default k0s, for HA multi-node)"
|
|
| default = 'dqlite,
|
|
|
|
kine_dir
|
|
| String
|
|
| doc "Directory for kine datastore files (dqlite or sqlite). Must be on a persistent volume. Defaults to <data_dir>/kine"
|
|
| default = "",
|
|
|
|
# ServiceConcerns umbrella (ADR-008). k0s manages its own state in
|
|
# data_dir + kine (when storage_backend = dqlite/sqlite). Backup of the
|
|
# data dir is captured by SystemBackupDef.host_configs targeting <data_dir>.
|
|
concerns | _concerns_lib.ServiceConcerns | optional,
|
|
|
|
..
|
|
},
|
|
}
|