Initial commit: Add tinkerbell-k0s cluster templates

This commit is contained in:
Pavel Basov
2025-12-15 20:35:51 +01:00
commit b0d7a8eb4e
17 changed files with 460 additions and 0 deletions

View File

@@ -0,0 +1,60 @@
# Cluster parameters
controlPlaneNumber: 1 # @schema description: The number of control plane replicas (pods); type: integer; minimum: 1; maximum: 5
workersNumber: 1 # @schema description: The number of worker nodes; type: integer; minimum: 0
clusterIdentity: # @schema description: Cluster identity reference, auto-populated; type: object
name: "" # @schema description: Cluster identity secret name, auto-populated; type: string
# Cluster network configuration
clusterNetwork: # @schema description: Cluster network configuration; type: object
pods: # @schema description: Pod network configuration; type: object
cidrBlocks: # @schema description: Pod CIDR blocks; type: array
- 10.244.0.0/16
services: # @schema description: Service network configuration; type: object
cidrBlocks: # @schema description: Service CIDR blocks; type: array
- 10.96.0.0/12
# Control plane endpoint (optional override)
controlPlaneEndpoint: # @schema description: Control plane endpoint configuration; type: object
host: "" # @schema description: Optional fixed host (defaults to k0smotron.externalAddress); type: string
# Worker machine configuration
worker: # @schema description: Worker machine configuration; type: object
bootMode: netboot # @schema description: Boot mode; type: string; enum: [netboot, isoboot]
isoURL: "" # @schema description: ISO URL for isoboot mode; type: string
hardwareAffinity: # @schema description: Hardware affinity for workers; type: object
matchLabels: # @schema description: Labels to match; type: object
tinkerbell.org/role: worker
templateOverride: "" # @schema description: Tinkerbell workflow template override; type: string
args: # @schema description: Arguments to pass to k0s worker; type: array
- --enable-cloud-provider
# K0smotron hosted control plane parameters
k0smotron: # @schema description: K0smotron hosted control plane parameters; type: object
externalAddress: "" # @schema description: External address for NodePort/ClusterIP (management cluster node IP); type: string
persistence: # @schema description: Persistence configuration for control plane; type: object
type: emptyDir # @schema description: Persistence type (emptyDir, hostPath, pvc); type: string; enum: [emptyDir, hostPath, pvc]
etcd: # @schema description: Etcd configuration; type: object
persistence: # @schema description: Etcd persistence configuration; type: object
storageClass: "" # @schema description: Storage class for etcd PVC (required for local storage); type: string
size: 1Gi # @schema description: Size of etcd volume; type: string
service: # @schema description: Service configuration for control plane; type: object
type: NodePort # @schema description: Service type; type: string; enum: [LoadBalancer, NodePort, ClusterIP]
apiPort: 30443 # @schema description: API port (use 30000-32767 for NodePort); type: integer
konnectivityPort: 30132 # @schema description: Konnectivity port (use 30000-32767 for NodePort); type: integer
annotations: {} # @schema description: Service annotations; type: object
k0sConfig: true # @schema description: Enable custom k0s configuration; type: boolean
# K0s parameters
k0s: # @schema description: K0s parameters; type: object
version: v1.33.4+k0s.0 # @schema description: K0s version; type: string
api: # @schema description: Kubernetes API server parameters; type: object
extraArgs: # @schema description: Extra arguments for API server; type: object
kubelet-preferred-address-types: "ExternalIP,Hostname,InternalDNS,ExternalDNS"
network: # @schema description: Network configuration for K0s; type: object
provider: calico # @schema description: Network provider; type: string; enum: [calico, kuberouter, custom]
calico: # @schema description: Calico configuration; type: object
mode: vxlan # @schema description: Calico backend mode; type: string; enum: [vxlan, ipip, bird]
ipAutodetectionMethod: first-found # @schema description: Method for detecting node IP; type: string
telemetry: # @schema description: Telemetry configuration; type: object
enabled: false # @schema description: Enable telemetry; type: boolean