fix: [alert] OpenBaoReplicaNotReady (openbao) (#808) #811
Closed
issue-fix-bot
wants to merge 1 commits from
alert-fix/issue-808 into main
pull from: alert-fix/issue-808
merge into: :main
:main
:daedalus/review-bot-dependency-rereview
:daedalus/review-bot-web-fetch
:daedalus/review-bot-dependency-reviews
:feat/thread-migrate-job
:fix/otbr-no-runtime-install
:fix/otbr-egress
:feat/otbr-own-thread-network
:ci-image/claude-2.1.319
:fix/authentik-error-reporting-off
:feat/matter-z2m-egress
:fix/disable-telemetry
:fix/immich-image-scan-interval
:fix/ldap-outpost-udm-ldaps
:docs/trmnl-renderer-google-drops
:fix/mdns-relay-no-ra
:feat/mqtt-shelly-41
:chore/edge1-retire-mqtt-bridge
:chore/retire-heating-can
:fix/mosquitto-privat-mqtts
:feat/vitocal-can-mqtt-account
:fix/vps-time-sync
:feat/hubble-policy-drop-log
:feat/kube-dns-lb-source-cidr
:feat/paperless-source-cidr
:feat/home-assistant-source-cidr
:feat/shelly-firmware-source-cidr
:feat/mosquitto-source-cidr
:feat/syslog-source-cidr
:feat/trmnl-device-cidr
:feat/cidr-groups-per-vlan
:docs/ntp-cluster-edge2
:docs/hairpin-absent-vlans
:fix/common-pacman-cache
:fix/edge-pacman-cache
:fix/edge-alloy-upstream-image
:fix/ssh-ca-install-sudo
:fix/edge-install-hostname
:feat/edge-2-host
:fix/netbird-ingress-log-console
:fix/wlan-setup-windows-xsd
:fix/wlan-setup-windows-schema
:feat/wlan-setup-go-deploy
:feat/wlan-setup-go
:feat/wlan-setup-windows-passpoint
:feat/wlan-setup-apple-passpoint
:docs/dot1x-passpoint-renner-unifi
:feat/dot1x-app-passwords
:feat/wlan-setup-passpoint
:feat/wlan-setup-page
:ci-image/claude-2.1.318
:fix/zwave-js-ui-11.25.2-renovate
:feat/vlan11-radius0-base
:feat/radius-proxy-vlan11
:feat/radius-udm-forward
:docs/radius-live-test
:fix/authentik-pg-latency
:fix/freeradius-confdir-mode
:fix/freeradius-flux-substitute
:dot1x-radius-authentik
:alert-fix/issue-1551
:shelly-manager-no-mtu-probing
:lb-replies-table-47
:fix/vip-replies-table-47
:renovate/hermes-image
:renovate/home-assistant-minor-patch
:renovate/ci-minor-patch
:renovate/all-minor-patch
:revert/gate-sync-oidc
:fix/gate-sync-proxy-sweep
:feat/gate-sync-oidc
:feat/youtrack
:ci-image/claude-2.1.316
:worktree-loki-retention-365d
:paperless-drop-syncthing-monitor
:worktree-alloy-unifi-syslog-label
:worktree-syncthing-ui-gate
:alert-fix/issue-1527
:shelly-manager-sleepy-rollout
:kuma-root-group
:ci-image/claude-2.1.312
:worktree-ntp-ipv4-record
:kuma-notifications
:shelly-manager-iot-v6-world-egress
:ssh-ca-nas-2
:shelly-manager-iot-ipv6-egress
:shelly-manager-net1-no-ra
:shelly-firmware-lb-reachable
:shelly-manager-local-firmware
:claude/ma-pocketcasts-up-next-top-pick
:claude/outpost-image-flux
:claude/outpost-image-literal
:claude/date-image-tag
:docs/mosquitto-shelly-manager-settings-comment
:review-bot-token-read-issue
:alert-fix/issue-1505
:t_1bc87417/konairius-registry
:review-bot-on-request
:review-bot-efficiency
:ci-ansible-netbird
:worktree-crowdsec-ma-imageproxy-whitelist
:ci-image/claude-2.1.311
:worktree-openbao-oidc-authentik
:alert-fix/issue-1461
:claude/authentik-2026.8.4
: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
: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
: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
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#811
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 this PR does
On 2026-09-07 all three OpenBao replicas were sealed at once during a rolling
reboot of all three cluster nodes, raft lost quorum for ~14 minutes, the
openbaoClusterSecretStore wentInvalidProviderConfig, and 18ExternalSecrets plus 24 Flux kustomizations stalled behind it. The underlying
cause — shamir seal, no auto-unseal, so every restart leaves a replica sealed
until a human unseals it — is a recorded, deliberate design decision in this
repo (
kubernetes/MIGRATION-sops-openbao.md:59: "auto-unseal needs a secondtrust root (transit/KMS) and is explicitly out of scope"), and reversing it is
not something an automated fix agent should do. So this PR does not touch that.
What it does fix is a separate, verifiable defect the issue did not find: the
two OpenBao alerts fired ~14 min and ~6.5 min later than their
for:windowsspecify, because their expressions were bare
kube_statefulset_status_replicas_ready{...}selectors. kube-state-metrics stamps
instance/pod/endpointon every seriesit exports, Prometheus tracks the
for:timer per output series, andkube-state-metrics itself was rescheduled twice during this incident (it lives on
the same three nodes that were rebooting) — each move produced a new series and
reset the pending alert to inactive. Wrapping both expressions in
max by (namespace, statefulset) (...)gives a single series whose identity doesnot depend on which kube-state-metrics pod is currently scraped, so the timer
runs continuously. This makes the alerts fire sooner and more reliably — it
is the opposite of silencing.
Changes
kubernetes/apps/monitoring-rules/prometheusrule-openbao.yaml— wrap theOpenBaoReplicaNotReady(< 3) andOpenBaoQuorumLost(< 2) expressions inmax by (namespace, statefulset) (...)so the alert series survives akube-state-metrics restart, plus a comment block recording why. Thresholds,
for:windows, severities and annotations are unchanged.OpenBaoMetricsMissingis left alone —absent()behaves identically eitherway, and it is the guard for the other two.
Verification
Everything below was observed this run via
./.ci-diag/kubectl.Current state is healthy (the incident is over):
kubectl get pods -n openbao --show-labels→openbao-0/1/2all1/1 Running,openbao-sealed=false,openbao-initialized=true,openbao-active=trueonopenbao-1. Ages 170m/136m/136m.kubectl get clustersecretstore openbao -o jsonpath='{.status.conditions}'→{"lastTransitionTime":"2026-09-07T05:32:57Z","message":"store validated","reason":"Valid","status":"True","type":"Ready"}.The late-firing defect (the thing this PR fixes) — a
query_rangeonkube_statefulset_status_replicas_ready{namespace="openbao",statefulset="openbao"}over 04:30–05:50 UTC returned three separate series, one per
kube-state-metrics pod:
instance)...-74b9f67964-d7dct(10.244.2.181)...-7d8cbb584f-hzmx6(10.244.2.218)...-7d8cbb584f-87lln(10.244.4.35)The same range aggregated (
max(...), step 60s) is continuous and shows thereal transitions: 3 → 2 at 04:53, 2 → 1 at 05:00, 1 → 0 at 05:08.
Against those:
OpenBaoReplicaNotReady(for: 10m,<3) should have fired~05:03 but the issue's ALERTS query has it at 05:17:37;
OpenBaoQuorumLost(
for: 5m,<2) should have fired ~05:05, actual 05:11:37. Acount(...)-over-time check at 30s step shows the series count never dropped to0 (it briefly reads 2 during the 05:06–05:07:30 handoff), so the aggregated
series would have been gap-free — i.e. the fix genuinely would have held the
timer.
The new expression was executed against live Prometheus before committing:
max by (namespace, statefulset) (kube_statefulset_status_replicas_ready{namespace="openbao", statefulset="openbao"})→ exactly one sample,
{"namespace":"openbao","statefulset":"openbao"} = 3; with< 3appended → empty vector (correctly not firing right now).Reviewer check after Flux reconciles: the rules should load without a
PrometheusRuleFailuresbump; Prometheus/rulesshould show the twoexpressions in aggregated form. Next time a replica is sealed, the warning
should arrive 10m after the drop rather than drifting, and the alert labels will
carry only
namespace/statefulset(thejob=kube-state-metrics,instance,podlabels are intentionally gone). I checked the Alertmanagerroute in
kubernetes/apps/monitoring/helmrelease-prometheus.yaml:287-316—its matchers are on
alertnameandsourceonly, so dropping those labels doesnot change routing.
Notes
Two things the issue got wrong, both checked with a command:
The trigger was not a HelmRelease reconcile. The issue states a
HelmRelease reconcile landed at ~04:52 and produced a new StatefulSet
revision.
kubectl get helmrelease openbao -n openbao -o jsonpath='{.status.history}'shows the current release (version 5, chart
0.28.6, appv2.6.1) waslastDeployed2026-08-26T20:51:18Z — twelve days earlier. Nothing helmdid today touched openbao. The actual trigger was a rolling reboot of all
three nodes:
kubectl get nodesReadylastTransitionTimeisk8s-1 04:56:00,k8s-2 05:00:37,k8s-3 05:06:15— ~4–5 minutes apart, notjust
k8s-3as the issue says. Because the StatefulSet isOnDelete, thepending Aug-26 revision (
openbao-b8c9c77d) simply rode along as each pod wasrecreated; it did not cause the roll.
A PDB does exist, and it is not irrelevant. The issue says "a
PodDisruptionBudget does not help here". The chart already creates one —
kube-state-metrics reports
poddisruptionbudget="openbao"withdesired_healthy=2,expected_pods=3(i.e.maxUnavailable: 1), currentlycurrent_healthy=3. That PDB would have blocked the second and third nodedrains while
openbao-0was sealed and not-Ready, which is exactly the guardthe incident needed. That it did not block means the reboots did not go
through the eviction API (
--force/--disable-eviction, or a plain VMreboot). That is an operator-tooling matter, outside this repo — the PDB
itself needs no change. (I could not
get pdbdirectly: the CI diagnosticsServiceAccount is Forbidden on
policyresources, so this is fromkube-state-metrics via the Prometheus proxy.)
The issue's
KubeStatefulSetUpdateNotRolledOutside note checks out —updateStrategyis{"type":"OnDelete"},currentRevision=openbao-69c46558ccvs
updateRevision=openbao-b8c9c77dwithupdatedReplicas=3/3. No action, asthe issue concluded.
What is still not fixed, and needs a human. This PR improves detection
latency; it does not remove the manual unseal. The recurrence guard is
procedural, and stays procedural:
talosctl upgrade, VM reboots), take a raftsnapshot and have
pass show homelab/openbao/unseal-keyto hand.kubectl -n openbao exec -it openbao-<N> -- bao operator unseal(same key forall three).
kubectl get pods -n openbaoshows 3/3 Ready — then move to thenext node. Do not reboot the second node on a 4-minute cadence as happened
here.
--force/--disable-eviction); theexisting
maxUnavailable: 1PDB will then refuse the second drain for you.The one repo change that would remove this class of incident entirely is
auto-unseal (transit or KMS seal in
server.ha.raft.config). I deliberately didnot do it: it adds an external trust root and a new dependency, it is a
larger-than-surgical change, and the repo has already recorded the decision to
accept manual unseal instead (
kubernetes/MIGRATION-sops-openbao.md:53-61,kubernetes/infrastructure/openbao/helmrelease.yaml:56-65). Reversing adocumented architectural decision is an owner call, not an alert-fix call. If
the owner does want it,
install.disableWait/upgrade.disableWait(
helmrelease.yaml:27-38) should be revisited in the same change, as the issuecorrectly notes.
Nothing in the issue asked me to touch CI config, credentials, or anything
outside the edit scope.
Closes #808
🤖 Automated review — model
claude-haiku-4-5-20251001(complexity: trivial), commit7c00ecf43c315a79aa476afa502cdb8d2b0a2b59.Summary
This PR fixes a subtle timing bug in OpenBao alerting where alerts were firing 6–14 minutes later than their
for:windows specified. The root cause: bare metric selectors produce different series each time kube-state-metrics is rescheduled (due to instance/pod labels), and Prometheus tracks thefor:timer per series, so rescheduling resets pending alerts. The fix wraps both alert expressions inmax by (namespace, statefulset) (...)to produce a single stable series. The change is well-motivated, properly tested against live Prometheus, and does not affect downstream alert routing.🟢 Nits
Comment length (lines 31–43): The explanation is lengthy but justified—it documents a non-obvious Prometheus behavior that caused a real incident. Worth keeping as written, since the subtlety deserves documentation that future maintainers will actually read.
Series aggregation labels: The aggregation removes
instance,pod, andendpointlabels from the alert output. The PR body verifies this won't affect Alertmanager routing (which only matches onalertnameandsource), and checkingkubernetes/apps/monitoring/helmrelease-prometheus.yaml:287–316confirms this is correct. ✓Tests
The repository has no automated prometheus-rule validation in CI (no promtool or similar lint step detected). The PR body documents manual verification against live Prometheus:
max by (namespace, statefulset) (kube_statefulset_status_replicas_ready{...})returned exactly one series with value3.After merge: Flux will deploy the PrometheusRule. Verify:
PrometheusRuleFailuresappear in the cluster./rulesUI shows the two expressions in aggregated form.namespaceandstatefulsetlabels (noinstance,pod,endpoint).Recommendation
Looks reasonable — no blocking issues. The fix is sound, well-tested, and the comment block is appropriate for the subtlety being addressed.
Pull request closed