drop the shared hive agent login
Every agent now connects to the queue and reads logs with its own secret from the store (#5181), so the per-hive `hive-<h>-agent` OIDC client has no reader left. Remove it end to end: - hive-c0re no longer forwards `hive-queue-agent-{secret,client-id}` into containers, and no longer forwards HIVE_AGENT_OIDC_TOKEN_ENDPOINT; the agent module that loaded them (nix/agent-modules/queue.nix) is gone, its options refused with a removal message. - The host reader (glue-queue-agent-credential.nix, swarm-bao-queue-agent), its store role and policy unit (swarm-bao-queue-agent-policy), its PKI leaf and the deploy.bao.queueAgent* / queue.agentCredentialDir options are gone; the options are refused with a removal message. - authelia mints no `hive-<h>-agent` client, and swarm-secret-publish no longer writes swarm/hives/<h>/queue/agent. - swarm-secret-client drops queue::agent_client_path / queue::Credential. - HIVE_AGENT_NATS_URL is now gated on the agents' queue address alone. The log store's authelia check stays for operators. swarm-nats-auth still refuses a `-agent` client id; that refusal and `agentClientSuffix` are left for a follow-up. Refs #4459 Refs #4765
This commit is contained in:
parent
d19bd83aa5
commit
868c6cf96c
41 changed files with 286 additions and 1410 deletions
|
|
@ -14,8 +14,7 @@
|
|||
# is why: the host file is `0600` to the hive daemon and this unit runs as the
|
||||
# unprivileged agent user. nspawn's `--load-credential` is read by the
|
||||
# container manager as root and re-exposed under this unit's own `User=`; a
|
||||
# bind would deliver a private key this user cannot open. Same answer, same
|
||||
# reason, as ./queue.nix's credential pair.
|
||||
# bind would deliver a private key this user cannot open.
|
||||
#
|
||||
# This is the courier's other end: the hive-side collector has no purpose
|
||||
# without it, so the two ship together and neither is reachable alone.
|
||||
|
|
@ -63,12 +62,11 @@ let
|
|||
# Where the identity lives in the store, spelled from the same pieces the
|
||||
# publisher uses. `swarm_secret_client::mtls::identity_path` builds
|
||||
# `swarm/agents/<agent>/bao-mtls` and `path::MOUNT` is `secret`; this
|
||||
# literal is the nix half of that one agreement, exactly as
|
||||
# ../host-modules/glue-queue-agent-credential.nix spells its own.
|
||||
# literal is the nix half of that one agreement.
|
||||
identityPath = "secret/swarm/agents/${agentName}/bao-mtls";
|
||||
|
||||
# The address is the whole switch — no separate `enable`, the same shape
|
||||
# ./queue.nix and ./logs.nix gate themselves with. A hive that has a store
|
||||
# ./logs.nix gates itself with. A hive that has a store
|
||||
# forwards its address and every agent on it gets the check; a hive that has
|
||||
# none forwards nothing and no agent does. An `enable` beside it would be a
|
||||
# knob whose only correct setting is whatever the address already says, and
|
||||
|
|
@ -153,7 +151,7 @@ in
|
|||
UMask = "0377";
|
||||
# Bare ids, no paths: the terse `LoadCredential=` form that inherits a
|
||||
# credential the service *manager* received, which is what the
|
||||
# container manager passed in. ./queue.nix states the same shape.
|
||||
# container manager passed in.
|
||||
LoadCredential = [
|
||||
certCredential
|
||||
keyCredential
|
||||
|
|
|
|||
Loading…
Reference in a new issue