Assistant: codex Assistant-Model: gpt-6-astra Assistant-Session: 01a09cbc-910e-77a0-b336-3130194350b3
74 lines
2.8 KiB
Markdown
74 lines
2.8 KiB
Markdown
---
|
|
id: RAIL-HO-WP-0013
|
|
type: workplan
|
|
title: "Declare systemd-timesyncd as the S1 host UTC daemon"
|
|
domain: financials
|
|
repo: railiance-infra
|
|
status: proposed
|
|
owner: codex
|
|
topic_slug: railiance
|
|
origin: residual
|
|
origin_ref: RCLK-WP-0005
|
|
created: "2026-09-14"
|
|
updated: "2026-09-14"
|
|
related: [RAIL-HO-WP-0011, RCLK-WP-0005, RCLK-WP-0002]
|
|
---
|
|
|
|
Residual from RCLK-WP-0005-T01. railiance01 already runs a single
|
|
systemd-timesyncd against Ubuntu default NTP, UTC, synchronized. That unit is
|
|
not in S1 IaC. railiance-hosts is superseded; do not duplicate the tree there.
|
|
|
|
Wait for RCLK-WP-0002's UTC/leap/quality contract before choosing servers or
|
|
holdover. Do not install chrony alongside timesyncd.
|
|
|
|
## Declare the adopted daemon
|
|
|
|
```task
|
|
id: RAIL-HO-WP-0013-T01
|
|
status: wait
|
|
priority: medium
|
|
```
|
|
|
|
Version systemd-timesyncd (not chrony) in railiance-infra: enabled unit,
|
|
NTP/FallbackNTP, restricted listeners, health export. Lint/render only until
|
|
RCLK-WP-0002 and RCLK-WP-0005-T02 authorize live apply. No second daemon.
|
|
|
|
Canonical S1 ownership: railiance-master ADR-0004 and
|
|
`docs/reef-first-wave-source-map.md`. Repeatable read-only evidence lives in
|
|
railiance-clock at `docs/evidence/2026-09-14-railiance01-clock-inventory.json`
|
|
and `tools/observe_host_clock.py`. The synchronized flag does not establish an
|
|
independent UTC error bound. Current distro fallback is observed, not an approved
|
|
independent source set. Review upstream/leap/holdover policy with RCLK-WP-0002.
|
|
|
|
Use an opt-in Ansible role and narrow playbook; bootstrap calls that same role.
|
|
Guard against competing daemons and unsupported hosts. Export explicit unusable
|
|
health states; the application must never acquire clock-write privileges.
|
|
|
|
## Prove IaC convergence, drift and recovery before live rollout
|
|
|
|
```task
|
|
id: RAIL-HO-WP-0013-T02
|
|
status: wait
|
|
priority: high
|
|
```
|
|
|
|
Depends on T01. Lint/render and disposable VM convergence; second apply must be
|
|
no-op. Detect intentional disposable drift, verify reboot persistence and source
|
|
outage/recovery, and prove source-based rollback. Measure health reporting limits.
|
|
Record exact source revision/target/config checksum and no unrelated changes.
|
|
A mocked systemctl result or container-only check is not host synchronization proof.
|
|
|
|
## Apply the reviewed source and return steady-state handoff
|
|
|
|
```task
|
|
id: RAIL-HO-WP-0013-T03
|
|
status: wait
|
|
priority: high
|
|
```
|
|
|
|
Depends on T02 and normal reviewed live-host authorization. Produce the exact
|
|
railiance01 diff and clock-step/credential-consumer impact plan, then use owner
|
|
IaC to apply/read back. Reverify usable host health and no extra listener/daemon;
|
|
record rollback and monitoring ownership. Hand evidence to RCLK-WP-0005 and
|
|
railiance-bootstrap for ordering/rehearsal. Keep all residuals live before closure.
|
|
No corporate workstation time settings or app-clock trust adoption in this plan.
|