@startuml actor User participant "Ansible Playbook" as Playbook participant "Target Node" as K8s participant "Control Node" as ControlNode User -> Playbook: Start Playbook Execution Playbook -> Playbook: Save Target IP Playbook -> K8s: Install Required Packages Playbook -> K8s: Create Service Account Playbook -> K8s: Patch Role argo-role (Add pod patch permission) Playbook -> K8s: Patch RoleBinding argo-binding (Add service account) Playbook -> K8s: Create Token for Service Account Playbook -> K8s: Create Source Resource Playbook -> K8s: Retrieve Current Kubeconfig Playbook -> K8s: Convert Kubeconfig to JSON Playbook -> User: Display Worker Kubeconfig Playbook -> Playbook: Save Temporary Kubeconfig File Playbook -> Playbook: Modify Kubeconfig JSON (Replace user token, set server IP) Playbook -> User: Save Updated Kubeconfig File Playbook -> User: Display Instructions for Adding Target User -> Playbook: Start Additional Playbook Execution Playbook -> Playbook: Store Kubeconfig Value Playbook -> User: Display Kubeconfig Playbook -> ControlNode : Copy Kubeconfig Playbook -> ControlNode: Create Service Account on Target Playbook -> ControlNode: Create Authentication Token for Source Playbook -> ControlNode: Create Target Resource @enduml