dustin.web/content/projects/dynk8s/sequence.plantuml

37 lines
1.2 KiB
Plaintext

@startuml
box Internal Network
participant Jenkins
participant Pod
participant Kubernetes
participant Autoscaler
participant Provisioner
Jenkins -> Kubernetes : Create Pod
Kubernetes -> Autoscaler : Scale Up
end box
Autoscaler -> AWS : Launch Instance
create "EC2 Instance"
AWS -> "EC2 Instance" : Start
AWS --> Provisioner : Instance Started
Provisioner -> Provisioner : Generate Bootstrap Token
Provisioner -> Kubernetes : Store Bootstrap Token
Provisioner -> Kubernetes : Allocate WireGuard Config
"EC2 Instance" -> Provisioner : Request WireGuard Config
Provisioner -> Kubernetes : Request WireGuard Config
Kubernetes -> Provisioner : Return WireGuard Config
Provisioner -> "EC2 Instance" : Return WireGuard Config
"EC2 Instance" -> "EC2 Instance" : Configure WireGuard
"EC2 Instance" -> Provisioner : Request Cluster Config
Provisioner -> "EC2 Instance" : Return Cluster Config
group WireGuard Tunnel
"EC2 Instance" -> Kubernetes : Request Certificate
Kubernetes -> "EC2 Instance" : Return Certificate
"EC2 Instance" -> Kubernetes : Join Cluster
Kubernetes -> "EC2 Instance" : Acknowledge Join
Kubernetes -> "EC2 Instance" : Schedule Pod
"EC2 Instance" -> Kubernetes : Pod Started
end
Kubernetes -> Jenkins : Pod Started
create Pod
Jenkins -> Pod : Execute job
@enduml