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

TELEICU/Topology: Difference between revisions

From OHC Network Wiki
Content deleted Content added
Create TELEICU topology reference page (via create-page on MediaWiki MCP Server)
 
Replace ASCII topology with Mermaid diagram (via update-page on MediaWiki MCP Server)
Line 32: Line 32:
== Network topology ==
== Network topology ==


<pre>
syntaxhighlight lang="text"
{{#mermaid:flowchart TB
┌─────────────────────┐
subgraph CP["Cloud Control Plane"]
│ Cloud CP VM 1 │
(etcd member)
CP1["CP VM 1<br/>(etcd)"]
CP2["CP VM 2<br/>(etcd)"]
├─────────────────────┤
│ Cloud CP VM 2 │
CP3["CP VM 3<br/>(etcd)"]
end
│ (etcd member) │

├─────────────────────┤
TS["Tailscale Mesh"]
│ Cloud CP VM 3 │

│ (etcd member) │
CP1 --- TS
└──────────┬──────────┘
CP2 --- TS
CP3 --- TS
Tailscale mesh

subgraph Agents["K3s Agent Nodes (200+)"]
┌──────────────────────┼──────────────────────┐
H["Hub Node<br/>K3s agent<br/>+ middleware"]
│ │ │
S1["Spoke Node<br/>K3s agent<br/>+ middleware"]
▼ ▼ ▼
S2["Spoke Node<br/>K3s agent<br/>+ middleware"]
┌──────────────────┐ ┌──────────────────┐ ┌──────────────────┐
SN["... (200 more)"]
│ Hub site (agent) │ │ Spoke site (agent)│ │ Spoke site (agent)│
end
│ K3s agent │ │ K3s agent │ │ K3s agent │

│ + middleware │ │ + middleware │ │ + middleware │
TS --- H
└──────────────────┘ └──────────────────┘ └──────────────────┘
TS --- S1
syntaxhighlight
TS --- S2
TS --- SN
}}
</pre>


== Node communication ==
== Node communication ==

Revision as of 08:25, 6 July 2026

referenceteleicuCARE 3.0+

The target topology for the TELEICU infrastructure across all 200+ sites.

Components

Control plane (cloud VMs)

1–3 virtual machines in reliable cloud environments, serving as the K3s control plane. These nodes:

- Run embedded etcd for HA control plane state - Host the K3s server process - Are reachable over Tailscale from all spoke/hub nodes - Run in cloud regions with stable power and internet - Are the management entry point for both Ansible and NixOS paths

Agent nodes (hospital sites)

Every hospital PC — whether spoke or hub — runs as a K3s agent node. Each agent:

- Runs K3s agent process, registered to the control plane - Hosts containerized TELEICU middleware workloads - Connects over Tailscale for all control-plane communication - Pulls its node-level configuration (Ansible pull or comin) - Reports monitoring data to VictoriaMetrics

Network topology

{{#mermaid:flowchart TB
    subgraph CP["Cloud Control Plane"]
        CP1["CP VM 1<br/>(etcd)"]
        CP2["CP VM 2<br/>(etcd)"]
        CP3["CP VM 3<br/>(etcd)"]
    end

    TS["Tailscale Mesh"]

    CP1 --- TS
    CP2 --- TS
    CP3 --- TS

    subgraph Agents["K3s Agent Nodes (200+)"]
        H["Hub Node<br/>K3s agent<br/>+ middleware"]
        S1["Spoke Node<br/>K3s agent<br/>+ middleware"]
        S2["Spoke Node<br/>K3s agent<br/>+ middleware"]
        SN["... (200 more)"]
    end

    TS --- H
    TS --- S1
    TS --- S2
    TS --- SN
}}

Node communication

All traffic between agent nodes and the control plane traverses Tailscale:

- K3s registration: agent → CP over Tailscale IPs - Configuration pull: ansible-pull or comin fetches from git repo (routed through CP or directly) - Metrics: node → VictoriaMetrics endpoint - Incident notifications: heartbeat missing → on-device agent classifies cause → alert routed to hub admin

No sensitive data in this page

IP addresses, subnets, DNS names, and specific cloud providers are not documented here. These are environment-specific and maintained in the deployment repository's encrypted variables.