# infrastructure/core/node-maintenance.yaml # Block new placement until offline, power and runtime-storage checks pass. # Existing workloads and storage DaemonSets are not drained by these resources. apiVersion: v1 kind: Node metadata: name: titan-04 labels: hardware: rpi5 node-role.kubernetes.io/worker: "true" longhorn-host: "true" annotations: kustomize.toolkit.fluxcd.io/ssa: Merge kustomize.toolkit.fluxcd.io/prune: disabled atlas.bstein.dev/maintenance-reason: "Fresh undervoltage events; verify power delivery under load before accepting new workloads." spec: unschedulable: true --- apiVersion: v1 kind: Node metadata: name: titan-05 labels: hardware: rpi5 node-role.kubernetes.io/worker: "true" longhorn-host: "true" annotations: kustomize.toolkit.fluxcd.io/ssa: Merge kustomize.toolkit.fluxcd.io/prune: disabled atlas.bstein.dev/maintenance-reason: "Offline; verify identity, power, storage and loaded operation before accepting new workloads." spec: unschedulable: true --- apiVersion: v1 kind: Node metadata: name: titan-06 labels: hardware: rpi5 node-role.kubernetes.io/worker: "true" longhorn-host: "true" annotations: kustomize.toolkit.fluxcd.io/ssa: Merge kustomize.toolkit.fluxcd.io/prune: disabled atlas.bstein.dev/maintenance-reason: "Offline; verify identity, power, storage and loaded operation before accepting new workloads." spec: unschedulable: true --- apiVersion: v1 kind: Node metadata: name: titan-08 labels: hardware: rpi5 node-role.kubernetes.io/worker: "true" longhorn-host: "true" annotations: kustomize.toolkit.fluxcd.io/ssa: Merge kustomize.toolkit.fluxcd.io/prune: disabled atlas.bstein.dev/maintenance-reason: "Runtime USB disk reaches sustained saturation during image builds; repair media and verify loaded I/O before uncordoning." spec: unschedulable: true --- apiVersion: v1 kind: Node metadata: name: titan-14 labels: hardware: rpi4 node-role.kubernetes.io/worker: "true" longhorn-host: "true" annotations: # Keep the runtime's other node fields; quarantine only owns placement. kustomize.toolkit.fluxcd.io/ssa: Merge kustomize.toolkit.fluxcd.io/prune: disabled atlas.bstein.dev/maintenance-reason: "Runtime USB flash saturation; replace or repair media and verify I/O before uncordoning." spec: unschedulable: true --- apiVersion: v1 kind: Node metadata: name: titan-11 labels: hardware: rpi5 node-role.kubernetes.io/worker: "true" longhorn-host: "true" annotations: kustomize.toolkit.fluxcd.io/ssa: Merge kustomize.toolkit.fluxcd.io/prune: disabled atlas.bstein.dev/maintenance-reason: "Repeated fresh undervoltage events; verify power delivery under load before accepting new workloads." spec: unschedulable: true --- apiVersion: v1 kind: Node metadata: name: titan-18 labels: hardware: rpi4 node-role.kubernetes.io/worker: "true" longhorn-host: "true" annotations: kustomize.toolkit.fluxcd.io/ssa: Merge kustomize.toolkit.fluxcd.io/prune: disabled atlas.bstein.dev/maintenance-reason: "Sustained runtime I/O stalls prevent Longhorn engine startup; reduce load and verify storage before uncordoning." spec: unschedulable: true --- apiVersion: v1 kind: Node metadata: name: titan-12 labels: hardware: rpi4 node-role.kubernetes.io/worker: "true" longhorn-host: "true" annotations: kustomize.toolkit.fluxcd.io/ssa: Merge kustomize.toolkit.fluxcd.io/prune: disabled atlas.bstein.dev/maintenance-reason: "SD-backed runtime stalls caused correlated probe failures; verify loaded I/O before new placement." spec: unschedulable: true