|
|
|
@ -1,3 +1,9 @@
|
|
|
|
|
## ucloud docs |
|
|
|
|
|
|
|
|
|
Are stored in lektor/ and use |
|
|
|
|
[lektor](https://www.getlektor.com/). |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## ucloud flows |
|
|
|
|
|
|
|
|
|
Stuff that we want to do with ucloud |
|
|
|
@ -26,7 +32,7 @@ digraph{
|
|
|
|
|
ucloudsomething->cephcluster [ label=" Link/copy image "] |
|
|
|
|
cephcluster -> { ceph1, ceph2, ceph3} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
``` |
|
|
|
|
|
|
|
|
@ -37,7 +43,7 @@ digraph{
|
|
|
|
|
digraph { |
|
|
|
|
subgraph g1 { |
|
|
|
|
node [ shape="box"] |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
user [ label="User" shape="circle"] |
|
|
|
|
user -> cli [ label=" uses "] |
|
|
|
|
|
|
|
|
@ -49,14 +55,14 @@ digraph {
|
|
|
|
|
api -> uotp [label="Verify token [2]" dir="both"] |
|
|
|
|
api -> etcd [label="Create (VM Entry and \nA Request to Schedule VM) [3]"]; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
subgraph cluster_otp { |
|
|
|
|
uotp [shape="diamond" label="ungleich otp"] |
|
|
|
|
} |
|
|
|
|
subgraph cluster_etcd { |
|
|
|
|
etcd |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
``` |
|
|
|
@ -80,7 +86,7 @@ digraph {
|
|
|
|
|
```graphviz |
|
|
|
|
digraph { |
|
|
|
|
node [ shape="box"]; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
subgraph cluster_etcd { |
|
|
|
|
etcd |
|
|
|
|
} |
|
|
|
@ -90,13 +96,13 @@ digraph {
|
|
|
|
|
host -> start_vm [label="[9]"] |
|
|
|
|
start_vm |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
start_vm -> etcd [label=" Set VM Status to Running"] |
|
|
|
|
start_vm -> ceph_cluster [label=" If VM isn't created already then Copy VM's base image\n to uservms pool and rename it to match VM's uuid [9a]"] |
|
|
|
|
ceph_cluster -> start_vm [label="VM Created [9b]"] |
|
|
|
|
start_vm -> ceph_cluster [label="Start VM [10]"] |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
subgraph cluster_ceph { |
|
|
|
|
ceph_cluster [label="CEPH Cluster"] |
|
|
|
|
} |
|
|
|
@ -142,7 +148,7 @@ digraph {
|
|
|
|
|
label="Create VM with ucloud" |
|
|
|
|
|
|
|
|
|
cli->api->etcd->ucloudnetwork; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
``` |
|
|
|
|
|
|
|
|
@ -150,14 +156,14 @@ digraph {
|
|
|
|
|
|
|
|
|
|
* Network is usable for user directly |
|
|
|
|
* When VM is started, network might be created on host |
|
|
|
|
* Status: 90% done, |
|
|
|
|
|
|
|
|
|
* Status: 90% done, |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
```graphviz |
|
|
|
|
digraph { |
|
|
|
|
|
|
|
|
|
label="Create VM with ucloud" |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
cli; |
|
|
|
|
createnetwork [ label="Create VXLAN on device, create bridge"] |
|
|
|
|
createonhost [ label="Create VM on host"] |
|
|
|
@ -168,27 +174,27 @@ digraph {
|
|
|
|
|
ucloudhost->ucloudhost [ label="Wait until network exists"] |
|
|
|
|
ucloudnetwork->etcd [ label="Check for new networks"] |
|
|
|
|
ucloudhost->createonhost [ label="Create VM in network(s)"] |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ucloudnetwork->network [ label="Check whether network exists locally"] |
|
|
|
|
network->createnetwork [ label="no"]; |
|
|
|
|
network->noop [ label="yes"] |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
subgraph cluster_anywhere { |
|
|
|
|
api |
|
|
|
|
etcd |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
subgraph cluster_host { |
|
|
|
|
ucloudhost; |
|
|
|
|
ucloudnetwork; |
|
|
|
|
host; |
|
|
|
|
network; |
|
|
|
|
createnetwork; |
|
|
|
|
createnetwork; |
|
|
|
|
createonhost; |
|
|
|
|
noop; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
``` |
|
|
|
|
|
|
|
|
@ -201,12 +207,12 @@ Extending the flow from the case for managing networks
|
|
|
|
|
digraph { |
|
|
|
|
|
|
|
|
|
label="Create VM with ucloud" |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
newvxlan [ label="Assign new VXLAN ID"] |
|
|
|
|
newnet [ label="Assign new /64 IPv6 network"] |
|
|
|
|
needsnet [ label="Needs IPAM?"] |
|
|
|
|
radvd [ label="Create RA instance (radvd)"] |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
etcd->ucloudnetworkmanager [ label="New network requests"] |
|
|
|
|
ucloudnetworkmanager->newvxlan; |
|
|
|
|
newvxlan->needsnet; |
|
|
|
@ -222,7 +228,7 @@ digraph {
|
|
|
|
|
label="Router"; |
|
|
|
|
radvd; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
``` |
|
|
|
|
|
|
|
|
@ -259,7 +265,7 @@ We can use this case as a base for development. We might add VM migration (w/ co
|
|
|
|
|
|
|
|
|
|
## From zero to fully functional ucloud cluster (ceph, production) |
|
|
|
|
```bash= |
|
|
|
|
# We assume that the ceph configuration files are already in place |
|
|
|
|
# We assume that the ceph configuration files are already in place |
|
|
|
|
# i.e under /etc/ceph/ |
|
|
|
|
|
|
|
|
|
// Only needed on alpine linux |
|
|
|
|