forked from cloud-barista/cb-ladybug
-
Notifications
You must be signed in to change notification settings - Fork 0
/
cluster-create.puml
154 lines (120 loc) · 3.64 KB
/
cluster-create.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
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
@@startuml
header Cloud-Barista
title Create a cluster
hide footbox
actor "User" as user #d1e0ff
participant "Webtool" as webtool #d1e0ff
participant "Ladybug" as ladybug
database "Ladybug data" as db
participant "Ladybug" as provider
participant "Tumblebug" as tumblebug #d1e0ff
participant "Spider" as spider #d1e0ff
participant "Master node" as mNodes #eeeeee
participant "Worker nodes" as wNodes #eeeeee
activate user
user -> webtool : create a cluster
activate webtool
webtool -> ladybug : POST/ns/:ns/clusters/:cluster\n {name,cp-spec,cp-count,wk-spec,wk-count}
activate ladybug
ladybug -> provider : create cloud connection info.\n {ns,config}
' -- 1.infra
activate provider
'-- 1.1. vpc
provider -> tumblebug : POST\n/ns/:ns/resources/vNet
activate tumblebug
tumblebug -> spider : POST /vpc
activate spider
tumblebug <-- spider
deactivate spider
tumblebug --> provider : ack
deactivate tumblebug
'-- 1.2. sg(fw)
provider -> tumblebug : POST\n/ns/:ns/resources/securityGroup
activate tumblebug
tumblebug -> spider : POST /securitygroup
activate spider
tumblebug <-- spider
deactivate spider
tumblebug --> provider : ack
deactivate tumblebug
'-- 1.3. ssh
provider -> tumblebug : POST\n/ns/:ns/resources/sshKey
activate tumblebug
tumblebug -> spider : POST /keypair
activate spider
tumblebug <-- spider
deactivate spider
tumblebug --> provider : ack
deactivate tumblebug
'-- 1.4. image
provider -> tumblebug : POST\n/ns/:ns/resources/image
activate tumblebug
tumblebug -> spider : POST /vmimage
activate spider
tumblebug <-- spider
deactivate spider
tumblebug --> provider : ack
deactivate tumblebug
'-- 1.5. spec
provider -> tumblebug : POST\n/ns/:ns/resources/spec
activate tumblebug
tumblebug -> spider : POST /spec
activate spider
tumblebug <-- spider
deactivate spider
tumblebug --> provider : ack
deactivate tumblebug
provider --> ladybug : ack {cloud connection info.}
deactivate provider
' //-- 1.infra
ladybug ->o db : insert {cloud connection info.}
' -- 2.mcis
ladybug -> provider : create MCIS {cp-count,wk-count}
activate provider
provider -> tumblebug : POST\n/mcis
activate tumblebug
tumblebug ->o spider : POST/vm
activate spider
tumblebug <-- spider
deactivate spider
tumblebug --> provider : ack {vm}
deactivate tumblebug
provider -> provider : wait
provider --> ladybug : ack {mcis}
deactivate provider
' //-- 2.mcis
' -- 3.provisioning
ladybug -> provider : Provisioning
activate provider
provider -> mNodes : bootstrap (ssh)
activate mNodes
provider <-- mNodes : ack
deactivate mNodes
provider -> wNodes : bootstrap (ssh)
activate wNodes
provider <-- wNodes : ack
deactivate wNodes
provider -> mNodes : init (ssh)
activate mNodes
provider <-- mNodes : ack
deactivate mNodes
provider -> mNodes : query variable (ssh)
activate mNodes
provider <- mNodes : {endpoint, token, hash, kubeconfig}
deactivate mNodes
loop workers
provider -> wNodes : join {endpoint, token, hash}
activate wNodes
provider <-- wNodes : ack
deactivate wNodes
end
provider -> ladybug : ack {kubeconfig}
deactivate provider
' //-- 3.provisioning
ladybug ->o db : update {kubeconfig}
ladybug --> webtool : ack {clusater}
deactivate ladybug
webtool --> user : ack
deactivate webtool
deactivate user
@@enduml