-
Notifications
You must be signed in to change notification settings - Fork 11
/
Copy pathnodes-add.puml
91 lines (72 loc) · 2.87 KB
/
nodes-add.puml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
@startuml
header **CB-Ladybug** (v0.7.0-cortado)
title Add nodes
hide footbox
participant "Client" as webtool #d1e0ff
participant "Ladybug" as provider
database "Ladybug data" as db
participant "Tumblebug" as tumblebug #d1e0ff
participant "Control plane" as mNodes #eeeeee
participant "Worker nodes" as wNodes #eeeeee
activate webtool
webtool -> provider : POST\n/ns/:ns/clusters/:cluster/nodes \n{controlPlane:{},worker:{}}
activate provider
provider -> tumblebug : GET\n/ns/:ns/mcis/:mcis
tumblebug --> provider : {mcis}
provider -> webtool : [if mcis does exist]\nerror
'-- 1. join command
provider <-> db : select {control-plane}
provider -> mNodes : ssh (get a worker join command)
provider <-- mNodes : output (join-command)
provider -> webtool : [if there is an error]\nerror
provider -> provider : network cni & index
'-- 2.1. vpc
provider -> tumblebug : GET\n/ns/:ns/resources/vNet/:vpc
tumblebug --> provider : {vpc}
provider -> tumblebug : [if it does not exist]\nPOST s/:ns/resources/vNet
tumblebug --> provider : {vpc}
provider -> webtool : [if there is an error]\nerror
'-- 2.2. sg(fw)
provider -> tumblebug : GET\n/ns/:ns/resources/securityGroup/:sg
tumblebug --> provider : {sg}
provider -> tumblebug : [if it does not exist]\nPOST /ns/:ns/resources/securityGroup
tumblebug --> provider : {sg}
provider -> webtool : [if there is an error]\nerror
'-- 2.3. ssh
provider -> tumblebug : GET\n/ns/:ns/resources/sshKey/:key
tumblebug --> provider : {keypair}
provider -> tumblebug : [if it does not exist]\nPOST /ns/:ns/resources/sshKey
tumblebug --> provider : {keypair}
provider -> webtool : [if there is an error]\nerror
'-- 2.4. image
provider -> tumblebug : GET\n/ns/:ns/resources/image/:image
tumblebug --> provider : {image}
provider -> tumblebug : [if it does not exist]\nPOST /ns/:ns/resources/image
tumblebug --> provider : {image}
provider -> webtool : [if there is an error]\nerror
'-- 2.5. spec
provider -> tumblebug : GET\n/ns/:ns/resources/spec/:spec
tumblebug --> provider : {image}
provider -> tumblebug : [if it does not exist]\nPOST /ns/:ns/resources/spec
tumblebug --> provider : {image}
provider -> webtool : [if there is an error]\nerror
'-- 2.6. mcis
loop while node count
provider -> tumblebug : POST\n/ns/:ns/mcis/:mcis/vm:/vm
tumblebug --> provider : {vm}
provider -> webtool : [if there is an error]\nerror
end
'-- 3. boostrap & provisioning
loop nodes
provider <->o wNodes : test ssh connection
provider <->o wNodes : copy scripts
provider <->o wNodes : systemd
provider <->o wNodes : bootstrap
provider <->o wNodes : join command (ssh)
provider -> webtool : [if there is an error]\nerror
end
provider -> db : update {cluster}
provider --> webtool : {nodes}
deactivate provider
deactivate webtool
@enduml