From 2f4bb3ab0b16de60b270c0dfeab6fa27b5e5ab4e Mon Sep 17 00:00:00 2001 From: Mario Manno Date: Tue, 24 Jun 2025 15:19:30 +0200 Subject: [PATCH] Update registration flow chart --- docs/cluster-registration.md | 29 ++++++++++++++++------------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/docs/cluster-registration.md b/docs/cluster-registration.md index a413d4aba..dbff71c54 100644 --- a/docs/cluster-registration.md +++ b/docs/cluster-registration.md @@ -42,12 +42,14 @@ graph TD direction LR subgraph "Flow 1: Agent-Initiated" direction TB - A1(Admin Creates
ClusterRegistrationToken) --> A2{Fleet Controller
Creates Secret} + A0(Optional: Admin Creates Cluster with clientID) --> A1 + + A1(Admin Creates
ClusterRegistrationToken) --> A2{Fleet Controller Creates Secret
for a temporary 'import' ServiceAccount} end - subgraph "Flow 2: Manager-Initiated" + subgraph "Flow 2: Manager-Initiated (for existing cluster)" direction TB - B1(Admin Creates
Kubeconfig Secret) --> B2(Admin Creates Cluster
Resource referencing Secret) - B2 --> B3{Fleet Controller Uses
Kubeconfig to Deploy Agent} + B1(Admin Creates Kubeconfig Secret
for an existing cluster) --> B2(Admin Creates Cluster Resource
referencing the Kubeconfig Secret.
Can define a clientID here) + B2 --> B3{Fleet Controller uses admin-provided
kubeconfig to deploy agent} end end @@ -55,25 +57,26 @@ graph TD direction LR subgraph "Agent Install (Flow 1)" direction TB - A3(Admin Installs
Fleet Agent via Helm
using Token) + A3(Admin installs Fleet Agent via Helm
using the 'import' token secret.
Can provide clientID) end subgraph "Agent Deployed (Flow 2)" direction TB - B4(Agent & Bootstrap
Secret are Deployed) + B4(Agent & bootstrap secret are deployed.
Bootstrap contains an 'import' kubeconfig.) end end - subgraph Common Registration Stages + subgraph "Common Registration Stages (Identity Handshake)" direction TB - C1(Agent Starts & Finds
Bootstrap Credentials) - C1 --> C2(Agent Creates
ClusterRegistration
resource on Upstream Cluster) - C2 --> C3{Upstream Controller Grants
Registration & Creates
Final Credentials/Secret} - C3 --> C4(Agent Persists Final
Credentials & Deletes
Bootstrap Secret) - C4 --> C5{Upstream Controller
Creates dedicated
Cluster Namespace} - C5 --> C6(✅ Agent Fully Registered
& Watching for Workloads) + C1(Agent pod starts, using its local 'agent' SA.
Finds & uses the 'import' kubeconfig
from the bootstrap secret to talk to Upstream.) + C1 --> C2(Using its 'import' identity, Agent creates
a ClusterRegistration resource on Upstream) + C2 --> C3{Upstream Controller creates a permanent
'request' ServiceAccount & a new,
long-term kubeconfig/secret for it.} + C3 --> C4(Agent receives and persists the
'request' SA credentials.
The temporary bootstrap secret is deleted.) + C4 --> C5{Upstream Controller creates a dedicated
Cluster Namespace for this agent.} + C5 --> C6(✅ Agent Fully Registered.
Uses its 'request' identity to watch
for workloads in its namespace.) end %% Styling + style A0 fill:#e0f2fe,stroke:#0ea5e9,stroke-width:2px style A1 fill:#e0f2fe,stroke:#0ea5e9,stroke-width:2px style B1 fill:#e0f2fe,stroke:#0ea5e9,stroke-width:2px style A3 fill:#d1fae5,stroke:#10b981,stroke-width:2px