37 lines
1.2 KiB
Plaintext
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
|