85 lines
1.8 KiB
Plaintext
85 lines
1.8 KiB
Plaintext
@startuml K3s Infrastructure Deployment Workflow
|
|
skinparam ConditionEndStyle hline
|
|
|
|
title K3s Kubernetes Cluster Deployment Workflow
|
|
|
|
|#AntiqueWhite|Client|
|
|
|#LightBlue|Terraform|
|
|
|#PaleGreen|Server Node|
|
|
|#LightSalmon|Worker Nodes|
|
|
|
|
|Client|
|
|
start
|
|
:Prepare SSH Authentication;
|
|
note right: SSH key pair must be available at the specified path
|
|
|
|
|Terraform|
|
|
:Read Input Variables (Dev Environment);
|
|
note right: server_ip, worker_ips, ssh_user, ssh_private_key, and other parameters
|
|
|
|
:Setup SSH Config;
|
|
note right: Creates temporary SSH config for secure connections
|
|
|
|
|Server Node|
|
|
:Install K3s Server;
|
|
note right
|
|
Uses curl to download and run K3s installer
|
|
Configures node as a Kubernetes server
|
|
end note
|
|
|
|
:Store Kubeconfig;
|
|
:Generate Node Token;
|
|
note right: Required for worker nodes to join the cluster
|
|
|
|
|Terraform|
|
|
:Retrieve K3s Kubeconfig;
|
|
note right
|
|
Gets k3s.yaml configuration
|
|
Makes it accessible locally
|
|
Updates server URL in config
|
|
end note
|
|
|
|
:Retrieve Node Token;
|
|
note right: Securely transfer the token to local environment
|
|
|
|
|Worker Nodes|
|
|
fork
|
|
:Worker Node 1;
|
|
note right: For each worker node in parallel
|
|
fork again
|
|
:Worker Node 2;
|
|
end fork
|
|
|
|
|Terraform|
|
|
:Copy Node Token to Workers;
|
|
note right: Securely transfer the join token to each worker
|
|
|
|
|Worker Nodes|
|
|
fork
|
|
:Install K3s Agent (Worker 1);
|
|
note right
|
|
Installs K3s in agent mode
|
|
Connects to server using token
|
|
Registers as a worker node
|
|
end note
|
|
fork again
|
|
:Install K3s Agent (Worker 2);
|
|
end fork
|
|
|
|
|Terraform|
|
|
:Cluster is Ready;
|
|
note right
|
|
All nodes are provisioned
|
|
Kubeconfig is available locally
|
|
Cluster can be accessed via kubectl
|
|
end note
|
|
|
|
|Client|
|
|
:Access Kubernetes Cluster;
|
|
note right: Using generated kubeconfig at ~/.kube/config or as specified
|
|
|
|
stop
|
|
|
|
footer Infrastructure Deployment Process - Version 1.0
|
|
@enduml
|