summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBryan Sullivan <bryan.sullivan@att.com>2018-02-02 13:37:06 -0800
committerBryan Sullivan <bryan.sullivan@att.com>2018-02-02 13:37:06 -0800
commit98b6190054aec72de88c700ac496a7f4f2df1f4b (patch)
tree7605327c18812c0a0ac1f10e383f6440806083be
parentc134f84b32e9db07dcf2f596ebbb4a08ea5ce41c (diff)
Add diagram source for Models demo flow.
JIRA: MODELS-2 Change-Id: I75b02ef3e6ec0aab268c59b39bff41f7ef0b09ca Signed-off-by: Bryan Sullivan <bryan.sullivan@att.com>
-rw-r--r--docs/images/models_demo_flow.svg112
-rw-r--r--docs/source/models_demo_flow.txt112
2 files changed, 224 insertions, 0 deletions
diff --git a/docs/images/models_demo_flow.svg b/docs/images/models_demo_flow.svg
new file mode 100644
index 0000000..3a61dc3
--- /dev/null
+++ b/docs/images/models_demo_flow.svg
@@ -0,0 +1,112 @@
+<?xml version="1.0" encoding="utf-8" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd"><svg xmlns="http://www.w3.org/2000/svg" width="2024" height="3877" xmlns:xlink="http://www.w3.org/1999/xlink"><source><![CDATA[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, paste the content of this file into the editor at
+# https://bramp.github.io/js-sequence-diagrams/, and select Theme "Simple"
+
+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]]></source><desc>High-level flow for the OPNFV Models+VES demo deployment.</desc><defs><marker viewBox="0 0 5 5" markerWidth="5" markerHeight="5" orient="auto" refX="5" refY="2.5" id="markerArrowBlock"><path d="M 0 0 L 5 2.5 L 0 5 z"></path></marker><marker viewBox="0 0 9.6 16" markerWidth="4" markerHeight="16" orient="auto" refX="9.6" refY="8" id="markerArrowOpen"><path d="M 9.6,8 1.92,16 0,13.7 5.76,8 0,2.286 1.92,0 9.6,8 z"></path></marker></defs><g class="title"><rect x="10" y="10" width="511.421875" height="28.390625" stroke="#000000" fill="#ffffff" style="stroke-width: 2;"></rect><text x="15" y="29.390625" style="font-size: 16px; font-family: &quot;Andale Mono&quot;, monospace;"><tspan x="15">High-level flow for the OPNFV Models+VES demo deployment.</tspan></text></g><g class="actor"><rect x="10" y="48.390625" width="126.359375" height="57.59375" stroke="#000000" fill="#ffffff" style="stroke-width: 2;"></rect><text x="20.796875" y="82.3828125" style="font-size: 16px; font-family: &quot;Andale Mono&quot;, monospace;"><tspan x="20">Admin Server</tspan></text></g><g class="actor"><rect x="10" y="3799.65625" width="126.359375" height="57.59375" stroke="#000000" fill="#ffffff" style="stroke-width: 2;"></rect><text x="20.796875" y="3833.6484375" style="font-size: 16px; font-family: &quot;Andale Mono&quot;, monospace;"><tspan x="20">Admin Server</tspan></text></g><line x1="73.1796875" x2="73.1796875" y1="105.984375" y2="3799.65625" stroke="#000000" fill="none" style="stroke-width: 2;"></line><g class="actor"><rect x="329.4921875" y="48.390625" width="107.96875" height="57.59375" stroke="#000000" fill="#ffffff" style="stroke-width: 2;"></rect><text x="339.4921875" y="82.3828125" style="font-size: 16px; font-family: &quot;Andale Mono&quot;, monospace;"><tspan x="339.4921875">k8s master</tspan></text></g><g class="actor"><rect x="329.4921875" y="3799.65625" width="107.96875" height="57.59375" stroke="#000000" fill="#ffffff" style="stroke-width: 2;"></rect><text x="339.4921875" y="3833.6484375" style="font-size: 16px; font-family: &quot;Andale Mono&quot;, monospace;"><tspan x="339.4921875">k8s master</tspan></text></g><line x1="383.4765625" x2="383.4765625" y1="105.984375" y2="3799.65625" stroke="#000000" fill="none" style="stroke-width: 2;"></line><g class="actor"><rect x="604.6015625" y="48.390625" width="107.96875" height="57.59375" stroke="#000000" fill="#ffffff" style="stroke-width: 2;"></rect><text x="614.6015625" y="82.3828125" style="font-size: 16px; font-family: &quot;Andale Mono&quot;, monospace;"><tspan x="614.6015625">k8s worker</tspan></text></g><g class="actor"><rect x="604.6015625" y="3799.65625" width="107.96875" height="57.59375" stroke="#000000" fill="#ffffff" style="stroke-width: 2;"></rect><text x="614.6015625" y="3833.6484375" style="font-size: 16px; font-family: &quot;Andale Mono&quot;, monospace;"><tspan x="614.6015625">k8s worker</tspan></text></g><line x1="658.5859375" x2="658.5859375" y1="105.984375" y2="3799.65625" stroke="#000000" fill="none" style="stroke-width: 2;"></line><g class="actor"><rect x="732.5703125" y="48.390625" width="160.75" height="57.59375" stroke="#000000" fill="#ffffff" style="stroke-width: 2;"></rect><text x="742.5703125" y="82.3828125" style="font-size: 16px; font-family: &quot;Andale Mono&quot;, monospace;"><tspan x="742.5703125">Cloudify Manager</tspan></text></g><g class="actor"><rect x="732.5703125" y="3799.65625" width="160.75" height="57.59375" stroke="#000000" fill="#ffffff" style="stroke-width: 2;"></rect><text x="742.5703125" y="3833.6484375" style="font-size: 16px; font-family: &quot;Andale Mono&quot;, monospace;"><tspan x="742.5703125">Cloudify Manager</tspan></text></g><line x1="812.9453125" x2="812.9453125" y1="105.984375" y2="3799.65625" stroke="#000000" fill="none" style="stroke-width: 2;"></line><g class="actor"><rect x="913.3203125" y="48.390625" width="90.375" height="57.59375" stroke="#000000" fill="#ffffff" style="stroke-width: 2;"></rect><text x="923.3203125" y="82.3828125" style="font-size: 16px; font-family: &quot;Andale Mono&quot;, monospace;"><tspan x="923.3203125">k8s pods</tspan></text></g><g class="actor"><rect x="913.3203125" y="3799.65625" width="90.375" height="57.59375" stroke="#000000" fill="#ffffff" style="stroke-width: 2;"></rect><text x="923.3203125" y="3833.6484375" style="font-size: 16px; font-family: &quot;Andale Mono&quot;, monospace;"><tspan x="923.3203125">k8s pods</tspan></text></g><line x1="958.5078125" x2="958.5078125" y1="105.984375" y2="3799.65625" stroke="#000000" fill="none" style="stroke-width: 2;"></line><g class="actor"><rect x="1023.6953125" y="48.390625" width="99.171875" height="57.59375" stroke="#000000" fill="#ffffff" style="stroke-width: 2;"></rect><text x="1033.6953125" y="82.3828125" style="font-size: 16px; font-family: &quot;Andale Mono&quot;, monospace;"><tspan x="1033.6953125">Barometer</tspan></text></g><g class="actor"><rect x="1023.6953125" y="3799.65625" width="99.171875" height="57.59375" stroke="#000000" fill="#ffffff" style="stroke-width: 2;"></rect><text x="1033.6953125" y="3833.6484375" style="font-size: 16px; font-family: &quot;Andale Mono&quot;, monospace;"><tspan x="1033.6953125">Barometer</tspan></text></g><line x1="1073.28125" x2="1073.28125" y1="105.984375" y2="3799.65625" stroke="#000000" fill="none" style="stroke-width: 2;"></line><g class="actor"><rect x="1184.4453125" y="48.390625" width="99.171875" height="57.59375" stroke="#000000" fill="#ffffff" style="stroke-width: 2;"></rect><text x="1194.4453125" y="72.78125" style="font-size: 16px; font-family: &quot;Andale Mono&quot;, monospace;"><tspan x="1194.4453125">Kafka</tspan><tspan dy="1.2em" x="1194.4453125">Zookeeper</tspan></text></g><g class="actor"><rect x="1184.4453125" y="3799.65625" width="99.171875" height="57.59375" stroke="#000000" fill="#ffffff" style="stroke-width: 2;"></rect><text x="1194.4453125" y="3824.046875" style="font-size: 16px; font-family: &quot;Andale Mono&quot;, monospace;"><tspan x="1194.4453125">Kafka</tspan><tspan dy="1.2em" x="1194.4453125">Zookeeper</tspan></text></g><line x1="1234.03125" x2="1234.03125" y1="105.984375" y2="3799.65625" stroke="#000000" fill="none" style="stroke-width: 2;"></line><g class="actor"><rect x="1327.203125" y="48.390625" width="99.96875" height="57.59375" stroke="#000000" fill="#ffffff" style="stroke-width: 2;"></rect><text x="1338" y="82.3828125" style="font-size: 16px; font-family: &quot;Andale Mono&quot;, monospace;"><tspan x="1337.203125">VES Agent</tspan></text></g><g class="actor"><rect x="1327.203125" y="3799.65625" width="99.96875" height="57.59375" stroke="#000000" fill="#ffffff" style="stroke-width: 2;"></rect><text x="1338" y="3833.6484375" style="font-size: 16px; font-family: &quot;Andale Mono&quot;, monospace;"><tspan x="1337.203125">VES Agent</tspan></text></g><line x1="1377.1875" x2="1377.1875" y1="105.984375" y2="3799.65625" stroke="#000000" fill="none" style="stroke-width: 2;"></line><g class="actor"><rect x="1461.5625" y="48.390625" width="135.15625" height="57.59375" stroke="#000000" fill="#ffffff" style="stroke-width: 2;"></rect><text x="1472.359375" y="82.3828125" style="font-size: 16px; font-family: &quot;Andale Mono&quot;, monospace;"><tspan x="1471.5625">VES Collector</tspan></text></g><g class="actor"><rect x="1461.5625" y="3799.65625" width="135.15625" height="57.59375" stroke="#000000" fill="#ffffff" style="stroke-width: 2;"></rect><text x="1472.359375" y="3833.6484375" style="font-size: 16px; font-family: &quot;Andale Mono&quot;, monospace;"><tspan x="1471.5625">VES Collector</tspan></text></g><line x1="1529.140625" x2="1529.140625" y1="105.984375" y2="3799.65625" stroke="#000000" fill="none" style="stroke-width: 2;"></line><g class="actor"><rect x="1653.5" y="48.390625" width="90.375" height="57.59375" stroke="#000000" fill="#ffffff" style="stroke-width: 2;"></rect><text x="1663.5" y="82.3828125" style="font-size: 16px; font-family: &quot;Andale Mono&quot;, monospace;"><tspan x="1663.5">InfluxDB</tspan></text></g><g class="actor"><rect x="1653.5" y="3799.65625" width="90.375" height="57.59375" stroke="#000000" fill="#ffffff" style="stroke-width: 2;"></rect><text x="1663.5" y="3833.6484375" style="font-size: 16px; font-family: &quot;Andale Mono&quot;, monospace;"><tspan x="1663.5">InfluxDB</tspan></text></g><line x1="1698.6875" x2="1698.6875" y1="105.984375" y2="3799.65625" stroke="#000000" fill="none" style="stroke-width: 2;"></line><g class="actor"><rect x="1827.4453125" y="48.390625" width="81.578125" height="57.59375" stroke="#000000" fill="#ffffff" style="stroke-width: 2;"></rect><text x="1837.4453125" y="82.3828125" style="font-size: 16px; font-family: &quot;Andale Mono&quot;, monospace;"><tspan x="1837.4453125">Grafana</tspan></text></g><g class="actor"><rect x="1827.4453125" y="3799.65625" width="81.578125" height="57.59375" stroke="#000000" fill="#ffffff" style="stroke-width: 2;"></rect><text x="1837.4453125" y="3833.6484375" style="font-size: 16px; font-family: &quot;Andale Mono&quot;, monospace;"><tspan x="1837.4453125">Grafana</tspan></text></g><line x1="1868.234375" x2="1868.234375" y1="105.984375" y2="3799.65625" stroke="#000000" fill="none" style="stroke-width: 2;"></line><g class="note"><rect x="63.1796875" y="125.984375" width="1815.0546875" height="28.390625" stroke="#000000" fill="#ffffff" style="stroke-width: 2;"></rect><text x="68.1796875" y="145.375" style="font-size: 16px; font-family: &quot;Andale Mono&quot;, monospace;"><tspan x="68.1796875">For brevity, action/api responses are not shown (flow continuation indicates success).</tspan></text></g><g class="signal"><text x="166.75" y="184.5703125" style="font-size: 16px; font-family: &quot;Andale Mono&quot;, monospace;"><tspan x="166.75">deploy host OS</tspan></text><line x1="73.1796875" x2="383.4765625" y1="192.765625" y2="192.765625" stroke="#000000" fill="none" style="stroke-width: 2; marker-end: url(&quot;#markerArrowBlock&quot;);"></line></g><g class="signal"><text x="304.3046875" y="222.9609375" style="font-size: 16px; font-family: &quot;Andale Mono&quot;, monospace;"><tspan x="304.3046875">deploy host OS</tspan></text><line x1="73.1796875" x2="658.5859375" y1="231.15625" y2="231.15625" stroke="#000000" fill="none" style="stroke-width: 2; marker-end: url(&quot;#markerArrowBlock&quot;);"></line></g><g class="signal"><text x="122.765625" y="261.3515625" style="font-size: 16px; font-family: &quot;Andale Mono&quot;, monospace;"><tspan x="122.765625">(SSH) install k8s master</tspan></text><line x1="73.1796875" x2="383.4765625" y1="269.546875" y2="269.546875" stroke="#000000" fill="none" style="stroke-width: 2; marker-end: url(&quot;#markerArrowBlock&quot;);"></line></g><g class="note"><rect x="308.1015625" y="289.546875" width="150.75" height="47.59375" stroke="#000000" fill="#ffffff" style="stroke-width: 2;"></rect><text x="313.1015625" y="308.9375" style="font-size: 16px; font-family: &quot;Andale Mono&quot;, monospace;"><tspan x="313.1015625">install k8s and</tspan><tspan dy="1.2em" x="313.1015625">kube-system pods</tspan></text></g><g class="signal"><text x="118.3671875" y="367.3359375" style="font-size: 16px; font-family: &quot;Andale Mono&quot;, monospace;"><tspan x="118.3671875">(SSH) install k8s workers</tspan></text><line x1="73.1796875" x2="383.4765625" y1="375.53125" y2="375.53125" stroke="#000000" fill="none" style="stroke-width: 2; marker-end: url(&quot;#markerArrowBlock&quot;);"></line></g><g class="signal"><text x="415.46875" y="405.7265625" style="font-size: 16px; font-family: &quot;Andale Mono&quot;, monospace;"><tspan x="415.46875">(SSH) install k8s worker</tspan></text><line x1="383.4765625" x2="658.5859375" y1="413.921875" y2="413.921875" stroke="#000000" fill="none" style="stroke-width: 2; marker-end: url(&quot;#markerArrowBlock&quot;);"></line></g><g class="signal"><text x="415.46875" y="444.1171875" style="font-size: 16px; font-family: &quot;Andale Mono&quot;, monospace;"><tspan x="415.46875">(api) register as worker</tspan></text><line x1="658.5859375" x2="383.4765625" y1="452.3125" y2="452.3125" stroke="#000000" fill="none" style="stroke-width: 2; marker-end: url(&quot;#markerArrowBlock&quot;);"></line></g><g class="signal"><text x="149.15625" y="482.5078125" style="font-size: 16px; font-family: &quot;Andale Mono&quot;, monospace;"><tspan x="149.15625">(SSH) install helm</tspan></text><line x1="73.1796875" x2="383.4765625" y1="490.703125" y2="490.703125" stroke="#000000" fill="none" style="stroke-width: 2; marker-end: url(&quot;#markerArrowBlock&quot;);"></line></g><g class="signal"><text x="100.7734375" y="520.8984375" style="font-size: 16px; font-family: &quot;Andale Mono&quot;, monospace;"><tspan x="100.7734375">(SSH) test helm chart (nginx)</tspan></text><line x1="73.1796875" x2="383.4765625" y1="529.09375" y2="529.09375" stroke="#000000" fill="none" style="stroke-width: 2; marker-end: url(&quot;#markerArrowBlock&quot;);"></line></g><g class="signal"><text x="428.6640625" y="559.2890625" style="font-size: 16px; font-family: &quot;Andale Mono&quot;, monospace;"><tspan x="428.6640625">(k8s) start nginx pod</tspan></text><line x1="383.4765625" x2="658.5859375" y1="567.484375" y2="567.484375" stroke="#000000" fill="none" style="stroke-width: 2; marker-end: url(&quot;#markerArrowBlock&quot;);"></line></g><g class="note"><rect x="905.125" y="587.484375" width="106.765625" height="28.390625" stroke="#000000" fill="#ffffff" style="stroke-width: 2;"></rect><text x="910.125" y="606.875" style="font-size: 16px; font-family: &quot;Andale Mono&quot;, monospace;"><tspan x="910.125">(nginx pod)</tspan></text></g><g class="signal"><text x="764.5625" y="646.0703125" style="font-size: 16px; font-family: &quot;Andale Mono&quot;, monospace;"><tspan x="764.5625">create pod</tspan></text><line x1="658.5859375" x2="958.5078125" y1="654.265625" y2="654.265625" stroke="#000000" fill="none" style="stroke-width: 2; marker-end: url(&quot;#markerArrowBlock&quot;);"></line></g><g class="signal"><text x="556.6328125" y="684.4609375" style="font-size: 16px; font-family: &quot;Andale Mono&quot;, monospace;"><tspan x="556.6328125">GET http://(nginx-service)</tspan></text><line x1="383.4765625" x2="958.5078125" y1="692.65625" y2="692.65625" stroke="#000000" fill="none" style="stroke-width: 2; marker-end: url(&quot;#markerArrowBlock&quot;);"></line></g><g class="signal"><text x="433.0625" y="722.8515625" style="font-size: 16px; font-family: &quot;Andale Mono&quot;, monospace;"><tspan x="433.0625">(k8s) stop nginx pod</tspan></text><line x1="383.4765625" x2="658.5859375" y1="731.046875" y2="731.046875" stroke="#000000" fill="none" style="stroke-width: 2; marker-end: url(&quot;#markerArrowBlock&quot;);"></line></g><g class="signal"><text x="764.5625" y="761.2421875" style="font-size: 16px; font-family: &quot;Andale Mono&quot;, monospace;"><tspan x="764.5625">delete pod</tspan></text><line x1="658.5859375" x2="958.5078125" y1="769.4375" y2="769.4375" stroke="#000000" fill="none" style="stroke-width: 2; marker-end: url(&quot;#markerArrowBlock&quot;);"></line></g><g class="signal"><text x="122.765625" y="790.03125" style="font-size: 16px; font-family: &quot;Andale Mono&quot;, monospace;"><tspan x="122.765625">(SSH) deploy ceph-docker</tspan><tspan dy="1.2em" x="122.765625">helm chart</tspan></text><line x1="73.1796875" x2="383.4765625" y1="827.03125" y2="827.03125" stroke="#000000" fill="none" style="stroke-width: 2; marker-end: url(&quot;#markerArrowBlock&quot;);"></line></g><g class="signal"><text x="411.0703125" y="857.2265625" style="font-size: 16px; font-family: &quot;Andale Mono&quot;, monospace;"><tspan x="411.0703125">(k8s) install ceph-docker</tspan></text><line x1="383.4765625" x2="658.5859375" y1="865.421875" y2="865.421875" stroke="#000000" fill="none" style="stroke-width: 2; marker-end: url(&quot;#markerArrowBlock&quot;);"></line></g><g class="signal"><text x="113.96875" y="886.015625" style="font-size: 16px; font-family: &quot;Andale Mono&quot;, monospace;"><tspan x="113.96875">(SSH) test helm chart with</tspan><tspan dy="1.2em" x="113.96875">ceph PVC (dokuwiki)</tspan></text><line x1="73.1796875" x2="383.4765625" y1="923.015625" y2="923.015625" stroke="#000000" fill="none" style="stroke-width: 2; marker-end: url(&quot;#markerArrowBlock&quot;);"></line></g><g class="signal"><text x="415.46875" y="953.2109375" style="font-size: 16px; font-family: &quot;Andale Mono&quot;, monospace;"><tspan x="415.46875">(k8s) start dokuwiki pod</tspan></text><line x1="383.4765625" x2="658.5859375" y1="961.40625" y2="961.40625" stroke="#000000" fill="none" style="stroke-width: 2; marker-end: url(&quot;#markerArrowBlock&quot;);"></line></g><g class="note"><rect x="891.9296875" y="981.40625" width="133.15625" height="28.390625" stroke="#000000" fill="#ffffff" style="stroke-width: 2;"></rect><text x="896.9296875" y="1000.796875" style="font-size: 16px; font-family: &quot;Andale Mono&quot;, monospace;"><tspan x="896.9296875">(dokuwiki pod)</tspan></text></g><g class="signal"><text x="764.5625" y="1039.9921875" style="font-size: 16px; font-family: &quot;Andale Mono&quot;, monospace;"><tspan x="764.5625">create pod</tspan></text><line x1="658.5859375" x2="958.5078125" y1="1048.1875" y2="1048.1875" stroke="#000000" fill="none" style="stroke-width: 2; marker-end: url(&quot;#markerArrowBlock&quot;);"></line></g><g class="signal"><text x="543.4375" y="1078.3828125" style="font-size: 16px; font-family: &quot;Andale Mono&quot;, monospace;"><tspan x="543.4375">GET http://(dokuwiki-service)</tspan></text><line x1="383.4765625" x2="958.5078125" y1="1086.578125" y2="1086.578125" stroke="#000000" fill="none" style="stroke-width: 2; marker-end: url(&quot;#markerArrowBlock&quot;);"></line></g><g class="note"><rect x="600.8046875" y="1106.578125" width="115.5625" height="28.390625" stroke="#000000" fill="#ffffff" style="stroke-width: 2;"></rect><text x="605.8046875" y="1125.96875" style="font-size: 16px; font-family: &quot;Andale Mono&quot;, monospace;"><tspan x="605.8046875">(k8s worker)</tspan></text></g><g class="signal"><text x="96.375" y="1165.1640625" style="font-size: 16px; font-family: &quot;Andale Mono&quot;, monospace;"><tspan x="96.375">(SSH) install cloudify manager</tspan></text><line x1="73.1796875" x2="383.4765625" y1="1173.359375" y2="1173.359375" stroke="#000000" fill="none" style="stroke-width: 2; marker-end: url(&quot;#markerArrowBlock&quot;);"></line></g><g class="note"><rect x="290.5078125" y="1193.359375" width="185.9375" height="28.390625" stroke="#000000" fill="#ffffff" style="stroke-width: 2;"></rect><text x="295.5078125" y="1212.75" style="font-size: 16px; font-family: &quot;Andale Mono&quot;, monospace;"><tspan x="295.5078125">install cloudify CLI</tspan></text></g><g class="note"><rect x="741.96875" y="1241.75" width="141.953125" height="28.390625" stroke="#000000" fill="#ffffff" style="stroke-width: 2;"></rect><text x="746.96875" y="1261.140625" style="font-size: 16px; font-family: &quot;Andale Mono&quot;, monospace;"><tspan x="746.96875">(on k8s master)</tspan></text></g><g class="signal"><text x="483.8515625" y="1300.3359375" style="font-size: 16px; font-family: &quot;Andale Mono&quot;, monospace;"><tspan x="483.8515625">create cloudify manager VM</tspan></text><line x1="383.4765625" x2="812.9453125" y1="1308.53125" y2="1308.53125" stroke="#000000" fill="none" style="stroke-width: 2; marker-end: url(&quot;#markerArrowBlock&quot;);"></line></g><g class="signal"><text x="435.46875" y="1338.7265625" style="font-size: 16px; font-family: &quot;Andale Mono&quot;, monospace;"><tspan x="435.46875">(cfy cli) install cloudify k8s plugin</tspan></text><line x1="383.4765625" x2="812.9453125" y1="1346.921875" y2="1346.921875" stroke="#000000" fill="none" style="stroke-width: 2; marker-end: url(&quot;#markerArrowBlock&quot;);"></line></g><g class="signal"><text x="240.734375" y="1377.1171875" style="font-size: 16px; font-family: &quot;Andale Mono&quot;, monospace;"><tspan x="240.734375">(api) upload/deploy cloudify-k8s chart (nginx)</tspan></text><line x1="73.1796875" x2="812.9453125" y1="1385.3125" y2="1385.3125" stroke="#000000" fill="none" style="stroke-width: 2; marker-end: url(&quot;#markerArrowBlock&quot;);"></line></g><g class="signal"><text x="492.6484375" y="1415.5078125" style="font-size: 16px; font-family: &quot;Andale Mono&quot;, monospace;"><tspan x="492.6484375">(api) deploy nginx chart</tspan></text><line x1="812.9453125" x2="383.4765625" y1="1423.703125" y2="1423.703125" stroke="#000000" fill="none" style="stroke-width: 2; marker-end: url(&quot;#markerArrowBlock&quot;);"></line></g><g class="signal"><text x="428.6640625" y="1453.8984375" style="font-size: 16px; font-family: &quot;Andale Mono&quot;, monospace;"><tspan x="428.6640625">(k8s) start nginx pod</tspan></text><line x1="383.4765625" x2="658.5859375" y1="1462.09375" y2="1462.09375" stroke="#000000" fill="none" style="stroke-width: 2; marker-end: url(&quot;#markerArrowBlock&quot;);"></line></g><g class="note"><rect x="905.125" y="1482.09375" width="106.765625" height="28.390625" stroke="#000000" fill="#ffffff" style="stroke-width: 2;"></rect><text x="910.125" y="1501.484375" style="font-size: 16px; font-family: &quot;Andale Mono&quot;, monospace;"><tspan x="910.125">(nginx pod)</tspan></text></g><g class="signal"><text x="764.5625" y="1540.6796875" style="font-size: 16px; font-family: &quot;Andale Mono&quot;, monospace;"><tspan x="764.5625">create pod</tspan></text><line x1="658.5859375" x2="958.5078125" y1="1548.875" y2="1548.875" stroke="#000000" fill="none" style="stroke-width: 2; marker-end: url(&quot;#markerArrowBlock&quot;);"></line></g><g class="signal"><text x="401.484375" y="1579.0703125" style="font-size: 16px; font-family: &quot;Andale Mono&quot;, monospace;"><tspan x="401.484375">GET http://(nginx-service)</tspan></text><line x1="73.1796875" x2="958.5078125" y1="1587.265625" y2="1587.265625" stroke="#000000" fill="none" style="stroke-width: 2; marker-end: url(&quot;#markerArrowBlock&quot;);"></line></g><g class="signal"><text x="275.921875" y="1617.4609375" style="font-size: 16px; font-family: &quot;Andale Mono&quot;, monospace;"><tspan x="275.921875">(api) upload/deploy ves-influxdb chart</tspan></text><line x1="73.1796875" x2="812.9453125" y1="1625.65625" y2="1625.65625" stroke="#000000" fill="none" style="stroke-width: 2; marker-end: url(&quot;#markerArrowBlock&quot;);"></line></g><g class="signal"><text x="461.859375" y="1655.8515625" style="font-size: 16px; font-family: &quot;Andale Mono&quot;, monospace;"><tspan x="461.859375">(api) deploy ves-influxdb chart</tspan></text><line x1="812.9453125" x2="383.4765625" y1="1664.046875" y2="1664.046875" stroke="#000000" fill="none" style="stroke-width: 2; marker-end: url(&quot;#markerArrowBlock&quot;);"></line></g><g class="signal"><text x="397.875" y="1694.2421875" style="font-size: 16px; font-family: &quot;Andale Mono&quot;, monospace;"><tspan x="397.875">(k8s) start ves-influxdb pod</tspan></text><line x1="383.4765625" x2="658.5859375" y1="1702.4375" y2="1702.4375" stroke="#000000" fill="none" style="stroke-width: 2; marker-end: url(&quot;#markerArrowBlock&quot;);"></line></g><g class="signal"><text x="1015.89453125" y="1732.6328125" style="font-size: 16px; font-family: &quot;Andale Mono&quot;, monospace;"><tspan x="1015.89453125">create pod (type=ClusterIP,port=8086)</tspan></text><line x1="658.5859375" x2="1698.6875" y1="1740.828125" y2="1740.828125" stroke="#000000" fill="none" style="stroke-width: 2; marker-end: url(&quot;#markerArrowBlock&quot;);"></line></g><g class="signal"><text x="780.37109375" y="1771.0234375" style="font-size: 16px; font-family: &quot;Andale Mono&quot;, monospace;"><tspan x="780.37109375">(api) create veseventsdb</tspan></text><line x1="73.1796875" x2="1698.6875" y1="1779.21875" y2="1779.21875" stroke="#000000" fill="none" style="stroke-width: 2; marker-end: url(&quot;#markerArrowBlock&quot;);"></line></g><g class="signal"><text x="297.9140625" y="1809.4140625" style="font-size: 16px; font-family: &quot;Andale Mono&quot;, monospace;"><tspan x="297.9140625">(api) upload/deploy grafana chart</tspan></text><line x1="73.1796875" x2="812.9453125" y1="1817.609375" y2="1817.609375" stroke="#000000" fill="none" style="stroke-width: 2; marker-end: url(&quot;#markerArrowBlock&quot;);"></line></g><g class="signal"><text x="483.8515625" y="1847.8046875" style="font-size: 16px; font-family: &quot;Andale Mono&quot;, monospace;"><tspan x="483.8515625">(api) deploy grafana chart</tspan></text><line x1="812.9453125" x2="383.4765625" y1="1856" y2="1856" stroke="#000000" fill="none" style="stroke-width: 2; marker-end: url(&quot;#markerArrowBlock&quot;);"></line></g><g class="signal"><text x="419.8671875" y="1886.1953125" style="font-size: 16px; font-family: &quot;Andale Mono&quot;, monospace;"><tspan x="419.8671875">(k8s) start grafana pod</tspan></text><line x1="383.4765625" x2="658.5859375" y1="1894.390625" y2="1894.390625" stroke="#000000" fill="none" style="stroke-width: 2; marker-end: url(&quot;#markerArrowBlock&quot;);"></line></g><g class="signal"><text x="1100.66796875" y="1924.5859375" style="font-size: 16px; font-family: &quot;Andale Mono&quot;, monospace;"><tspan x="1100.66796875">create pod (type=NodePort,port=30300)</tspan></text><line x1="658.5859375" x2="1868.234375" y1="1932.78125" y2="1932.78125" stroke="#000000" fill="none" style="stroke-width: 2; marker-end: url(&quot;#markerArrowBlock&quot;);"></line></g><g class="signal"><text x="851.94921875" y="1962.9765625" style="font-size: 16px; font-family: &quot;Andale Mono&quot;, monospace;"><tspan x="851.94921875">create VESEvents datasource</tspan></text><line x1="73.1796875" x2="1868.234375" y1="1971.171875" y2="1971.171875" stroke="#000000" fill="none" style="stroke-width: 2; marker-end: url(&quot;#markerArrowBlock&quot;);"></line></g><g class="note"><rect x="1792.859375" y="1991.171875" width="150.75" height="47.59375" stroke="#000000" fill="#ffffff" style="stroke-width: 2;"></rect><text x="1797.859375" y="2010.5625" style="font-size: 16px; font-family: &quot;Andale Mono&quot;, monospace;"><tspan x="1797.859375">(repeat on</tspan><tspan dy="1.2em" x="1797.859375">update schedule)</tspan></text></g><g class="signal"><text x="1708.6875" y="2059.359375" style="font-size: 16px; font-family: &quot;Andale Mono&quot;, monospace;"><tspan x="1708.6875">(api)</tspan><tspan dy="1.2em" x="1708.6875">query veseventsdb</tspan></text><line x1="1868.234375" x2="1698.6875" y1="2096.359375" y2="2096.359375" stroke="#000000" fill="none" style="stroke-width: 2; marker-end: url(&quot;#markerArrowBlock&quot;);"></line></g><g class="signal"><text x="882.73828125" y="2126.5546875" style="font-size: 16px; font-family: &quot;Andale Mono&quot;, monospace;"><tspan x="882.73828125">create VES dashboard</tspan></text><line x1="73.1796875" x2="1868.234375" y1="2134.75" y2="2134.75" stroke="#000000" fill="none" style="stroke-width: 2; marker-end: url(&quot;#markerArrowBlock&quot;);"></line></g><g class="note"><rect x="1806.0546875" y="2154.75" width="124.359375" height="47.59375" stroke="#000000" fill="#ffffff" style="stroke-width: 2;"></rect><text x="1811.0546875" y="2174.140625" style="font-size: 16px; font-family: &quot;Andale Mono&quot;, monospace;"><tspan x="1811.0546875">display stats</tspan><tspan dy="1.2em" x="1811.0546875">on dashboard</tspan></text></g><g class="signal"><text x="271.5234375" y="2232.5390625" style="font-size: 16px; font-family: &quot;Andale Mono&quot;, monospace;"><tspan x="271.5234375">(api) upload/deploy ves-collector chart</tspan></text><line x1="73.1796875" x2="812.9453125" y1="2240.734375" y2="2240.734375" stroke="#000000" fill="none" style="stroke-width: 2; marker-end: url(&quot;#markerArrowBlock&quot;);"></line></g><g class="signal"><text x="457.4609375" y="2270.9296875" style="font-size: 16px; font-family: &quot;Andale Mono&quot;, monospace;"><tspan x="457.4609375">(api) deploy ves-collector chart</tspan></text><line x1="812.9453125" x2="383.4765625" y1="2279.125" y2="2279.125" stroke="#000000" fill="none" style="stroke-width: 2; marker-end: url(&quot;#markerArrowBlock&quot;);"></line></g><g class="signal"><text x="393.4765625" y="2309.3203125" style="font-size: 16px; font-family: &quot;Andale Mono&quot;, monospace;"><tspan x="393.4765625">(k8s) start ves-collector pod</tspan></text><line x1="383.4765625" x2="658.5859375" y1="2317.515625" y2="2317.515625" stroke="#000000" fill="none" style="stroke-width: 2; marker-end: url(&quot;#markerArrowBlock&quot;);"></line></g><g class="signal"><text x="931.12109375" y="2347.7109375" style="font-size: 16px; font-family: &quot;Andale Mono&quot;, monospace;"><tspan x="931.12109375">create pod (type=ClusterIP,port=3001)</tspan></text><line x1="658.5859375" x2="1529.140625" y1="2355.90625" y2="2355.90625" stroke="#000000" fill="none" style="stroke-width: 2; marker-end: url(&quot;#markerArrowBlock&quot;);"></line></g><g class="signal"><text x="271.5234375" y="2386.1015625" style="font-size: 16px; font-family: &quot;Andale Mono&quot;, monospace;"><tspan x="271.5234375">(api) upload/deploy ves-zookeeper chart</tspan></text><line x1="73.1796875" x2="812.9453125" y1="2394.296875" y2="2394.296875" stroke="#000000" fill="none" style="stroke-width: 2; marker-end: url(&quot;#markerArrowBlock&quot;);"></line></g><g class="signal"><text x="457.4609375" y="2424.4921875" style="font-size: 16px; font-family: &quot;Andale Mono&quot;, monospace;"><tspan x="457.4609375">(api) deploy ves-zookeeper chart</tspan></text><line x1="812.9453125" x2="383.4765625" y1="2432.6875" y2="2432.6875" stroke="#000000" fill="none" style="stroke-width: 2; marker-end: url(&quot;#markerArrowBlock&quot;);"></line></g><g class="signal"><text x="393.4765625" y="2462.8828125" style="font-size: 16px; font-family: &quot;Andale Mono&quot;, monospace;"><tspan x="393.4765625">(k8s) start ves-zookeeper pod</tspan></text><line x1="383.4765625" x2="658.5859375" y1="2471.078125" y2="2471.078125" stroke="#000000" fill="none" style="stroke-width: 2; marker-end: url(&quot;#markerArrowBlock&quot;);"></line></g><g class="note"><rect x="1163.0546875" y="2491.078125" width="141.953125" height="28.390625" stroke="#000000" fill="#ffffff" style="stroke-width: 2;"></rect><text x="1168.0546875" y="2510.46875" style="font-size: 16px; font-family: &quot;Andale Mono&quot;, monospace;"><tspan x="1168.0546875">(zookeeper pod)</tspan></text></g><g class="signal"><text x="783.56640625" y="2549.6640625" style="font-size: 16px; font-family: &quot;Andale Mono&quot;, monospace;"><tspan x="783.56640625">create pod (type=ClusterIP,port=2181)</tspan></text><line x1="658.5859375" x2="1234.03125" y1="2557.859375" y2="2557.859375" stroke="#000000" fill="none" style="stroke-width: 2; marker-end: url(&quot;#markerArrowBlock&quot;);"></line></g><g class="signal"><text x="289.1171875" y="2588.0546875" style="font-size: 16px; font-family: &quot;Andale Mono&quot;, monospace;"><tspan x="289.1171875">(api) upload/deploy ves-kafka chart</tspan></text><line x1="73.1796875" x2="812.9453125" y1="2596.25" y2="2596.25" stroke="#000000" fill="none" style="stroke-width: 2; marker-end: url(&quot;#markerArrowBlock&quot;);"></line></g><g class="signal"><text x="475.0546875" y="2626.4453125" style="font-size: 16px; font-family: &quot;Andale Mono&quot;, monospace;"><tspan x="475.0546875">(api) deploy ves-kafka chart</tspan></text><line x1="812.9453125" x2="383.4765625" y1="2634.640625" y2="2634.640625" stroke="#000000" fill="none" style="stroke-width: 2; marker-end: url(&quot;#markerArrowBlock&quot;);"></line></g><g class="signal"><text x="411.0703125" y="2664.8359375" style="font-size: 16px; font-family: &quot;Andale Mono&quot;, monospace;"><tspan x="411.0703125">(k8s) start ves-kafka pod</tspan></text><line x1="383.4765625" x2="658.5859375" y1="2673.03125" y2="2673.03125" stroke="#000000" fill="none" style="stroke-width: 2; marker-end: url(&quot;#markerArrowBlock&quot;);"></line></g><g class="note"><rect x="1180.6484375" y="2693.03125" width="106.765625" height="28.390625" stroke="#000000" fill="#ffffff" style="stroke-width: 2;"></rect><text x="1185.6484375" y="2712.421875" style="font-size: 16px; font-family: &quot;Andale Mono&quot;, monospace;"><tspan x="1185.6484375">(kafka pod)</tspan></text></g><g class="signal"><text x="783.56640625" y="2751.6171875" style="font-size: 16px; font-family: &quot;Andale Mono&quot;, monospace;"><tspan x="783.56640625">create pod (type=NodePort,port=30992)</tspan></text><line x1="658.5859375" x2="1234.03125" y1="2759.8125" y2="2759.8125" stroke="#000000" fill="none" style="stroke-width: 2; marker-end: url(&quot;#markerArrowBlock&quot;);"></line></g><g class="note"><rect x="1154.2578125" y="2779.8125" width="159.546875" height="47.59375" stroke="#000000" fill="#ffffff" style="stroke-width: 2;"></rect><text x="1159.2578125" y="2799.203125" style="font-size: 16px; font-family: &quot;Andale Mono&quot;, monospace;"><tspan x="1159.2578125">NodePort required</tspan><tspan dy="1.2em" x="1159.2578125">for barometer</tspan></text></g><g class="signal"><text x="289.1171875" y="2857.6015625" style="font-size: 16px; font-family: &quot;Andale Mono&quot;, monospace;"><tspan x="289.1171875">(api) upload/deploy ves-agent chart</tspan></text><line x1="73.1796875" x2="812.9453125" y1="2865.796875" y2="2865.796875" stroke="#000000" fill="none" style="stroke-width: 2; marker-end: url(&quot;#markerArrowBlock&quot;);"></line></g><g class="signal"><text x="475.0546875" y="2895.9921875" style="font-size: 16px; font-family: &quot;Andale Mono&quot;, monospace;"><tspan x="475.0546875">(api) deploy ves-agent chart</tspan></text><line x1="812.9453125" x2="383.4765625" y1="2904.1875" y2="2904.1875" stroke="#000000" fill="none" style="stroke-width: 2; marker-end: url(&quot;#markerArrowBlock&quot;);"></line></g><g class="signal"><text x="411.0703125" y="2934.3828125" style="font-size: 16px; font-family: &quot;Andale Mono&quot;, monospace;"><tspan x="411.0703125">(k8s) start ves-agent pod</tspan></text><line x1="383.4765625" x2="658.5859375" y1="2942.578125" y2="2942.578125" stroke="#000000" fill="none" style="stroke-width: 2; marker-end: url(&quot;#markerArrowBlock&quot;);"></line></g><g class="signal"><text x="973.90234375" y="2972.7734375" style="font-size: 16px; font-family: &quot;Andale Mono&quot;, monospace;"><tspan x="973.90234375">create pod</tspan></text><line x1="658.5859375" x2="1377.1875" y1="2980.96875" y2="2980.96875" stroke="#000000" fill="none" style="stroke-width: 2; marker-end: url(&quot;#markerArrowBlock&quot;);"></line></g><g class="signal"><text x="83.1796875" y="3011.1640625" style="font-size: 16px; font-family: &quot;Andale Mono&quot;, monospace;"><tspan x="83.1796875">(SSH) install barometer container</tspan></text><line x1="73.1796875" x2="383.4765625" y1="3019.359375" y2="3019.359375" stroke="#000000" fill="none" style="stroke-width: 2; marker-end: url(&quot;#markerArrowBlock&quot;);"></line></g><g class="note"><rect x="1002.3046875" y="3039.359375" width="141.953125" height="28.390625" stroke="#000000" fill="#ffffff" style="stroke-width: 2;"></rect><text x="1007.3046875" y="3058.75" style="font-size: 16px; font-family: &quot;Andale Mono&quot;, monospace;"><tspan x="1007.3046875">(on k8s master)</tspan></text></g><g class="signal"><text x="614.01953125" y="3097.9453125" style="font-size: 16px; font-family: &quot;Andale Mono&quot;, monospace;"><tspan x="614.01953125">create barometer container</tspan></text><line x1="383.4765625" x2="1073.28125" y1="3106.140625" y2="3106.140625" stroke="#000000" fill="none" style="stroke-width: 2; marker-end: url(&quot;#markerArrowBlock&quot;);"></line></g><g class="signal"><text x="1083.28125" y="3126.734375" style="font-size: 16px; font-family: &quot;Andale Mono&quot;, monospace;"><tspan x="1083.28125">(api) register</tspan><tspan dy="1.2em" x="1083.28125">"collectd" topic</tspan></text><line x1="1073.28125" x2="1234.03125" y1="3163.734375" y2="3163.734375" stroke="#000000" fill="none" style="stroke-width: 2; marker-end: url(&quot;#markerArrowBlock&quot;);"></line></g><g class="note"><rect x="1163.0546875" y="3183.734375" width="141.953125" height="47.59375" stroke="#000000" fill="#ffffff" style="stroke-width: 2;"></rect><text x="1168.0546875" y="3203.125" style="font-size: 16px; font-family: &quot;Andale Mono&quot;, monospace;"><tspan x="1168.0546875">configure topic</tspan><tspan dy="1.2em" x="1168.0546875">via zookeeper</tspan></text></g><g class="signal"><text x="220.734375" y="3261.5234375" style="font-size: 16px; font-family: &quot;Andale Mono&quot;, monospace;"><tspan x="220.734375">(SSH) install barometer container</tspan></text><line x1="73.1796875" x2="658.5859375" y1="3269.71875" y2="3269.71875" stroke="#000000" fill="none" style="stroke-width: 2; marker-end: url(&quot;#markerArrowBlock&quot;);"></line></g><g class="note"><rect x="1002.3046875" y="3289.71875" width="141.953125" height="28.390625" stroke="#000000" fill="#ffffff" style="stroke-width: 2;"></rect><text x="1007.3046875" y="3309.109375" style="font-size: 16px; font-family: &quot;Andale Mono&quot;, monospace;"><tspan x="1007.3046875">(on k8s worker)</tspan></text></g><g class="signal"><text x="751.57421875" y="3348.3046875" style="font-size: 16px; font-family: &quot;Andale Mono&quot;, monospace;"><tspan x="751.57421875">create barometer container</tspan></text><line x1="658.5859375" x2="1073.28125" y1="3356.5" y2="3356.5" stroke="#000000" fill="none" style="stroke-width: 2; marker-end: url(&quot;#markerArrowBlock&quot;);"></line></g><g class="signal"><text x="1083.28125" y="3377.09375" style="font-size: 16px; font-family: &quot;Andale Mono&quot;, monospace;"><tspan x="1083.28125">(api) register</tspan><tspan dy="1.2em" x="1083.28125">"collectd" topic</tspan></text><line x1="1073.28125" x2="1234.03125" y1="3414.09375" y2="3414.09375" stroke="#000000" fill="none" style="stroke-width: 2; marker-end: url(&quot;#markerArrowBlock&quot;);"></line></g><g class="note"><rect x="1136.6640625" y="3434.09375" width="194.734375" height="47.59375" stroke="#000000" fill="#ffffff" style="stroke-width: 2;"></rect><text x="1141.6640625" y="3453.484375" style="font-size: 16px; font-family: &quot;Andale Mono&quot;, monospace;"><tspan x="1141.6640625">(api) configure topic</tspan><tspan dy="1.2em" x="1141.6640625">via zookeeper</tspan></text></g><g class="note"><rect x="1006.703125" y="3501.6875" width="133.15625" height="66.796875" stroke="#000000" fill="#ffffff" style="stroke-width: 2;"></rect><text x="1011.703125" y="3521.078125" style="font-size: 16px; font-family: &quot;Andale Mono&quot;, monospace;"><tspan x="1011.703125">(on k8s master</tspan><tspan dy="1.2em" x="1011.703125">and workers,</tspan><tspan dy="1.2em" x="1011.703125">per schedule)</tspan></text></g><g class="signal"><text x="1092.078125" y="3589.078125" style="font-size: 16px; font-family: &quot;Andale Mono&quot;, monospace;"><tspan x="1092.078125">(api) publish</tspan><tspan dy="1.2em" x="1092.078125">collectd stats</tspan></text><line x1="1073.28125" x2="1234.03125" y1="3626.078125" y2="3626.078125" stroke="#000000" fill="none" style="stroke-width: 2; marker-end: url(&quot;#markerArrowBlock&quot;);"></line></g><g class="signal"><text x="1244.03125" y="3646.671875" style="font-size: 16px; font-family: &quot;Andale Mono&quot;, monospace;"><tspan x="1244.03125">(api)</tspan><tspan dy="1.2em" x="1244.03125">collectd stats</tspan></text><line x1="1234.03125" x2="1377.1875" y1="3683.671875" y2="3683.671875" stroke="#000000" fill="none" style="stroke-width: 2; marker-end: url(&quot;#markerArrowBlock&quot;);"></line></g><g class="signal"><text x="1387.1875" y="3713.8671875" style="font-size: 16px; font-family: &quot;Andale Mono&quot;, monospace;"><tspan x="1387.1875">(api) VES event</tspan></text><line x1="1377.1875" x2="1529.140625" y1="3722.0625" y2="3722.0625" stroke="#000000" fill="none" style="stroke-width: 2; marker-end: url(&quot;#markerArrowBlock&quot;);"></line></g><g class="signal"><text x="1539.140625" y="3742.65625" style="font-size: 16px; font-family: &quot;Andale Mono&quot;, monospace;"><tspan x="1539.140625">(api)</tspan><tspan dy="1.2em" x="1539.140625">veseventsdb entry</tspan></text><line x1="1529.140625" x2="1698.6875" y1="3779.65625" y2="3779.65625" stroke="#000000" fill="none" style="stroke-width: 2; marker-end: url(&quot;#markerArrowBlock&quot;);"></line></g></svg> \ No newline at end of file
diff --git a/docs/source/models_demo_flow.txt b/docs/source/models_demo_flow.txt
new file mode 100644
index 0000000..69f3600
--- /dev/null
+++ b/docs/source/models_demo_flow.txt
@@ -0,0 +1,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 \ No newline at end of file