Files
apk-deploy-02/docs/k3s_component_diagram.puml
2025-03-28 11:01:01 +03:00

57 lines
2.9 KiB
Plaintext

@startuml K3s Infrastructure Component Diagram
!include <C4/C4_Component>
title K3s Kubernetes Cluster Infrastructure - Component Diagram
AddElementTag("module", $bgColor="#85BBF0", $fontColor="black", $borderColor="#78A8D8")
AddElementTag("resource", $bgColor="#85E0A3", $fontColor="black", $borderColor="#78D096")
AddElementTag("data", $bgColor="#F5DA81", $fontColor="black", $borderColor="#E8CD74")
AddElementTag("provider", $bgColor="#F08585", $fontColor="black", $borderColor="#D87878")
Person(client, "DevOps Engineer", "Infrastructure Administrator")
System_Boundary(terraform, "Terraform Infrastructure") {
Component(providers, "Terraform Providers", "null, local", "Required providers for infrastructure management", $tags="provider")
Component_Ext(dev_env, "Development Environment", "terraform/infra/dev", "Main entry point for infrastructure deployment", $tags="module")
Component(k3s_module, "K3s Install Module", "terraform/modules/k3s-install", "Module for K3s Kubernetes cluster deployment", $tags="module")
Component(null_resources, "Null Resources", "terraform", "Various operations performed by null_resource blocks", $tags="resource")
Component(variables, "Variables Configuration", "terraform/infra/dev/terraform.tfvars", "Infrastructure configuration parameters", $tags="data")
Component(env_file, "Environment File", ".env", "Environment-specific variables", $tags="data")
}
System_Boundary(infrastructure, "K3s Kubernetes Cluster") {
Component(server_node, "K3s Server Node", "Kubernetes Control Plane", "Main server managing the Kubernetes cluster", $tags="resource")
Component(worker1, "Worker Node 1", "Kubernetes Worker", "Node running containerized workloads", $tags="resource")
Component(worker2, "Worker Node 2", "Kubernetes Worker", "Node running containerized workloads", $tags="resource")
Component(kubeconfig, "Kubeconfig", "YAML Configuration", "Authentication and connection details", $tags="data")
Component(node_token, "Node Token", "Authentication Token", "Used by workers to join the cluster", $tags="data")
}
Rel(client, dev_env, "Runs terraform apply/destroy")
Rel(dev_env, variables, "Reads configuration from")
Rel(dev_env, env_file, "Reads environment data")
Rel_Right(dev_env, k3s_module, "Uses")
Rel(k3s_module, null_resources, "Creates and manages")
Rel(k3s_module, providers, "Uses")
Rel(null_resources, server_node, "Provisions and configures")
Rel_Right(server_node, node_token, "Generates")
Rel_Right(server_node, kubeconfig, "Generates")
Rel(null_resources, node_token, "Retrieves")
Rel(null_resources, worker1, "Provisions and configures")
Rel(null_resources, worker2, "Provisions and configures")
Rel_Up(worker1, node_token, "Uses for authentication")
Rel_Up(worker2, node_token, "Uses for authentication")
Rel(client, kubeconfig, "Uses to access cluster")
footer K3s Infrastructure Components - Version 1.0
@enduml