Move to a three-node cluster with a Talos VIP; add Longhorn
Every node is now both control plane and worker, giving real tolerance for losing any single machine (etcd quorum needs 3, not 1). A Talos VIP gives the cluster one stable address regardless of which node answers. Also pre-installs Longhorn for replicated storage, backed by a Talos UserVolume on each node's second disk (>=900GB, non-system) rather than the default path — mirroring the pattern from the homescale repo. Docs renumbered to make room for 06-longhorn.md; checklist, glossary, network map, and CLAUDE.md's guided-bootstrap instructions updated to match, including asking the user for node IPs, VIP, and disk info before generating any Talos config. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 5
parent
92c3ad3191
commit
110bd97cca
@@ -0,0 +1,36 @@
|
||||
# Longhorn — this repo's pre-installed storage layer. Same pattern as
|
||||
# apps/metallb.yaml: an Application pointing at a Helm chart
|
||||
# (apps/longhorn/) that pulls in the official upstream chart. Once this
|
||||
# syncs, any app in this cluster can request persistent storage (a
|
||||
# PersistentVolumeClaim) and actually get real, replicated storage backed
|
||||
# by the dedicated disk each node prepared in
|
||||
# talos/patch-longhorn.yaml — see docs/06-longhorn.md.
|
||||
#
|
||||
# Longhorn needs privileged Pods (it manages block devices directly) and
|
||||
# the `open-iscsi`/`util-linux-tools` Talos system extensions baked into
|
||||
# your node image — both covered in docs/01-prerequisites.md and
|
||||
# docs/02-talos-bootstrap.md. Skipping either means Longhorn's Pods will
|
||||
# sit unhealthy no matter how correctly this Application syncs.
|
||||
apiVersion: argoproj.io/v1alpha1
|
||||
kind: Application
|
||||
metadata:
|
||||
name: longhorn
|
||||
namespace: argocd
|
||||
spec:
|
||||
project: default
|
||||
|
||||
source:
|
||||
repoURL: https://github.com/YOUR_GITHUB_USERNAME/k8s-starter-pack.git
|
||||
targetRevision: main
|
||||
path: apps/longhorn
|
||||
|
||||
destination:
|
||||
server: https://kubernetes.default.svc
|
||||
namespace: longhorn-system
|
||||
|
||||
syncPolicy:
|
||||
automated:
|
||||
prune: true
|
||||
selfHeal: true
|
||||
syncOptions:
|
||||
- CreateNamespace=true
|
||||
Reference in New Issue
Block a user