docs(deploy): #793 vd03 record — title at 5fb4b4db, owner-action outcomes, resolved unknowns
v2-ci / unit-tests (push) Has been cancelled
v2-ci / unit-tests (push) Has been cancelled
This commit is contained in:
@@ -1,4 +1,8 @@
|
||||
# wonder-app-vd03 upgrade: `b8b4c18f` → master `363f0d81`
|
||||
# wonder-app-vd03 upgrade: `b8b4c18f` → master `5fb4b4db`
|
||||
|
||||
> **Status: EXECUTED 2026-11-12** — vd03 runs `5fb4b4db`. The readiness notes (§a–§g) were written against master
|
||||
> `363f0d81`; nothing between that and `5fb4b4db` changed the schema, configuration or preflight. The execution
|
||||
> record is §(h); the owner-action table and "Not determined" list below carry the outcomes.
|
||||
|
||||
Upgrade-readiness notes for the DEV box wonder-app-vd03. The box runs the `OtOpcUaHost` service from
|
||||
`E:\ApiInstall\OtOpcUa`: one fused admin+driver node with one FOCAS driver (Makino Z-34184). The ConfigDb
|
||||
@@ -18,14 +22,14 @@ migration at both is `20260731162342_AddApiKeyTable`.
|
||||
|
||||
## Owner actions, in order
|
||||
|
||||
| # | Action | Blocks | Source |
|
||||
|---|---|---|---|
|
||||
| 1 | Run `scripts/preflight/vd03-preupgrade-b8b4c18f-configdb-checks.sql` against `OtOpcUaConfig`, then fix every `attention` + `blocking = YES` row. | The first deploy on master | §g |
|
||||
| 2 | **Add `Security__ApiKeys__Pepper`** to the service environment (at least 16 characters, or a `${secret:}` reference). The box does not have this setting. | **Host start**: the host exits with code 1 | §b |
|
||||
| 3 | Check that `Security__Jwt__SigningKey` is at least 32 UTF-8 bytes. | Host start | §b |
|
||||
| 4 | Apply the `EnableSnapshotIsolation` migration to `OtOpcUaConfig`. | Every deploy (SQL error 3952) | §a |
|
||||
| 5 | Check the 22 FOCAS tags for the `MaxRpm` → `MotorSpeedPct` and `AA_1/AA_2` → `AA6/AA7` renames, and for `String` on MACRO/PMC/PARAM addresses. Tell ScadaBridge about the FOCAS value changes. | Client-visible | §d, check 13 |
|
||||
| 6 | Make the #782 go/hold decision for SDK 2.0.1. The rollout runbook still marks it **HOLD**. | Policy | §c |
|
||||
| # | Action | Blocks | Source | Outcome (2026-11-12) |
|
||||
|---|---|---|---|---|
|
||||
| 1 | Run `scripts/preflight/vd03-preupgrade-b8b4c18f-configdb-checks.sql` against `OtOpcUaConfig`, then fix every `attention` + `blocking = YES` row. | The first deploy on master | §g | **Done.** Every blocking check `ok` (run with `sqlcmd -I`, see §g). |
|
||||
| 2 | **Add `Security__ApiKeys__Pepper`** to the service environment (at least 16 characters, or a `${secret:}` reference). The box does not have this setting. | **Host start**: the host exits with code 1 | §b | **Done.** Generated on the box; service environment 25 → 26 variables. |
|
||||
| 3 | Check that `Security__Jwt__SigningKey` is at least 32 UTF-8 bytes. | Host start | §b | **Done.** 59 bytes; Issuer/Audience set. |
|
||||
| 4 | Apply the `EnableSnapshotIsolation` migration to `OtOpcUaConfig`. | Every deploy (SQL error 3952) | §a | **Done.** `snapshot=ON`; post-deploy deploy had no 3952. |
|
||||
| 5 | Check the 22 FOCAS tags for the `MaxRpm` → `MotorSpeedPct` and `AA_1/AA_2` → `AA6/AA7` renames, and for `String` on MACRO/PMC/PARAM addresses. Tell ScadaBridge about the FOCAS value changes. | Client-visible | §d, check 13 | **OPEN.** One rename found (`Spindle/S1/MaxRpm`, TAG-000b5c2fdf3f), left as authored — it reads `BadNodeIdUnknown` until re-pointed to `MotorSpeedPct`. Nine value-change rows. ScadaBridge not yet told. |
|
||||
| 6 | Make the #782 go/hold decision for SDK 2.0.1. The rollout runbook still marks it **HOLD**. | Policy | §c | **Done.** Owner go for vd03, recorded in #782 (2026-11-12). The runbook's general HOLD for other hosts is unchanged. |
|
||||
|
||||
## (a) ConfigDb migration
|
||||
|
||||
@@ -314,14 +318,17 @@ since the baseline.
|
||||
|
||||
## Not determined
|
||||
|
||||
- Whether the box's `ServerHistorian__Enabled` is true, and if so, which HistorianGateway build it points at
|
||||
(client 1.0.0 compatibility).
|
||||
- Whether the box's JWT signing key is at least 32 bytes.
|
||||
Resolved during the 2026-11-12 run (§h):
|
||||
- ~~`ServerHistorian__Enabled`~~: enabled, pointing at `http://localhost:5221` — HistorianGateway `ea9f21c`
|
||||
(Contracts/Client 1.0.0, deployed 2026-11-11).
|
||||
- ~~JWT signing key length~~: 59 bytes.
|
||||
- ~~#782 go/hold~~: owner go for vd03, recorded in #782.
|
||||
|
||||
Still not determined:
|
||||
- Whether `Security:Acl:Enabled` is on.
|
||||
- ScadaBridge's security mode against vd03.
|
||||
- Whether `b8b4c18f` can reopen LocalDb or outbox files after master has written them; restore them from backup
|
||||
on rollback.
|
||||
- The current #782 go/hold state. The repo runbook says HOLD.
|
||||
- Whether `b8b4c18f` can reopen LocalDb or outbox files after master has written them. Not exercised (no
|
||||
rollback was needed); restore `data\` from the backup on rollback.
|
||||
|
||||
## (h) Execution record, 2026-11-12 (`b8b4c18f` → `5fb4b4db`)
|
||||
|
||||
@@ -349,7 +356,7 @@ Run over WinRM (owner-authorised for this upgrade) with staged scripts; the buil
|
||||
line "every stored and deployed reference is namespaced". OPC UA: ServiceLevel 255; raw and UNS `parts-count`
|
||||
Good; `Program/Name` carries the live program path.
|
||||
- **New log lines.** SDK 2 retries LDS `RegisterServer`/`RegisterServer2` against its own endpoint
|
||||
(`BadServiceUnsupported`, backing off); this is visible now because #874 routes SDK warnings to Serilog. The
|
||||
(`BadServiceUnsupported`, backing off); this is visible now because #874 routes SDK warnings to Serilog (#876). The
|
||||
mesh-PSK refresh warns that `ot-mesh-psk-dev` is absent; the box runs the default DPS mesh transport, so the
|
||||
PSK is not used.
|
||||
- **Post-deploy deploy (owner-authorised, 11:02 UTC).** `/deployments` "Deploy current configuration" →
|
||||
|
||||
Reference in New Issue
Block a user