swarm: read the agent queue credential out of the store onto the hive host
The publisher on the authelia host has been writing `secret/swarm/hives/<hive>/queue/agent` — the OIDC client secret agent containers present to the swarm queue, plus the client id it belongs to — and nothing read it. This is the reader: a oneshot `swarm-bao-queue-agent` that logs in with the host's certificate and lands the two fields as two files under `deploy.hive-controller.queue.agentCredentialDir`, the secret `0600` and the client id `0644`. Two files rather than one because that is the consumer's shape: `swarm_queue_client::QueueConfig::from_env` takes the secret as a path and the client id as a value, so the split here is what keeps the next slice from parsing anything. Same shape as the store's first reader, `glue-matrix-bao-token.nix` — a cert login that fails loudly under `Restart=on-failure` because every state it fails on is one a retry fixes, then reads that degrade quietly because no retry turns "no value there" into a value. Unlike the matrix token there is no local fallback and none is possible, so absent files mean this hive's agents do not connect, which is the ordinary state of a swarm before the publisher has run. Nothing consumes the files yet and this unit is ordered `Before=` nothing. The next slice bind-mounts them into agent containers through hive-c0re and adds the ordering edge along with them. Refs #3805
This commit is contained in:
parent
14305255f0
commit
b8157cb08e
4 changed files with 289 additions and 7 deletions
|
|
@ -26,6 +26,7 @@
|
|||
./glue-bao-tls.nix
|
||||
./glue-controller-bao-identity.nix
|
||||
./glue-matrix-bao-token.nix
|
||||
./glue-queue-agent-credential.nix
|
||||
./glue-secret-publisher-bao-identity.nix
|
||||
./swarm-authelia.nix
|
||||
./swarm-bao.nix
|
||||
|
|
|
|||
Loading…
Reference in a new issue