docs(pm-agent): the registry cannot be pulled from yet — name both prerequisites where the operator reads them
pm-agent reconciled exactly as designed after #57: Flux applied main@sha1:95597bd to platform-config, pm-agent and apps-wave-0 (all Ready), the ClusterPolicy pm-agent-job-shape is live with Enforce + failurePolicy Fail and all six rules, SOPS decryption works through the new overlay patch (checked by key names and value lengths, never values), and pm-agent-worker really is bound to nothing. Measuring it turned up two prerequisites for the NEXT operator step that nothing in this repository declares, and that #57's handoff could not have known — it listed the image pull as unverified, and that is exactly where it bit: - the nodes cannot verify the registry's TLS certificate (containerd: 'x509: certificate is not valid for any names'), while the same name serves a healthy Let's Encrypt wildcard from the LAN. A correct digest fails identically; - an unauthenticated client gets nothing from this Gitea's registry (its anonymous token carries no access scope) and no imagePullSecret exists anywhere in the tree. Not specific to pm-agent: conformance-runner shares the registry path and has never been pulled either. The dispatcher is the first workload in the cluster ever to reference it. Documentation only — no manifest, no policy, no code. Both fixes need an operator action and one of them is a posture decision, so the docs present both rather than pick. Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>
This commit is contained in:
1 parent
95597bd688
commit
6253d546f8
4 files changed
+159
-4
No files matched your search
@@ -233,9 +233,18 @@ about runtime behaviour in this document is a design claim, not a measurement.
|
||||
|
||||
## Follow-ups, in the order they are worth doing
|
||||
|
||||
1. **Build, push, pin.** Operator runs `infra/agent/build-image.sh`, pushes, and one PR
|
||||
replaces both placeholder digests. Expect the build to need iteration: the nodejs module
|
||||
stream and the npm install have never run against this base.
|
||||
1. **Make the registry pullable, THEN build, push, pin.** Measured after the merge, and
|
||||
neither half is declared anywhere in this repository
|
||||
(`decisions/2026-10-05-pm-agent-registry-pull-prereq.md`):
|
||||
(i) the cluster's nodes cannot verify the registry's TLS certificate — containerd reports
|
||||
`x509: certificate is not valid for any names` for `gitea.home.keithjackson.dev`, while
|
||||
that name serves a healthy Let's Encrypt wildcard from the LAN; (ii) an unauthenticated
|
||||
client gets nothing from that registry and no `imagePullSecret` exists in the tree, so
|
||||
either one is added or anonymous package reads are allowed. Only then does the digest
|
||||
matter. Operator runs `infra/agent/build-image.sh`, pushes, and one PR replaces both
|
||||
placeholder digests. Expect the build itself to need iteration too: the nodejs module
|
||||
stream and the npm install have never run against this base. The same two blockers sit in
|
||||
front of `conformance-runner`, which shares the registry path and has never been pulled.
|
||||
2. **Create the credentials** per `pm-agent-credentials.sops.yaml.example`, and **verify the
|
||||
bot's permission is `write`, not `admin`** — that measurement is the control that keeps
|
||||
the agent out of its own approval gate.
|
||||
|
||||
Reference in new issue
Block a user