make bao readers want swarm-bao-pki and drop its start limit
A pki start refused by its start limit failed every reader that Requires= it with `dependency`. That leaves a unit inactive, not failed, so Restart=on-failure never fired and readers without a refresh timer never ran again (#5381: grafana 502 for ~43 min). Readers and granting units now Wants= + After= pki; one whose leaf is still missing fails its login with exit 1 into its existing retry. pki gets StartLimitIntervalSec=0: it is deliberately not RemainAfterExit, so each reader's start re-runs it.
This commit is contained in:
parent
141be16c6d
commit
265f8a47cc
12 changed files with 95 additions and 46 deletions
|
|
@ -309,8 +309,8 @@ let
|
|||
lib.hasInfix "bao kv get -field=value ${path}" fetch && lib.hasInfix "bao kv put ${path} " publish;
|
||||
}
|
||||
{
|
||||
# The store's units exist only on its host; `Requires=` on an absent one
|
||||
# fails the fetch's start.
|
||||
# The store's units exist only on its host. The PKI unit is wanted, never
|
||||
# required: a refused pki start fails a requirer's job with `dependency`.
|
||||
name = "the hive collector's fetch waits for the store's container and PKI unit only where the store runs here";
|
||||
ok =
|
||||
let
|
||||
|
|
@ -322,7 +322,8 @@ let
|
|||
elsewhere = hiveOtelFetch hiveOtelLeaf;
|
||||
in
|
||||
lib.all (n: lib.elem n here.after) (storeUnits hiveOtelAllLocal)
|
||||
&& lib.elem "swarm-bao-pki.service" here.requires
|
||||
&& lib.elem "swarm-bao-pki.service" here.wants
|
||||
&& !(lib.elem "swarm-bao-pki.service" here.requires)
|
||||
&& lib.elem "container@${hiveOtelAllLocal.services.hyperhive.swarm.bao.machine}.service" here.wants
|
||||
&& !(lib.any (n: lib.elem n (elsewhere.after ++ elsewhere.wants ++ elsewhere.requires)) (
|
||||
storeUnits hiveOtelLeaf
|
||||
|
|
|
|||
Loading…
Reference in a new issue