Files
home-server/talos/talconfig.with-longhorn.yaml

97 lines
3.7 KiB
YAML

# yaml-language-server: $schema=../talconfig.json
# Restore target after GPT wipe: `cp talconfig.with-longhorn.yaml talconfig.yaml` then `talhelper genconfig -o out` and apply all nodes.
# Noble lab — Talos machine configs via talhelper.
# 1) talhelper gensecret > talsecret.yaml # or SOPS-encrypt to talsecret.sops.yaml (do not commit)
# 2) talhelper genconfig -o out # writes to talos/out/ (gitignored from repo root)
# 3) talosctl apply-config --insecure -n <ip> --file out/noble-<host>.yaml
#
# installDisk: confirm with `talosctl disks -n <ip> --insecure` (Proxmox virtio is often /dev/sda).
# Longhorn data disk: second disk (often /dev/sdb SCSI or /dev/vdb virtio) → XFS at /var/mnt/longhorn.
# After changing schematic/extensions: regenerate configs, upgrade nodes with new installer image, then reboot if needed.
# Helm must set defaultDataPath to /var/mnt/longhorn (see clusters/noble/bootstrap/longhorn/values.yaml).
#
# Image Factory schematic (iscsi-tools + util-linux-tools), nocloud installer — pinned per-node via `talosImageURL`
# (base URL only, no `:tag` — talhelper validates and appends `talosVersion`).
# After edits: `talhelper genconfig -o out` → `machine.install.image` in out/*.yaml.
# Cluster upgrade: `talosctl upgrade --image factory.talos.dev/nocloud-installer/249d9135de54962744e917cfe654117000cba369f9152fbab9d055a00aa3664f:v1.12.6 -n <ip> --wait`
clusterName: noble
talosVersion: v1.12.6
endpoint: https://192.168.50.230:6443
allowSchedulingOnControlPlanes: true
additionalApiServerCertSans:
- 192.168.50.230
- noble.lab
- kube.noble.lab
nodes:
- hostname: helium
ipAddress: 192.168.50.10
controlPlane: false
installDisk: /dev/sda
talosImageURL: &noble-installer factory.talos.dev/nocloud-installer/249d9135de54962744e917cfe654117000cba369f9152fbab9d055a00aa3664f
- hostname: neon
ipAddress: 192.168.50.20
controlPlane: true
installDisk: /dev/sda
talosImageURL: *noble-installer
- hostname: argon
ipAddress: 192.168.50.30
controlPlane: true
installDisk: /dev/sda
talosImageURL: *noble-installer
- hostname: krypton
ipAddress: 192.168.50.40
controlPlane: true
installDisk: /dev/sda
talosImageURL: *noble-installer
controlPlane:
schematic: &noble-schematic
customization:
systemExtensions:
officialExtensions:
- siderolabs/iscsi-tools
- siderolabs/util-linux-tools
userVolumes:
- &longhorn-data
name: longhorn
# Whole dedicated disk (no partition min/max math). Avoids "not enough space" when
# grow+maxSize:100% on a separate data disk incorrectly fails provisioning.
volumeType: disk
provisioning:
diskSelector:
# Proxmox virtio SCSI: second disk is often vdb, not sdb. Prefer WWN/serial in prod.
match: disk.dev_path == '/dev/sdb' || disk.dev_path == '/dev/vdb'
filesystem:
type: xfs
worker:
schematic: *noble-schematic
userVolumes:
- *longhorn-data
patches:
- |-
cluster:
network:
cni:
name: none
machine:
kubelet:
# Avoid NodeIPController warnings when VIP / multiple addresses exist; pin to LAN.
nodeIP:
validSubnets:
- 192.168.50.0/24
extraMounts:
- destination: /var/mnt/longhorn
type: bind
source: /var/mnt/longhorn
options:
- bind
- rshared
- rw
# Chart DaemonSet hostPath is /var/lib/longhorn (not configurable in Helm 1.11.x).
- destination: /var/lib/longhorn
type: bind
source: /var/mnt/longhorn
options:
- bind
- rshared
- rw