entrypoint: /data/opendkim removed, as planned for the release after 2.8.0
2.8.x copied the keys from /data/opendkim to /data/dkim and kept the old tree for a rollback to 2.7.x "until the next release" (docs/plans/panel-dkim-signing.md, Q2); the owner's "потом режь 2.9.0" (2026-10-16) makes this that release. The entrypoint now removes the tree once /data/dkim holds a key, and says so. A /data with keys under the old tree only - one that never ran 2.8.x - stops the start with a message to run 2.8.x first, rather than let the panel give the server's own name a new key its published record would not match; the tree is left as it was. Gone with it: the copy into /data/dkim.new, the tree's normalisation, its exemption from the general hand-over, its key link in drop_links, and the backup's exclusion of "opendkim" (dead: the panel never sees the tree now). Tests: e2e TestStartsOnA28Data replaces TestStartsOnA27Data - a /data as 2.8.x left it (both trees, a queue of foreign uids, a rotation due): the old tree is gone, the key under /data/dkim is the one left, the selector table names it, the queue is Postfix's by name; TestRefusesA27Data - the start stops, says why, leaves the old key and makes no new one. go vet + go test (26 packages) and make e2e (all pass) on the test server for this tree. Docs: guide § Upgrading "To 2.9.0" (rollback to 2.8.x needs nothing, to 2.7.x only from a 2.7.x backup; the 2.7.x rollback paragraph says it is for 2.8.x only and keeps naming 2.7.0), guide § backup, architecture (the old tree, § Persistence's table and the restore line), security § Backup, development's e2e paragraph, the plan's key step; CHANGELOG [Unreleased] § Removed. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
+6
-5
@@ -503,12 +503,13 @@ record as a receiver would. `signature_over_awkward_headers`
|
||||
([test/e2e/dkim_shapes_test.go](../test/e2e/dkim_shapes_test.go)) sends the
|
||||
header shapes Postfix hands a milter in its own way - folded, tab-led, no
|
||||
space after the colon, two `To:` - and an 8-bit body, and dkimpy verifies
|
||||
what was delivered. `TestStartsOnA27Data`
|
||||
what was delivered. `TestStartsOnA28Data`
|
||||
([test/e2e/upgrade_test.go](../test/e2e/upgrade_test.go)) starts the image on
|
||||
a `/data` a 2.7.x image left: the key under `/data/opendkim` is copied to
|
||||
`/data/dkim` unchanged and the selector table names it, the old tree becomes
|
||||
the panel's alone, and a queue owned by other uids is handed to Postfix's
|
||||
users by name.
|
||||
a `/data` a 2.8.x image left: the old key tree `/data/opendkim` is removed,
|
||||
the key under `/data/dkim` is kept unchanged and the selector table names
|
||||
it, and a queue owned by other uids is handed to Postfix's users by name;
|
||||
`TestRefusesA27Data` has the start stop on a `/data` whose keys are under
|
||||
the old tree only, which is left as it was.
|
||||
Waits poll with a timeout (`waitFor`); a fixed sleep is the exception and says
|
||||
why where it stands (`sender_check_test.go`: a downtime worth a second or two,
|
||||
and 35 s to show a row is not written again).
|
||||
|
||||
Reference in New Issue
Block a user