Toggle menu
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

TELEICU/Canary rollout: Difference between revisions

From OHC Network Wiki
Content deleted Content added
Create TELEICU canary rollout flow page (via create-page on MediaWiki MCP Server)
 
Replace ASCII branch diagram with Mermaid (via update-page on MediaWiki MCP Server)
Line 10: Line 10:
== Stages ==
== Stages ==


<pre>
# '''Staging''' — a small set of test VMs or spare hardware that mirrors production. Every change lands here first.
{{#mermaid:flowchart LR
# '''Canary (1–2 sites)''' — real hospital PCs, selected from sites with tolerant operations. Changes soak here for a validation period.
STAGING["Staging<br/>(test VMs/hardware)"]
# '''Regional rollout''' — one state or hub region at a time, with a gating check after each region.
CANARY["Canary<br/>(1-2 real sites)"]
# '''Fleet-wide''' — remaining sites after all regions have passed.
REGIONAL["Regional Rollout<br/>(one state at a time)"]
FLEET["Fleet-wide<br/>(remaining sites)"]

STAGING -->|"validate →"| CANARY
CANARY -->|"gate →"| REGIONAL
REGIONAL -->|"gate →"| FLEET
}}
</pre>


== Gating criteria ==
== Gating criteria ==
Line 29: Line 37:
=== Ansible path ===
=== Ansible path ===


<pre>
# Push change to ansible repo <code>staging</code> branch → staging nodes converge on next pull
{{#mermaid:flowchart LR
# Merge to <code>canary</code> branch → canary nodes pull and apply
STAGING["staging branch"]
# Merge to <code>regional/&lt;state&gt;</code> branch → that state's nodes converge
CANARY["canary branch"]
# Merge to <code>main</code> → fleet-wide rollout
REGIONAL["regional/&lt;state&gt; branch"]
MAIN["main branch"]


STAGING -->|"merge"| CANARY
=== NixOS path ===
CANARY -->|"merge"| REGIONAL
REGIONAL -->|"merge"| MAIN
}}
</pre>


=== NixOS path ===
# Update flake → rebuild in staging
# For canary: <code>deploy-rs .#canary-node</code> (push) or merge to canary branch for comin
# For regional: tag a release → comin picks up the tag
# For fleet: update <code>main</code> branch of flake → all comin agents pull new generation


<pre>
== Branch/tag structure ==
{{#mermaid:flowchart LR
STAGING["Update flake → rebuild in staging"]
CANARY["deploy-rs .#canary-node<br/>or merge to canary branch"]
REGIONAL["Tag release → comin picks up tag"]
FLEET["Merge to main → comin pulls"]


STAGING -->|"validate →"| CANARY
syntaxhighlight lang="text"
CANARY -->|"gate →"| REGIONAL
main ────────────── fleet-wide
REGIONAL -->|"gate →"| FLEET
├── regional/kerala
}}
├── regional/maharashtra
</pre>
├── …
└── canary
└── staging
syntaxhighlight


{{Related}}
{{Related}}

Revision as of 08:25, 6 July 2026

flowteleicuCARE 3.0+

Both migration paths use the same staged rollout process to minimize fleet-wide risk.

Stages

{{#mermaid:flowchart LR
    STAGING["Staging<br/>(test VMs/hardware)"]
    CANARY["Canary<br/>(1-2 real sites)"]
    REGIONAL["Regional Rollout<br/>(one state at a time)"]
    FLEET["Fleet-wide<br/>(remaining sites)"]

    STAGING -->|"validate →"| CANARY
    CANARY -->|"gate →"| REGIONAL
    REGIONAL -->|"gate →"| FLEET
}}

Gating criteria

A stage must pass all checks before promoting to the next:

  • All nodes report healthy to K3s control plane
  • VictoriaMetrics shows no anomaly in key metrics
  • Downtime classifier reports expected status (no false positives)
  • Hub admin confirms no degradation in clinical workflow
  • Rollback tested and confirmed working

Per-path

Ansible path

{{#mermaid:flowchart LR
    STAGING["staging branch"]
    CANARY["canary branch"]
    REGIONAL["regional/<state> branch"]
    MAIN["main branch"]

    STAGING -->|"merge"| CANARY
    CANARY -->|"merge"| REGIONAL
    REGIONAL -->|"merge"| MAIN
}}

NixOS path

{{#mermaid:flowchart LR
    STAGING["Update flake → rebuild in staging"]
    CANARY["deploy-rs .#canary-node<br/>or merge to canary branch"]
    REGIONAL["Tag release → comin picks up tag"]
    FLEET["Merge to main → comin pulls"]

    STAGING -->|"validate →"| CANARY
    CANARY -->|"gate →"| REGIONAL
    REGIONAL -->|"gate →"| FLEET
}}