fix(openbao): unseal a rebooted member in seconds, not on a 15s tick #253
Loading…
Reference in a new issue
No description provided.
Delete branch "fix/openbao-unseal-responsiveness"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
A rebooted member comes back sealed and stays NotReady until the unseal-helper notices, because the readinessProbe reads
/sys/health, which answers 503 while sealed. The helper looped on a flat 15s, so that quantum sat directly on the kernel roll green gate, which waits for all five members. Every transient failure on the unseal path cost another full 15s, since both failure branches return without retrying.On the 2026-09-04 fleet repartition, openbao was the single thing the green gate was most often waiting on.
The loop now polls every 2s while this member is sealed and settles back to 15s once it is not.
Bounded on purpose. The fast cadence stops after two minutes of a continuous sealed spell, and a later spell gets a fresh window. Two minutes covers a reboot, where the key is present and the unseal lands immediately. A member still sealed after that has a real problem, and polling every 2s forever would not fix it while adding a Kubernetes API GET per tick.
The two log lines are throttled to one per 30s each; the first still logs immediately.
No change to the unseal logic, only to when it is attempted. POSIX sh under
set -u,sh -nclean, pacing verified against a state machine fixture.Merging rolls the openbao StatefulSet, five pods one at a time.
https://claude.ai/code/session_01MdSbMhzabSbpG8TtP9Ur3H