Files
Homelabv4/infrastructure/rook-ceph/cluster-values.yaml
T
Scooby HuskyandClaude Opus 4.6 a93df9375a Add talos-cp-02 back to Rook-Ceph nodes list
LVM filter now applied via Talos machine config on all nodes to prevent
lvs hang on BIOS partitions. talos-cp-02 can safely run OSD prepare jobs.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-14 16:31:13 -05:00

205 lines
4.5 KiB
YAML

# Rook-Ceph Cluster Values
# https://github.com/rook/rook/blob/master/deploy/charts/rook-ceph-cluster/values.yaml
# Operator namespace (must match where operator is deployed)
operatorNamespace: rook-ceph
# Enable toolbox for debugging
toolbox:
enabled: true
tolerations:
- key: "node-role.kubernetes.io/control-plane"
operator: "Exists"
effect: "NoSchedule"
resources:
limits:
memory: "256Mi"
requests:
cpu: "50m"
memory: "64Mi"
# Enable Prometheus monitoring
monitoring:
enabled: true
createPrometheusRules: true
# Ceph Cluster specification
cephClusterSpec:
# Ceph version - Squid (v19)
cephVersion:
image: quay.io/ceph/ceph:v19.2.0
allowUnsupported: false
# Data directory on host
dataDirHostPath: /var/lib/rook
# Skip upgrade checks (homelab - we control updates)
skipUpgradeChecks: false
# Continue if host not found
continueUpgradeAfterChecksEvenIfNotHealthy: false
# Wait for nodes before starting OSDs
waitTimeoutForHealthyOSDInMinutes: 10
# Mon configuration
mon:
count: 3
allowMultiplePerNode: false
# MGR configuration
mgr:
count: 2
allowMultiplePerNode: false
modules:
- name: pg_autoscaler
enabled: true
- name: rook
enabled: true
- name: dashboard
enabled: true
# Dashboard configuration
dashboard:
enabled: true
ssl: true
port: 8443
# Network configuration
network:
connections:
encryption:
enabled: false
compression:
enabled: false
# Crash collector
crashCollector:
disable: false
# Log collector
logCollector:
enabled: true
periodicity: daily
maxLogSize: 500M
# Cleanup policy (for uninstall)
cleanupPolicy:
confirmation: ""
sanitizeDisks:
method: quick
dataSource: zero
iteration: 1
allowUninstallWithVolumes: false
# Resource limits
resources:
mgr:
limits:
memory: "1Gi"
requests:
cpu: "100m"
memory: "512Mi"
mon:
limits:
memory: "2Gi"
requests:
cpu: "100m"
memory: "512Mi"
osd:
limits:
memory: "16Gi"
requests:
cpu: "2"
memory: "16Gi"
prepareosd:
limits:
memory: "400Mi"
requests:
cpu: "100m"
memory: "50Mi"
# Storage configuration - explicit nodes with passthrough NVMe
# LVM filter applied via Talos machine config to prevent lvs hang on BIOS partitions
storage:
useAllNodes: false
useAllDevices: false
nodes:
- name: "talos-cp-01"
devices:
- name: "nvme0n1"
- name: "talos-cp-02"
devices:
- name: "nvme1n1"
- name: "talos-cp-03"
devices:
- name: "nvme0n1"
- name: "talos-cp-04"
devices:
- name: "nvme0n1"
config:
osdsPerDevice: "1"
# Placement - allow on control-plane
placement:
all:
tolerations:
- key: "node-role.kubernetes.io/control-plane"
operator: "Exists"
effect: "NoSchedule"
# Health check configuration
healthCheck:
daemonHealth:
mon:
disabled: false
interval: 45s
osd:
disabled: false
interval: 60s
status:
disabled: false
interval: 60s
livenessProbe:
mon:
disabled: false
mgr:
disabled: false
osd:
disabled: false
# Block pools configuration - matches existing deployment
cephBlockPools:
- name: replicapool
spec:
failureDomain: host
replicated:
size: 2 # 2 replicas
storageClass:
enabled: true
name: rook-ceph-block
isDefault: true
reclaimPolicy: Delete
allowVolumeExpansion: true
volumeBindingMode: Immediate
parameters:
imageFormat: "2"
imageFeatures: layering
csi.storage.k8s.io/provisioner-secret-name: rook-csi-rbd-provisioner
csi.storage.k8s.io/provisioner-secret-namespace: rook-ceph
csi.storage.k8s.io/controller-expand-secret-name: rook-csi-rbd-provisioner
csi.storage.k8s.io/controller-expand-secret-namespace: rook-ceph
csi.storage.k8s.io/node-stage-secret-name: rook-csi-rbd-node
csi.storage.k8s.io/node-stage-secret-namespace: rook-ceph
csi.storage.k8s.io/fstype: ext4
# Disable CephFS (not needed)
cephFileSystems: []
# Object Store with OIDC support - simplified for now
cephObjectStores: []
# Ingress for dashboard (also applied via postsync hook)
ingress:
dashboard: {}