Skip to main content

max / makenotwork

2.0 KB · 74 lines History Blame Raw
1 # Sando topology config.
2 #
3 # Tiers run in declaration order. Each tier lists the gates that must pass to
4 # unlock promotion *to* the next tier, the nodes it ships to, and the canary
5 # policy for shipping within the tier.
6 #
7 # Day-one wiring: host (pop-os, local) -> A (testnot.work) -> B (prod-1). C is
8 # declared but not provisioned; adding the second prod node later is a config
9 # edit (set provisioned = true, fill in [[tier.node]]).
10 #
11 # Note: the host tier is named "mm" for legacy reasons (string identifier baked
12 # into the schema + code). It refers to whatever machine sandod runs on —
13 # currently pop-os, not a MakeMachine. Rename is a follow-up cleanup.
14
15 [repo]
16 bare_path = "/srv/sando/mnw.git"
17 branch = "main"
18
19 [backup]
20 # Source of the prod-backup clone used by migration_dry_run on MM.
21 # For localhost dev this can be a file:// path to a fixture dump.
22 source = "rsync://astra/var/backups/mnw/latest.sql.gz"
23 local_path = "/srv/sando/backups/latest.sql.gz"
24
25 # ---- host: pop-os local pre-staging gate ----
26 [[tier]]
27 name = "mm"
28 provisioned = true
29 canary = "sequential"
30 gates = [
31 { kind = "cargo_test" },
32 { kind = "migration_dry_run" },
33 { kind = "boot_smoke" },
34 ]
35 # Host is the daemon's own machine (pop-os); no remote node row.
36
37 # ---- A: testnot.work staging ----
38 [[tier]]
39 name = "a"
40 provisioned = true
41 canary = "sequential"
42 gates = [
43 { kind = "boot_smoke" },
44 { kind = "burn_in", hours = 48 },
45 ]
46 [[tier.node]]
47 name = "testnot-1"
48 ssh_target = "deploy@testnot.work"
49 release_root = "/opt/mnw"
50
51 # ---- B: prod-1 ----
52 [[tier]]
53 name = "b"
54 provisioned = true
55 canary = "sequential"
56 gates = [
57 { kind = "boot_smoke" },
58 { kind = "manual_confirm" },
59 ]
60 [[tier.node]]
61 name = "prod-1"
62 ssh_target = "deploy@prod-1.makenot.work"
63 release_root = "/opt/mnw"
64
65 # ---- C: prod-2 (declared, not yet provisioned) ----
66 [[tier]]
67 name = "c"
68 provisioned = false
69 canary = "sequential"
70 gates = [
71 { kind = "boot_smoke" },
72 ]
73 # [[tier.node]] entries to be added when the second prod node ships.
74