@startuml K3s Infrastructure Component Diagram !include 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