summaryrefslogtreecommitdiffstats
path: root/docs/source/models_demo_flow.txt
blob: 69f3600740b723542edaccabaf8d37ce0ac27008 (plain)
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
Title: High-level flow for the OPNFV Models+VES demo deployment.
# (c) 2018 AT&T Intellectual Property, Inc
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# To generate the flow, browse to https://bramp.github.io/js-sequence-diagrams/,
# select Theme "Simple", and paste the content of this file into the editor.

participant Admin Server as admin
participant k8s master as k8s_master
participant k8s worker as k8s_worker
participant Cloudify Manager as cloudify
participant k8s pods as k8s_pod
participant Barometer as barometer
participant Kafka\nZookeeper as kafka
participant VES Agent as agent
participant VES Collector as collector
participant InfluxDB as influxdb
participant Grafana as grafana
Note over admin, grafana: For brevity, action/api responses are not shown (flow continuation indicates success).
admin->k8s_master: deploy host OS
admin->k8s_worker: deploy host OS
admin->k8s_master: (SSH) install k8s master
note over k8s_master: install k8s and\nkube-system pods
admin->k8s_master: (SSH) install k8s workers
k8s_master->k8s_worker: (SSH) install k8s worker
k8s_worker->k8s_master: (api) register as worker
admin->k8s_master: (SSH) install helm
admin->k8s_master: (SSH) test helm chart (nginx)
k8s_master->k8s_worker: (k8s) start nginx pod
note over k8s_pod: (nginx pod)
k8s_worker->k8s_pod: create pod
k8s_master->k8s_pod: GET http://(nginx-service)
k8s_master->k8s_worker: (k8s) stop nginx pod
k8s_worker->k8s_pod: delete pod
admin->k8s_master: (SSH) deploy ceph-docker\nhelm chart
k8s_master->k8s_worker: (k8s) install ceph-docker
admin->k8s_master: (SSH) test helm chart with\n ceph PVC (dokuwiki)
k8s_master->k8s_worker: (k8s) start dokuwiki pod
note over k8s_pod: (dokuwiki pod)
k8s_worker->k8s_pod: create pod
k8s_master->k8s_pod: GET http://(dokuwiki-service)
note over k8s_worker: (k8s worker)
admin->k8s_master: (SSH) install cloudify manager
note over k8s_master: install cloudify CLI
note over cloudify: (on k8s master)
k8s_master->cloudify: create cloudify manager VM
k8s_master->cloudify: (cfy cli) install cloudify k8s plugin
admin->cloudify: (api) upload/deploy cloudify-k8s chart (nginx)
cloudify->k8s_master: (api) deploy nginx chart
k8s_master->k8s_worker: (k8s) start nginx pod
note over k8s_pod: (nginx pod)
k8s_worker->k8s_pod: create pod
admin->k8s_pod: GET http://(nginx-service)
admin->cloudify: (api) upload/deploy ves-influxdb chart
cloudify->k8s_master: (api) deploy ves-influxdb chart
k8s_master->k8s_worker: (k8s) start ves-influxdb pod
k8s_worker->influxdb: create pod (type=ClusterIP,port=8086)
admin->influxdb: (api) create veseventsdb
admin->cloudify: (api) upload/deploy grafana chart
cloudify->k8s_master: (api) deploy grafana chart
k8s_master->k8s_worker: (k8s) start grafana pod
k8s_worker->grafana: create pod (type=NodePort,port=30300)
admin->grafana: create VESEvents datasource
note over grafana: (repeat on\nupdate schedule)
grafana->influxdb: (api)\nquery veseventsdb
admin->grafana: create VES dashboard
note over grafana: display stats\non dashboard
admin->cloudify: (api) upload/deploy ves-collector chart
cloudify->k8s_master: (api) deploy ves-collector chart
k8s_master->k8s_worker: (k8s) start ves-collector pod
k8s_worker->collector: create pod (type=ClusterIP,port=3001)
admin->cloudify: (api) upload/deploy ves-zookeeper chart
cloudify->k8s_master: (api) deploy ves-zookeeper chart
k8s_master->k8s_worker: (k8s) start ves-zookeeper pod
note over kafka: (zookeeper pod)
k8s_worker->kafka: create pod (type=ClusterIP,port=2181)
admin->cloudify: (api) upload/deploy ves-kafka chart
cloudify->k8s_master: (api) deploy ves-kafka chart
k8s_master->k8s_worker: (k8s) start ves-kafka pod
note over kafka: (kafka pod)
k8s_worker->kafka: create pod (type=NodePort,port=30992)
note over kafka: NodePort required\nfor barometer
admin->cloudify: (api) upload/deploy ves-agent chart
cloudify->k8s_master: (api) deploy ves-agent chart
k8s_master->k8s_worker: (k8s) start ves-agent pod
k8s_worker->agent: create pod
admin->k8s_master: (SSH) install barometer container
note over barometer: (on k8s master)
k8s_master->barometer: create barometer container
barometer->kafka: (api) register\n"collectd" topic
note over kafka: configure topic\nvia zookeeper
admin->k8s_worker: (SSH) install barometer container
note over barometer: (on k8s worker)
k8s_worker->barometer: create barometer container
barometer->kafka: (api) register\n"collectd" topic
note over kafka: (api) configure topic\nvia zookeeper
note over barometer: (on k8s master\nand workers,\nper schedule)
barometer->kafka: (api) publish\ncollectd stats
kafka->agent: (api)\ncollectd stats
agent->collector: (api) VES event
collector->influxdb: (api)\nveseventsdb entry