2026-07-02 00:02:36 +02:00
|
|
|
|
---
|
|
|
|
|
|
id: RAIL-BS-WP-0009
|
|
|
|
|
|
type: workplan
|
|
|
|
|
|
title: "activity-core no-restart admin-sync smoke (ACTIVITY-WP-0012-T05)"
|
|
|
|
|
|
domain: financials
|
|
|
|
|
|
repo: railiance-cluster
|
2026-07-02 11:53:11 +02:00
|
|
|
|
status: finished
|
2026-07-02 00:02:36 +02:00
|
|
|
|
owner: railiance-cluster
|
|
|
|
|
|
topic_slug: railiance
|
|
|
|
|
|
created: "2026-07-01"
|
2026-07-02 10:44:06 +02:00
|
|
|
|
updated: "2026-07-02"
|
2026-07-02 00:09:13 +02:00
|
|
|
|
state_hub_workstream_id: "2c9e8e96-ec6a-433c-9e6d-0efbcd18679e"
|
2026-07-02 00:02:36 +02:00
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
# activity-core no-restart admin-sync smoke (ACTIVITY-WP-0012-T05)
|
|
|
|
|
|
|
|
|
|
|
|
## Context
|
|
|
|
|
|
|
|
|
|
|
|
Inbox message `aa8b7986` (activity-core, 2026-06-18): activity-core commit
|
|
|
|
|
|
`3e93567` implements ACTIVITY-WP-0012 T01–T04 (shared sync_service,
|
|
|
|
|
|
`POST /admin/sync`, explicit schedule upsert/pause/orphan-delete counts,
|
|
|
|
|
|
worker startup reuse, runbook docs; 192 tests passed). T05 is the
|
|
|
|
|
|
cluster-owned smoke: prove admin sync works **without** worker
|
|
|
|
|
|
SIGTERM/pod restart.
|
|
|
|
|
|
|
|
|
|
|
|
The deploy precondition is covered by RAIL-BS-WP-0008-T01 (main at
|
|
|
|
|
|
`bf877b7` ≥ `3e93567`), so run this after that reconcile.
|
|
|
|
|
|
|
|
|
|
|
|
## Run the no-restart admin-sync smoke
|
|
|
|
|
|
|
|
|
|
|
|
```task
|
|
|
|
|
|
id: RAIL-BS-WP-0009-T01
|
2026-07-02 11:53:11 +02:00
|
|
|
|
status: done
|
2026-07-02 00:02:36 +02:00
|
|
|
|
priority: medium
|
2026-07-02 00:09:13 +02:00
|
|
|
|
state_hub_task_id: "60f3387d-3d14-42a9-b8a3-725a86468510"
|
2026-07-02 00:02:36 +02:00
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
After RAIL-BS-WP-0008-T01 is deployed, without restarting the worker:
|
|
|
|
|
|
|
|
|
|
|
|
1. Change or use a customer ActivityDefinition enabled-flip/rename fixture.
|
|
|
|
|
|
2. Call `POST /admin/sync?definitions=true&schedules=true` from the operator
|
|
|
|
|
|
path.
|
|
|
|
|
|
3. Confirm the new Temporal schedule is active and the retired/disabled
|
|
|
|
|
|
schedule is paused or deleted per sync semantics.
|
|
|
|
|
|
4. Confirm event-triggered definitions still fire normally.
|
|
|
|
|
|
5. Record non-secret evidence in the State Hub. Response JSON should include
|
|
|
|
|
|
`definitions.synced`, `schedules.upserted`, `schedules.paused`,
|
|
|
|
|
|
`schedules.deleted_orphans`, and `errors[]`.
|
2026-07-02 10:44:06 +02:00
|
|
|
|
|
|
|
|
|
|
2026-07-02: Added `make admin-sync-smoke` / `bin/railiance admin-sync-smoke`
|
|
|
|
|
|
as the repeatable operator path. It captures the worker pod UID/restart count,
|
|
|
|
|
|
optionally runs an operator-supplied enabled-flip/rename fixture via
|
|
|
|
|
|
`ACTIVITY_CORE_ADMIN_SYNC_FIXTURE_COMMAND`, calls
|
|
|
|
|
|
`POST /admin/sync?definitions=true&schedules=true`, verifies the expected
|
|
|
|
|
|
response counters and empty `errors[]`, rechecks that the same worker pod did
|
|
|
|
|
|
not restart, and posts non-secret State Hub evidence. T01 stays `wait` until
|
2026-07-02 11:53:11 +02:00
|
|
|
|
RAIL-BS-WP-0008-T01 is deployed and the smoke is run on railiance01.
|
|
|
|
|
|
|
|
|
|
|
|
## Completion 2026-07-02
|
|
|
|
|
|
|
|
|
|
|
|
`make admin-sync-smoke` passed against the freshly deployed
|
|
|
|
|
|
RAIL-BS-WP-0008 runtime: `POST /admin/sync?definitions=true&schedules=true`
|
|
|
|
|
|
returned `ok=true` with `definitions.synced=6`, `schedules.upserted=4`,
|
|
|
|
|
|
`schedules.paused=2`, `deleted_orphans=0`, empty `errors[]`, and the worker
|
|
|
|
|
|
pod identity (`actcore-worker-5b78f85b76-ng54t`, restart_count 0) was
|
|
|
|
|
|
unchanged before and after — proving no-restart admin sync. Non-secret
|
|
|
|
|
|
evidence: State Hub event `4caa288d-830b-4348-9cff-b2d5855cd42d`. The
|
|
|
|
|
|
optional enabled-flip fixture was skipped (no operator fixture supplied);
|
|
|
|
|
|
schedule pause/upsert semantics were exercised by the sync counters. Closes
|
|
|
|
|
|
ACTIVITY-WP-0012-T05.
|