Implementation Plan
Implementation Plan
Phase 1: Directory Structure
Create two new directories:
-
pages/projects/vyos-migration/ -
partials/projects/vyos-migration/
Phase 2: Extract Partials from Monolith
Extract content from the 758-line monolith into 25 partials. Each partial contains only content (no page headers). Comments at top indicate source and includer.
| Partial | Source (monolith lines) | Type |
|---|---|---|
|
39-59 |
Executive summary table |
|
68-93 |
Hardware requirements table |
|
95-116 |
Software requirements table |
|
118-135 |
Pre-migration verification script |
|
144-189 |
DNS milestone + checkpoint |
|
191-241 |
VyOS deployment + checkpoint |
|
243-287 |
Security + checkpoint |
|
289-313 |
Pre-cutover + checkpoint |
|
315-368 |
VRRP + checkpoint + failover test |
|
370-400 |
Advanced features |
|
409-430 |
Pre-migration runbook links |
|
432-449 |
DNS runbook links |
|
451-513 |
HA deployment + SPOF tables |
|
515-528 |
VyOS runbook links |
|
530-543 |
Emergency procedure links |
|
545-558 |
Network infrastructure links |
|
560-569 |
Post-migration runbook links |
|
585-598 |
DNS rollback |
|
600-614 |
VyOS config rollback |
|
616-631 |
Full rollback to pfSense |
|
687-726 |
7-day stabilization checklist |
|
728-757 |
Cross-reference links |
Phase 3: Validation Script to Examples
Move final validation script (lines 635-683) to examples/vyos/migration-final-validation.sh.
Phase 4: Create New Partials
4 partials that don’t exist in the monolith:
| Partial | Purpose |
|---|---|
|
Per-phase status table with completion indicators (matches T16g deployment status pattern) |
|
PRJ metadata: ID, author, dates, status, completion date, key hostnames |
|
Architecture rationale: why VyOS over OPNsense, why VRRP over CARP, why zone-based firewall, why dual-BIND, parallel deployment risk model |
|
Deployment observations: pfSense decommission (2026-03-07), VRRP failover results, pending items (C/F), scope creep backlog |
Phase 5: Create Thin Wrapper Pages
13 pages following the T16g pattern — 5-7 lines each:
= Phase A: DNS Infrastructure
:description: BIND9 DNS record migration — 43 A + 43 PTR + 9 CNAME records
:navtitle: Phase A: DNS Infrastructure
:icons: font
include::partial$projects/vyos-migration/phase-a-dns.adoc[]
Multi-partial pages (index, planning, rollback, validation, reference) include 2-5 partials each.
Phase 6: Update Navigation
Remove from nav.adoc line 211 (Runbooks > Firewall & WAN):
*** xref:runbooks/domusdigitalis-vyos-migration.adoc[VyOS Migration (Master)]
Add to Projects section (~line 147):
** Migrations *** VyOS Migration (pfSense → VyOS) **** xref:projects/vyos-migration/index.adoc[Overview] **** xref:projects/vyos-migration/planning.adoc[Planning] **** Phases ***** xref:projects/vyos-migration/phase-a-dns.adoc[A: DNS Infrastructure] ***** xref:projects/vyos-migration/phase-b-deployment.adoc[B: VyOS VM Deployment] ***** xref:projects/vyos-migration/phase-c-security.adoc[C: Security & Observability] ***** xref:projects/vyos-migration/phase-d-testing.adoc[D: Pre-Cutover Testing] ***** xref:projects/vyos-migration/phase-e-vrrp.adoc[E: VRRP HA] ***** xref:projects/vyos-migration/phase-f-advanced.adoc[F: Advanced Features] **** xref:projects/vyos-migration/rollback.adoc[Rollback] **** xref:projects/vyos-migration/validation.adoc[Validation & Stabilization] **** xref:projects/vyos-migration/reference.adoc[Reference] **** xref:projects/vyos-migration/decisions.adoc[Decisions & Risks] **** xref:projects/vyos-migration/field-notes.adoc[Field Notes]
Phase 7: Delete Monolith
Remove pages/runbooks/domusdigitalis-vyos-migration.adoc.