[alert] NvmeDriveWearHigh (monitoring) #686
Closed
opened 2026-08-28 04:49:23 +00:00 by alert-monitor-bot
·
1 comment
No Branch/Tag Specified
main
fix/ma-sendspin-mdns-net1
claude/ma-pocketcasts-up-next-mark-played
claude/ma-pocketcasts-up-next-playlist
revert/ma-po-token-server
alert-fix/issue-1453
claude/gitea-mcp-imagerepo
feat/ma-youtube-music-po-token-v2
feat/ma-youtube-music-po-token
claude/coredns-talos-owned-2
claude/coredns-talos-owned
claude/k8s-gateway-ingress-resolver
claude/egress-followups
feat/wiki-cronjobs
renovate/hermes-image
renovate/ci-minor-patch
renovate/influxdb
renovate/home-assistant-minor-patch
renovate/multus
renovate/all-minor-patch
renovate/pin-image-digests
claude/mqtt-admin-register
claude/shelly-manager-mdns
feat/wiki-encyclopedia-pilot
ci-image/claude-2.1.310
claude/mosquitto-legacy-auth-removal
claude/egress-lockdown
fix/gate-embedded-refresh-interval
fix/gate-embedded-browser-host
feat/authentik-gate-forwardauth
docs/drop-wildcard-references
fix/netbird-controller-disable-dns
feat/dns-labels-split-2
feat/dns-labels-split-1
fix/cloudflare-lb-sync-image-tag
feat/cloudflare-lb-sync
fix/wordpress-php85-php2shell
feat/update-os
chore/talos-1.13.12
atlas/talos-v1.13.12-cve-2026-99999
fix/gitea-webhook-sync-org-scope
atlas/kuma-mcb-www-retries
feat/hermes-gitea-pr-review-loop
atlas/traefik-chart-42
fix/monitoring-k8s-gateway-probe
alert-fix/issue-1081-rotator
ci-image/claude-2.1.306
alert-fix/issue-1084-v2
atlas/flux-2.9.6
alert-fix/issue-1082
feat/hermes-gitea-issues-kanban
worktree-restore-test-real
fix/hermes-multiplex-env
feat/hermes-experts
feat/hermes-ha-mcp
feat/kuma-status-page
fix/hermes-ha-updates-review
feat/hermes-alert-monitor
feat/hermes-ha-updates
fix/turn-tcp-router
fix/crowdsec-own-ca
fix/livekit-service-links
fix/crowdsec-lapi-transport-ca
feat/matrix-element-call
feat/kuma-public-coverage
feat/ha-matrix-nabu-secret
feat/hermes-matrix-cross-signing
feat/hermes-matrix
fix/wiki-basic-auth-in-service
proposal/traefik-vip-maglev-dsr
fix/hermes-dashboard-ws-ping-timeout
fix/hermes-dashboard-ws-ping-interval
fix/hermes-dashboard-refresh-token
feat/wiki-drop-gate
feat/wiki-oidc-provider
fix/hermes-soul-talos-node-names
claude/docs-konairius-main
claude/drop-k-renner-org-secrets
claude/prompts-main
claude/default-branch-main
feat/hermes-cli-logins
claude/plan-step0-claude-bot
alert-fix/issue-1363
claude/homelab-konairius
claude/konairius-org-secrets
fix/hermes-image-registry-bot
feat/hermes-use-custom-image
feat/hermes-image
feat/kuma-task5-monitors
feat/hermes-gitea
fix/hermes-configmap-namespace
feat/hermes-homelab-context
fix/uptime-kuma-script-mount
feat/kuma-task4-bootstrap
feat/kuma-task4-cluster
feat/kuma-sync-default-notifications
fix/hermes-image-policy
fix/kuma-sync-foreign-key-create
feat/hermes-agent
chore/kuma-sync-smoke-remove
feat/kuma-sync-smoke
feat/kuma-sync-deploy
ci-image/claude-2.1.303
renovate/authentik
feat/kuma-sync
docs/uptime-kuma-plan
chore/remove-autokuma
fix/uptime-kuma-ipv6
feat/autokuma-pilot-update
fix/drop-flux-image-automation-alert
feat/autokuma-pilot
feat/autokuma
fix/uptime-kuma-fail-guard
fix/uptime-kuma-setup-diagnostics
feat/uptime-kuma-vps
ci/ansible-image-hvac
claude/plan-homelab-konairius-main
fix/kubejobfailed-resolve-on-later-success
claude/homeassistant-konairius
claude/ha-config-sync-identity
feat/site-base-domain
claude/review-bot-repos-konairius
claude/authentik-konairius-images
claude/notes-renovate-konairius
claude/vsftpd-konairius-image
claude/registry-bot-read-scope
claude/registry-bot
ci-image/claude-2.1.302
claude/review-bot-approved
claude/review-bot-backends
fix/wp-pg-recovery-source
feat/review-bot-status
worktree-hcloud-wg-site
node-dns-via-k8s-gateway
chore/remove-paperclip
worktree-k8s-gateway-chart-4
fix/review-bot-approve-with-unverified
chore/remove-wiki-maintenance-ci
fix/review-bot-unique-tag
fix/review-bot-rereview
fix/review-bot-build-trigger
fix/review-bot-backoff-cap
fix/review-bot-rate-limit
chore/disable-old-pr-review
feat/review-bot-deploy
feat/review-bot-service
feat/pr-review-mistral
fix/gitea-mcp-public-gitea-url
alert-fix/issue-1242
alert-fix/issue-1241
fix/gitea-mcp-command
feat/gitea-mcp
claude/netbird-service-sync-pin
claude/gitea-public
feat/embed-knn-bench
claude/pr-review-latest-cli
ci-image/claude-2.1.296
chore/decommission-openproject
claude/pr-review-central
feat/openproject-authentik-oidc
fix/alloy-syslog-udm-cef-regex
alert-fix/issue-1217
alert-fix/issue-1214
atlas/ren-1363-openproject-seeder-order
atlas/ren-1367-gitea-1.27
atlas/ren-1367-gitea-pre-upgrade-snapshot
atlas/ren-1363-openproject
atlas/ren-1345-ops-image-jq
atlas/ren-1345-hermes-prometheus-read
atlas/ren-1345-bridge-agent-secrets
atlas/ren-802-retire-sml2mqtt
atlas/ren-953-remove-legacy-users
atlas/ren-1307-edge1-register
atlas/ren-1307-edge1-cred-receiver
atlas/ren-953-controller-ha-cert
atlas/ren-1256-prune-shellies-secret
atlas/ren-953-ha-mqtt-cert-sync
atlas/ren-1256-adopt-shellies-secret
atlas/ren-1203-eso-gitea-namespace
atlas/ren-1203-gitea-package-retention
atlas/ren-1196-agent-runtime-tzdata
atlas/ren-1017-remove-legacy-shellies
atlas/ren-1017-ht-wake-reland
atlas/ren-1017-shelly-30
atlas/ren-1167-revert-1183
alert-fix/issue-1184
atlas/ren-1017-ht-wake
atlas/ren-1017-shelly-group5c
atlas/ren-1017-shelly-group5b
atlas/ren-1080-controller-1d03144-rotate-hold
atlas/ren-1017-shelly-group5
atlas/ren-1017-shelly-group4
atlas/ren-1053-controller-a307693
atlas/ren-1017-shelly-group3
atlas/ren-1017-shelly-group2
atlas/ren-1017-shelly-group1
atlas/ren-1017-device-list
atlas/ren-1017-shelly-accounts
atlas/ren-953-agents-read-paperclip-pod
atlas/ren-953-agents-read
atlas/ren-953-ha-mqtt-tls
atlas/ren-953-ha-account
atlas/ren-953-evcc-cert
atlas/ren-953-evcc-account
atlas/ren-953-z2m-cert
atlas/ren-953-z2m-account
atlas/ren-953-health-probe-cert
atlas/ren-931-agent-shelly-manager
atlas/ren-900-controller-bump
atlas/ren-900-mosquitto-dynsec
atlas/ren-888-revoke-test-account
atlas/ren-888-mqtt-account-controller
atlas/ren-841-remove-repair-job
atlas/ren-841-k8s-plugin-termination-receipt
atlas/ren-841-lease-receipt-repair
atlas/ren-802-suspend-open3e-int-rotator
atlas/ren-826-remove-read-job
atlas/ren-826-room-setpoint-read
atlas/ren-809-remove-capture
atlas/ren-809-open3e-fbh-capture
atlas/ren-723-authentik-2026.8.3
atlas/ren-772-remove-rekey-job
atlas/ren-772-wp-repo4-rekey
atlas/ren-722-mdns-relay-v191-attach
atlas/ren-723-openbao-rolling
atlas/ren-722-dhcp-lease-renew
atlas/ren-722-cni-plugins-installer-v1.9.1
atlas/ren-723-influxdb-snapshot
atlas/ren-722-cni-plugins-v1.9.1
atlas/ren-722-job-force-annotations
atlas/ren-717-matrix-bridge-1791195981
atlas/ren-702-paperclip-cap-kill
atlas/ren-691-matrix-bridge-1791179547
atlas/ren-685-matrix-bridge-1791177680
ci-image/claude-2.1.289
atlas/ren-671-matrix-bridge-1791152484
atlas/ren-663-matrix-public
atlas/ren-587-matrix-bridge
atlas/ren-567-authentik-grant-types
atlas/ren-567-mas
atlas/ren-627-edge1-ssh-egress
atlas/ren-621-loki-read-gateway
atlas/ren-603-pclp-pg-memory
atlas/ren-583-gitea-pvc-volumename
atlas/ren-583-gitea-volume-60gi
atlas/ren-563-claude-session-resume
atlas/ren-563-revert-1111
atlas/ren-567-matrix
atlas/ren-563-acpx-session-resume
atlas/ren-544-argus-token-v3
atlas/ren-539-atlas-token-v3
atlas/ren-541-claude-auto-memory
atlas/ren-540-hestia-token-v3
atlas/ren-528-review-bot-verify-repo
atlas/ren-533-shelly-manager-probe
atlas/ren-525-rotate-argus-token
atlas/ren-509-rotate-agent-tokens
atlas/ren-487-hubble-relay
atlas/ren-488-govulncheck
atlas/ren-487-agent-pod-egress
atlas/ren-453-retire-immich-library
atlas/ren-451-restore-abort
atlas/ren-451-restore-test-skip-cnpg
alert-fix/issue-1095
atlas/ren-442-restore-capacity-gate
z2m-ws90-converter
alert-fix/issue-1089
atlas/ren-419-ephemeral-wear-alert
alert-fix/issue-1084
alert-fix/issue-1081
atlas/ren-414-agent-kubectl-sa
atlas/ren-411-agent-gitea-egress
atlas/ren-409-paperclip-14769
atlas/ren-405-k8s-plugin-dist
atlas/ren-401-kaniko-oom
atlas/ren-401-paperclip-patched-image
z2m-memory-limit
atlas/ren-350-beets-write-retry
fix/navidrome-native-api
atlas/ren-350-paperclip-lidarr-cnp
atlas/ren-350-beets-retry-skips
atlas/ren-350-beets-write
atlas/ren-350-beets-phase2
atlas/ren-350-beets-cronjob
atlas/ren-339-restore-test-teardown
atlas/ren-339-restore-roll
atlas/ren-339-restore-plugin
atlas/ren-339-ha-backup-cleanup
atlas/ren-339-ha-restore-test
atlas/ren-315-renovate-groups
atlas/ren-315-renovate-tool-install
atlas/ren-107-retention-divergence-alert
atlas/ren-159-remove-ren28-negative-probes
atlas/ren-302-claude-agent-acp
atlas/ren-298-agent-sandbox-v0.5.6
atlas/ren-294-ical-proxy-926ead0
atlas/ren-286-agent-runtime-own-workflow
atlas/ren-285-agent-sandbox-labels
atlas/ren-286-agent-runtime-images
atlas/ren-285-agent-sandbox
atlas/ren-148-paperless-ingress-scoping
atlas/ren-93-promql-gate
atlas/ren-268-ha-hacs-proxy
atlas/ren-266-hacs-versions
atlas/ren-245-ha-critical-alerts
atlas/ren-243-ha-window
feat/openbao-secret-exists-check
atlas/ren-239-ical-proxy-main-73b5d97
atlas/ren-238-ical-proxy-main-4783abe
atlas/ren-201-ical-proxy-gitea-image
atlas/ren-216-renovate
atlas/ren-152-wal-backlog-retune
atlas/ren-198-pin-kps-chart
atlas/ren-176-ha-pg-walstorage
atlas/ren-166-cilium-verdict-metric
atlas/ren-7-alert-contacts
atlas/ren-177-velero-cephfs-readonly-backuppvc
feat/paperclip-api-door
atlas/ren-186-cost-ledger-sync
atlas/ren-183-yaml-anchors
atlas/ren-161-promtool-ci
atlas/ren-163-ceph-nearfull-headroom
atlas/ren-7-restore-audiobooks
atlas/ren-127-podmonitor-comment
atlas/ren-165-wal-maxparallel-stage
atlas/ren-141-ha-pg-32gi
atlas/ren-147-cilium-agent-metrics-service
atlas/ren-142-negative-control-probe
atlas/ren-140-negative-test-probes
atlas/ren-102-flux-ksm-crs
atlas/ren-7-pilot-endpointmonitors
atlas/ren-131-openbao-unavailable-for
atlas/ren-106-narrow-eso-failed
atlas/ren-116-probe-citation-path
atlas/ren-103-scrape-doc-gaps
atlas/ren-6-imc-deploy
atlas/ren-100-externalsecret-healthcheck
atlas/ren-91-imagepolicy-total-order
atlas/ren-88-ceph-ec-pool-false-page
atlas/ren-86-paperclip-dependson-monitoring
atlas/ren-36-prometheus-read-path
docs/probe-egress-dependency-and-revert-recipe
docs/paperclip-claude-token
fix/paperclip-memory
docs/probe-cnp-egress-and-status-caveats
feat/ren-21-paperless-app-health-probe
feat/ren-21-navidrome-app-health-probes
alert-fix/issue-968
feat/paperclip-wiki-key
feat/lidarr
feat/wiki-api-key-paperclip
feat/paperclip-signup-off
feat/paperclip
feat/netbird-retire-vps-proxy
feat/navidrome
feat/immich-bulk-cutover
feat/immich-bulk-pvcs
feat/wiki-image-automation
chore/wiki-image-fact-drafter
chore/wiki-image-facts-page
chore/abs-drop-old-books-pvc
chore/wiki-image-judge-one-request
feat/abs-books-bulk
feat/libation-strip-branding
feat/cephfs-ec-bulk
feat/open3e-int-broker-user
feat/wiki-reloader
chore/wiki-image-phases-4-6
feat/wiki-anthropic-key
feat/wiki-service-write-token
chore/retire-python-wiki-index
feat/wiki-machine-door
chore/wiki-phase3-image
chore/wiki-phase2-image
chore/wiki-build-1790250017
feat/wiki-gate
fix/gitea-egress-wiki
feat/wiki-service-manifests
docs/proposal-wiki-web-api
alert-fix/issue-937
fix/alertmanager-info-inhibitor
feat/cephx-allowed-ciphers-aes256k
feat/cephx-drop-prior-csi-keys
ci/wiki-consolidate-tilde-paths
feat/cephx-csi-aes256k
ci/wiki-consolidate-in-ci
chore/talos-1.13.10
feat/drain-tolerant-singletons
ci/wiki-distill-skip-empty
ci/wiki-audit-script
fix/k8s-gateway-oci-chart
docs/network-traffic-classes-as-built
feat/node-ip-vlan-46
alert-fix/issue-920
feat/bird-attached-node0
feat/node-vlan-46-link
chore/cni-drop-stage-labels
feat/cni-sole-writer-converge-b2
feat/cni-sole-writer-converge-b1
chore/cni-stage-k8s-1
fix/whereabouts-reconciler-cordon
chore/cni-stage-k8s-2
chore/cni-stage-k8s-3
feat/cni-staged-sole-writer
feat/netbird-service-sync-phase2
feat/netbird-service-sync-phase1
chore/gitea-namespace-phase3
feat/gitea-namespace-phase2
feat/gitea-namespace-phase1
ci-image/claude-2.1.280
fix/ci-claude-refresh-mixed-pins
fix/align-ci-claude-pins
fix/ci-claude-bump-token-newline
worktree-fix-paperless-memory-limit
alert-fix/issue-897
alert-fix/issue-896
fix/wiki-maintenance-merge-verify
feat/pick-model-newest-among-comparable
feat/pick-model-typesafe
fix/wiki-maintenance-rebase-push
fix/wiki-maintenance-strip-secrets
fix/wiki-maintenance-image-2.1.278
feat/wiki-maintenance-ci
fix/wiki-index-commit-tags
fix/wiki-index-pin-digest-2
alert-fix/issue-880
fix/wiki-index-tree-paging
fix/wiki-index-pin-digest
fix/wiki-index-strip-credentials
fix/gitea-webhook-egress-wiki-index
fix/wiki-index-openbao-ingress
feat/wiki-index-deploy
feat/wiki-index-image
fix/eso-allow-ai
feat/wiki-embed
fix/multus-only-cni-writer
fix/cilium-cni-uninstall
feat/onebase-room-telemetry
fix/external-dns-scrape-policy
feat/dns-monitoring
fix/external-dns-annotation-prefix
fix/ftp-scanner-probe
fix/libation-accounts-persistence
fix/libation-pin-14.2.1
feat/ceph-read-affinity
fix/bird-local-cidr
feat/single-pod-table
docs/traffic-classes
feat/podpod-rules
fix/bird-static
fix/bird-digest
feat/bird-mesh2
feat/bird-kubectl
feat/bird-mesh
feat/bird-image-api
feat/bird-daemonset
alert-fix/issue-844
feat/bird-image
alert-fix/issue-843
feat/pod-egress-vlan47
docs/576-rejected-options
feat/antrea-eval
feat/nodeip-pod0
feat/cilium-native-pod0
feat/bgp-peer-ingress
feat/bgp-listen-ingress
feat/ingress-static-addressing
feat/k8s-net-split-phase-a
feat/cilium-pin-devices
chore/ci-k8s-2026-09-08
feat/flux-2.9.5
feat/ci-tool-pins
feat/openbao-seal-key-bootstrap
feat/openbao-static-seal
fix/openbao-alerts-immediate
feat/intel-gpu-dashboard
feat/intel-gpu-exporter
feat/intel-gpu-monitoring-resource
fix/reloader-configmap-annotations
netbird-proxy-protocol-digest
netbird-proxy-protocol-deploy
netbird-proxy-protocol
netbird-proxy-services-uid
netbird-proxy-services-deploy
netbird-proxy-services
proxy-watchdog-cooldown
proposal-node-roll-downtime
alert-fix/issue-808
lapi-transport-phase-2
ceph-address-ranges
fix/arp-flux-second-nic
rehearsal-san
osd-partlabel-no-ceph
lapi-transport-post-crds
san-host-device-nad
san-rollout
san-role-rename
ceph-20-cutover
rebuild-tooling
apply-set-hygiene
rebuild-image-resilience
cold-rebuild-ordering
fix/bootstrap-honour-vm-state
chore/remove-paperless-eval
issue-fix/789-cilium-node-ula
issue-fix/787-mdns-relay-supervisor
trmnl-firmware-sync-off
trmnl-device-tls
vmtest-flux
eval-script-fixes
alert-fix/issue-780
worktree-eval-script-fixes
eval-out-of-iac
paperless-eval-jobs
paperless-eval-fixes
paperless-eval-instance
crowdsec-tailer-polling
crowdsec-alerting
llama-single-slot
llama-ctx-revert
arm-crowdsec-proxy-1
fix-proxy-deploy-triggers
llama-ctx-fix
arm-crowdsec-proxy-2
llama-ctx-assist
crowdsec-metrics-dashboard
alert-fix/issue-761
embed-batch-fix
crowdsec-lapi-service-annotations
ha-llm-agent
paperless-eval
crowdsec-bouncer-unpack-on-host
embed-bgem3
crowdsec-bouncer-fetch-controller
crowdsec-edge-lapi
alert-fix/issue-750
embed-pvc
immich-drop-pgvectors
fix-stale-migration-docs
embed-oom
embed-eval
paperless-reloader
close-paperless-data-migration
paperless-llm
paperless-3x
llama-gate-flow
llama-authentik-gate
alert-fix/issue-726
llama-single-alias
llama-alias-order
llama-model-alias
ai-eval
remove-netbird-backup
llama-thinking-alias
llama-split-embed
netbird-backup-vacuum-into
llama-server
intel-gpu-device-plugin
ceph-osd-by-label
alert-fix/issue-714
alert-fix/issue-712
cilium-track-untracked-settings
proposal-cilium-single-owner
fix-cilium-bootstrap-seed
woodpecker-agent-probe
add-missing-probes
paperless-http-probes
gatus-hardening
gatus-drop-file-check
gatus-config-reload
drop-pbs2-gatus
generic-blackbox-alert
probe-ci-openbao
cleanup-nas-1-remnants
ci-image/claude-2.1.250
woodpecker-deployment-dispatch-rest
woodpecker-deployment-dispatch-pilot
fix-monitor-selector-comments
fix-wear-alert-design
trim-comments-authentik
trim-comments-apps
trim-comments-helm
trim-comments-netpol
trim-comments-infra
trim-comments-talos
alert-fix/issue-675
trim-manifest-comments
drop-unused-barman-creds
hetzner-creds-shared-path
ephemeral-framing
disk-dashboard-smart
smartctl-privileged
smartctl-seccomp
smartctl-exporter
disk-dashboard-status
disk-dashboard
ci-image/claude-2.1.247
kaniko-fork-rest
kaniko-replacement
proposal-traffic-classes
runbook-remote-rebuild-possible
runbook-cold-rebuild-baremetal
alert-fix/issue-657
velero-stale-60h
talos-1-13-9
ceph-mon-disk-warn-default
ceph-san-pool-widen
no-ipv6-on-vlan-parents
alert-fix/issue-649
alert-fix/issue-645
openbao-alerting
openbao-ha-3-replicas
alert-fix/issue-635
ceph-san-cleanup
ceph-san-nad
whereabouts-ipam
talos-1-12-11
mdns-relay
netbird-rotate-migration
runbook-stale-sockets
drop-monitoring-agent
ansible-drop-dead-plays
ansible-rotate-netbird
ansible-drop-pve
tofu-state-verify
alert-fix/issue-603
drop-decommissioned-dns
tofu-drop-proxmox-vm
drop-pve-monitoring
talos-factory-installer
cilium-reloader
drop-talos-image-seeding
cilium-vlan-bypass
restore-replicapool-size
restore-cephfs-metadata-size
alert-fix/issue-592
ceph-readd-neptune
k8s-3-baremetal
ceph-drop-neptune
alert-fix/issue-591
ceph-readd-saturn
alert-fix/issue-590
remove-vm-605
remove-vm-151
k8s-2-baremetal
ceph-remove-k8s-2
baremetal-conversion-runbook
restore-after-jupiter
alert-fix/issue-579
ceph-readd-k8s-1
k8s-1-network-fix
alert-fix/issue-573
k8s-1-ephemeral-on-crucial
alert-fix/issue-571
alert-fix/issue-569
immich-window-scaledown
ceph-exclude-k8s-1
crowdsec-cpu-requests
jupiter-baremetal-u2
velero-restore-test-monthly
ws90-reporting-config
alert-fix/issue-562
fix-ws90-merge-overclaim
fix-ws90-debounce-rationale
worktree-z2m-2.13.0-ws90-debounce
kaniko-no-debug-image
alert-fix/issue-557
alert-fix/issue-554
alert-fix/issue-550
bump-stale-ci-images
document-pool-no-redundancy-meaning
fix-ci-pool-blocks-osd-maintenance
rotate-cephx-daemon-keys
fix-ceph-health-alert
repoint-ci-workspaces
ci-throwaway-cephfs
rollout-archive-timeout
archive-timeout-gf-pg
reduce-pg-wal-fpi
reduce-wal-segment-padding
fix-prometheus-cardinality
fix-barman-sidecar-visible
feat-paperless-data-repoint
feat-paperless-data-block
fix-cnpg-write-tuning
fix-emptydir-tmpfs
fix-trmnl-renderer-tmpfs
feat-ha-recorder-db-url
alert-fix/issue-525
fix-cnpg-backup-alerting
feat-ha-recorder-postgres
fix-ceph-mon-write-amplification
fix-ceph-replica-size-2
fix-ceph-deferred-write-amplification
fix-326-noise-log-suppression
fix-381-z2m-discovery
decommission-rustfs-lxc
document-hairpin-id-diff
fix-rustfs-shim-replace
fix-rotator-woodpecker-url
alert-fix/issue-510
bump-woodpecker-cli
migrate-woodpecker-stage3
migrate-woodpecker-stage2
fix-eso-woodpecker-namespace
migrate-woodpecker-namespace
ceph-mon-data-avail-warn
revert-image-gc-thresholds
fix-ceph-toolbox-and-gc-thresholds
fix-cilium-policy-map-exhaustion
drop-stale-hetzner-dns
fix-outpost-callback-path
bump-ci-k8s-pins
fix-wordpress-config-extra
wordpress-renner-uno
fix-authentik-double-passkey-touch
pin-ical-proxy-image
fix-trmnl-renderer-reloader
fix-trmnl-render-lang
fix-trmnl-session-expiry
fix-trmnl-graphite-theme
fix-trmnl-token-lifetime
fix-trmnl-renderer-runtime
feat-trmnl-renderer
fix-trmnl-lb-address
feat-trmnl-terminus
retire-dead-monitoring
heating-can-supervisorctl
fix-native-teardown
edge-capability-groups
heating-can-image
edge-bootstrap-selfcontained
prometheus-pve-hostnames
inventory-pve-hostnames
chrony-allow-ipv6
ntp-vrrp-linklocal-and-dad-sequencing
ntp-service-address-health-gated
ntp-anycast-capture-drift
ntp-health-clock-correctness
chrony-comment-correction
worktree-chrony-makestep
ci-k8s-validate
rotator-repin
mosquitto-rotate-health
alert-fix/issue-454
alert-fix/issue-452
mosquitto-rotation-proposal
mosquitto-openbao
mosquitto-drop-apk
paperless-drop-apk
cni-plugins-image
multus-drop-apk
fix-jq-comment
rename-alpine-jq
fix-ci-yaml
z2m-seed-drop-apk
z2m-interview-watchdog
alert-fix/issue-439
before-k8s-migration
latest
Labels
Clear labels
apollo
atlas
clio
daedalus
hestia
Hermes expert: Immich, Audiobookshelf, Libation, Navidrome, Music Assistant
Hermes expert: Talos, Flux, network, Authentik, Matrix, monitoring
Hermes expert: Paperless, wiki, ical-proxy, TRMNL, websites
Hermes expert: Gitea, Woodpecker, Renovate, review-bot, Hermes
Hermes expert: Home Assistant, IoT, MQTT, ESPHome, voice
No labels
Milestone
No items
No Milestone
Projects
Clear projects
No projects
No Assignees
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: konairius/homelab#686
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
What is firing
NvmeDriveWearHigh(severitywarning, namespacemonitoring)k8s-1, devicenvme1(instance10.244.0.79:9633,smartctl-exporter)email, still activesmartctl_device_percentage_used >= 80 for 1h—kubernetes/apps/monitoring-rules/prometheusrule-disk-wear.yaml:16Evidence
context.txtshows nothing wrong: all three nodesReady, no pods outside Running/Succeeded, no Flux resource unready. This alert is about a hardware budget, not a broken workload, so that is expected and not a contradiction.Verified live via the Prometheus API through the apiserver proxy (
kubectl get --raw .../api/v1/query?query=smartctl_device_percentage_used) — wear across the whole fleet:ALERTS{alertname=~"Nvme.*"}confirms all threeNvmeDriveWearHighinstances are firing. Only k8s-1 reached this batch because the other two dedup to the same issue title, so this one issue stands for all three.Root cause
The worn drives are the EPHEMERAL volumes, and this is deliberate. Confirmed two independent ways:
kubernetes/talos/patches/k8s-1.yaml:50pins EPHEMERAL withdisk.serial == '2332E86B749A';node_nvme_inforeports that exact serial as k8s-1nvme1(CT1000P3PSSD8).node_filesystem_*{mountpoint="/var"}on k8s-1 reports device/dev/nvme1n1p1— the same drive.The drive is not a Ceph OSD:
ceph_disk_occupationputs k8s-1'sosd.2on/dev/nvme2n1(the Samsung, 3% wear). The repo comment atkubernetes/talos/patches/k8s-1.yaml:32states the intent — EPHEMERAL goes on "the retired Ceph OSD drive" because its contents rebuild — and flags the exception itself:/var/lib/etcdlives there and "is the one thing on the volume that is not free to lose."So the wear itself is working as designed. Three things make it worth acting on rather than closing:
1. The three EPHEMERAL drives will hit critical together. They are the same model, at 81/83/87%, carrying comparable write volumes (132–154 TB written).
NvmeDriveWearCritical(>=95%) will fire on all three within a similar window — a correlated, not independent, failure of the volume that holds every etcd member.2. k8s-1 nvme1 has 18 media errors; every other drive in the fleet has 0. From
smartctl_device_media_errors{node="k8s-1"}. This is the "failure now" signal, distinct from the endurance budget — and it is currently invisible:NvmeDriveMediaErrorsalerts onincrease(...[6h]) > 0, so a standing count never fires. That is the documented intent (prometheusrule-disk-wear.yaml:66), but the consequence is that the one drive holding etcd carries unrecovered data-integrity errors that no alert reports. The other failure-now signals are clean: available spare 100 (threshold 5), critical warning 0.3. No trend is available yet.
min_over_time(timestamp(...))puts the earliest smartctl sample at 2026-08-27T13:24:32Z — roughly 15 hours of history. Wear and media errors are both flat across all of it. Hypothesis (unverified): the 18 media errors predate the drive's EPHEMERAL role and date from its earlier life as a Ceph OSD; power-on time is 72,651,600 s (~841 days). This cannot be settled from Prometheus — Ceph'sdevicehealthregistry purges a drive's history when it leaves the cluster, and Talos kernel logs do not reach Loki.talosctl -n 10.2.40.169 dmesgis the only source and it is a ring buffer emptied by reboot.Also unverified: etcd health could not be checked from monitoring —
up{job=~".*etcd.*"}returns no series, so etcd is not scraped by this Prometheus.Where to fix it
This is not fixable by a repo change alone. It is a hardware-lifetime problem, and the relevant Talos setting cannot be re-applied to a running node.
kubernetes/talos/patches/k8s-1.yaml:45-51(andk8s-2.yaml:39-43,k8s-3.yaml:35-39) — theVolumeConfig/ EPHEMERALdiskSelector. The comment atk8s-1.yaml:36is the constraint: volume configuration only takes effect on first provision; applying a changed selector to an existing node is silently ignored, and relocating EPHEMERAL requires wiping the disk and booting install media. Moving etcd off these drives therefore means a node rebuild, not a config push. The node object ages incontext.txt(k8s-1 2d9h, k8s-2 2d6h vs k8s-3 110d) suggest two of the three were rebuilt very recently, i.e. that window just closed.kubernetes/apps/monitoring-rules/prometheusrule-disk-wear.yaml— worth reconsidering the media-errors rule so a standing non-zero count on an etcd-bearing drive is surfaced rather than dashboard-only (e.g. a separate low-severity alert on the absolute value), or recording explicitly that standing counts are accepted.Suggested human actions (read-only, off-cluster):
talosctl -n 10.2.40.169 dmesg— look for NVMe errors onnvme1before the buffer is lost to a reboot.Nothing is failing right now — spare is untouched and no critical warning is raised. The action this asks for is scheduling, not an emergency.
Filed automatically by the alert-monitor pipeline (2026-08-28). The issue-fix pipeline may pick this up and open a PR.
Assessment — no repo change is appropriate
NvmeDriveWearHighis reporting a hardware endurance budget, not amisconfiguration. I verified live that the alert is correct, that its target is
exactly the drive the repo deliberately put
/varon, and that no edit insidethe allowed scope (
ansible/,opentofu/,kubernetes/,ci/images/) canlower a drive's wear counter. Per decision rule 6 I made no edits; the
action this needs is hardware scheduling, described step by step below.
I also declined the one repo change the issue floated — see Why I did not
change the media-errors rule.
What I verified live this run
All queries via
./.ci-diag/kubectl get --raw ".../kube-prometheus-stack-prometheus:9090/proxy/api/v1/query?..."at 2026-08-28T05:44Z unless noted.
1. The alert is accurate and fires on all three nodes.
smartctl_device_percentage_used→ k8s-1nvme187, k8s-3nvme183,k8s-2
nvme081; every other drive 2–13.ALERTS{alertname=~"Nvme.*"}→ threeNvmeDriveWearHighseries, allalertstate="firing". The issue's fleet table is confirmed.2. The worn drives are the EPHEMERAL /
/varvolumes — confirmed threeindependent ways, so the issue's root cause holds:
node_nvme_infoserials: k8s-1nvme1=2332E86B749A, k8s-2nvme0=2332E86B74BC, k8s-3nvme1=2326E6E8E67D, all modelCT1000P3PSSD8.These are character-for-character the three
VolumeConfig/EPHEMERALdiskSelectorvalues inkubernetes/talos/patches/k8s-1.yaml:50,k8s-2.yaml:43,k8s-3.yaml:39.node_filesystem_size_bytes{mountpoint="/var"}→/dev/nvme1n1p1on10.2.40.169 (k8s-1),
/dev/nvme0n1p1on 10.2.40.211 (k8s-2),/dev/nvme1n1p1on 10.2.40.138 (k8s-3) — the same three devices, each999714680832 B (the 1 TB Crucial).
ceph_disk_occupation→osd.2/osd.0/osd.3all sit on/dev/nvme2n1,the Samsung
MZQLB960HAJRon each node (2–3% wear). None of the worndrives is an OSD. The
install.diskSelectorserials in the same patchesare the Kingston
OM8PGP4system disks (10–13% wear).3. Nothing is failing yet.
smartctl_device_available_spare= 100 onall nine drives (threshold 5);
smartctl_device_critical_warning= 0 onall nine. This is wear, not damage.
4. The three drives are aging in lockstep.
smartctl_device_bytes_written→ 153.8 TB (k8s-1nvme1), 143.5 TB (k8s-2nvme0), 142.7 TB (k8s-3nvme1). Same model, same workload, ~8% apart. Theissue's core concern — that
NvmeDriveWearCritical(≥95%) will fire on allthree in a similar window, on the volume holding every etcd member — is
supported by the data.
5. k8s-1
nvme1carries 18 standing media errors; every other drive has 0.smartctl_device_media_errors→{node="k8s-1",device="nvme1"} 18, all eightothers
0. Same drive as the highest wear, and the one holding this node'setcd member.
6. No usable trend exists.
min_over_time(timestamp(smartctl_device_percentage_used)[30d:1h])→ earliestsample 1787839172 ≈ 2026-08-27T13:59Z, i.e. ~15.7 h of history despite a
30 d lookback. No wear rate can be computed, so no honest "weeks until 95%"
estimate is possible yet. Re-run this query in a few weeks to get one.
7. Two of the issue's "unverified" items are now settled:
count(up) by (job)returns 43 jobs; none matchesetcd. etcd member health genuinely cannot be checked from this Prometheus —
the issue was right.
joblabel has exactly twovalues,
loki.source.kubernetes.podsandsystemd-journal, and thehostlabel has exactly one value,
edge-1.iot.renner.uno(not a Talos node). Sotalosctl dmesgreally is the only source for the NVMe errors, and it is aring buffer — capture it before the next reboot of k8s-1.
Why no repo change fixes this
percentage_used. Bumping the 80% threshold would be silencing the alert,which decision rule 4 forbids and which the issue does not establish as
wrong — 87% on the etcd-bearing volume is exactly what this rule exists to
say.
kubernetes/talos/patches/k8s-1.yaml:36-40states Talos applies volumeconfiguration only when the volume does not yet exist; a changed selector on
a provisioned node is silently ignored. Editing those three files would
produce a PR that changes nothing on the running cluster while making the
repo disagree with reality — strictly worse than no change.
node_nvme_infoshows exactly threedrives per node, and all three are spoken for: Kingston = system disk
(
install.diskSelector), Crucial = EPHEMERAL, Samsung = Ceph OSD. Moving/varoff the Crucial requires new hardware, not a different selector.and none would help anyway.
Why I did not change the media-errors rule
The issue suggests adding an alert on the absolute value of
smartctl_device_media_errorsso the standing 18 on k8s-1nvme1is surfaced.I verified the current behaviour and deliberately left it alone:
prometheusrule-disk-wear.yaml:68alerts onincrease(...[6h]) > 0, so aflat counter never fires. Confirmed by inspection; the count has been flat
across all available history.
trade-off — "pre-existing errors would otherwise alert forever. Standing
counts are visible on the dashboard only."
disk-health.json:205plotssmartctl_device_media_errorsin the drive table. The issue's phrase "noalert reports it" is accurate, but its stronger claim that the count is
"currently invisible" is not — it is on the Disk Health dashboard,
exactly where the rule says it is.
Adding an absolute-value alert would fire permanently until the drive is
physically replaced — precisely the outcome the existing comment says was
rejected. Reversing a documented owner decision is not a call this agent
should make unsupervised, and there is no "Verified owner guidance" section
on this issue. If the owner wants that trade-off revisited, it is a ~10-line
addition to
prometheusrule-disk-wear.yamland I can do it on request.Recommended manual actions
Nothing is failing; this is scheduling work, not an emergency. In priority
order:
talosctl -n 10.2.40.169 dmesgon k8s-1, grep fornvme1. This is the only place the18 media errors are explained (when they happened, whether they were
read/write/scrub) and a reboot empties it. Note the drive reports 841 days
of power-on time, so the errors plausibly predate its EPHEMERAL role — but
that stays a hypothesis until dmesg is read; do not treat it as
established.
talosctl -n 10.2.40.169 etcd status. Prometheus cannot see it (item 6 above), and this is the onedataset on the affected volume that is not reconstructible.
lockstep (item 4), so treating them as one batch is correct. k8s-1's drive
goes first: highest wear and the only media errors in the fleet.
etcd quorum and Ceph to return healthy in between. The EPHEMERAL selector is
pinned by serial, so each new drive's serial must be written into that
node's
kubernetes/talos/patches/k8s-N.yamlbefore reprovisioning — thisis the moment a repo change becomes both necessary and effective, and it is
the only window in which EPHEMERAL's placement can be changed at all.
min_over_time(timestamp(...))query in~4 weeks. Once there is real history,
predict_linearonsmartctl_device_percentage_usedgives a defensible date for the 95%crossing instead of a guess.
Notes
HEALTH_WARN, and it is unrelated.ceph_health_detail > 0returns only
AUTH_INSECURE_CLIENT_KEY_TYPE,AUTH_INSECURE_KEYS_ALLOWEDandAUTH_INSECURE_KEYS_CREATABLE— no PG orOSD problem. Storage redundancy is intact for the drive swaps above. Flagged
only so a reviewer does not mistake it for fallout from this alert.
node_nvme_infowith anodelabel. That metric comes from node-exporter,which carries
instance(node IP) but nonodelabel here, unlike thesmartctl-exporter metrics.
node_nvme_info{node="k8s-1"}returns empty. Theserial mapping is still correct — it just has to be joined on
instance.This does not affect
SmartctlExporterIncomplete(
prometheusrule-disk-wear.yaml:81), which compares barecount()on bothsides: both are 9, so the rule is healthy and correctly silent.
Node object ages, which I confirmed (
kubectl get nodes -o wide: k8s-12d10h, k8s-2 2d7h, k8s-3 110d). Node age resets on cluster rejoin as well as
on reprovision, so this is suggestive, not proof. If those were true
rebuilds, note the serial pins put
/varstraight back on the worn drives —which is the documented intent, and unavoidable given there is no fourth
drive.
outside the edit scope.
Assessed by the issue-fix pipeline: no repo change proposed. Remove this comment to make the pipeline retry.