1 ================================
2 ONAP MultiCloud Deployment Guide
3 ================================
5 prepare docker environment
6 ~~~~~~~~~~~~~~~~~~~~~~~~~~
8 Please refer to onap deployment in kubernetes website(https://wiki.onap.org/display/DW/ONAP+on+Kubernetes)
9 to setup kubernets cluster.
12 After installing kubectl and helm, execute "kubectl cluster-info" command to verify your kubernets cluster.
14 Clone oom project: git clone http://gerrit.onap.org/r/oom
15 Source the setenv.bash script in /oom/kubernetes/oneclick/, it will set your helm list of components to start/delete
16 Run the one time config pod - which mounts the volume /dockerdata/ contained in the pod config-init.
18 # cd oom/kubernetes/config
19 # cp onap-parameters-sample.yaml onap-parameters.yaml
20 # ./createConfig.sh -n onap
22 wait for "onap" namespace created, pod "config-init" created
23 # kubectl get namespaces
26 kube-public Active 10d
27 kube-system Active 10d
33 first run kube2msb container.
35 # cd oom/kubernetes/oneclick
36 # ./createAll.bash -n onap -a kube2msb
39 # ./createAll.bash -n onap -a msb
42 # ./createAll.bash -n onap -a aai
45 Finally run multicloud container
46 # ./createAll.bash -n onap -a multicloud
49 # kubectl get pods --all-namespaces
50 NAMESPACE NAME READY STATUS RESTARTS AGE
51 kube-system heapster-4285517626-2k4l1 1/1 Running 1 9d
52 kube-system kube-dns-2514474280-mxh18 3/3 Running 3 9d
53 kube-system kubernetes-dashboard-716739405-jl6mk 1/1 Running 1 9d
54 kube-system monitoring-grafana-3552275057-hrpn5 1/1 Running 1 9d
55 kube-system monitoring-influxdb-4110454889-t8tpv 1/1 Running 1 9d
56 kube-system tiller-deploy-737598192-8q523 1/1 Running 1 9d
57 onap-aai aai-resources-837807428-2t158 1/1 Running 0 2d
58 onap-aai aai-service-3869033750-1nvg5 1/1 Running 0 2d
59 onap-aai aai-traversal-50329389-gnsnk 1/1 Running 0 2d
60 onap-aai data-router-2254557428-zwxx1 1/1 Running 0 2d
61 onap-aai elasticsearch-622738319-sx6q1 1/1 Running 0 2d
62 onap-aai gremlin-671060974-npsg5 1/1 Running 0 2d
63 onap-aai hbase-3690059193-2pjc5 1/1 Running 0 2d
64 onap-aai model-loader-service-849987455-w6vwn 1/1 Running 0 2d
65 onap-aai search-data-service-4105978183-p1nnj 1/1 Running 0 2d
66 onap-aai sparky-be-2696729089-mcjbw 1/1 Running 0 2d
67 onap-kube2msb kube2msb-registrator-1600827891-1s3s4 1/1 Running 3 7d
68 onap-msb msb-consul-3388279333-hbr16 1/1 Running 0 2d
69 onap-msb msb-discovery-1109629174-t14q8 1/1 Running 0 2d
70 onap-msb msb-eag-3969419634-2fdnr 1/1 Running 0 2d
71 onap-msb msb-iag-1114772402-sjlww 1/1 Running 0 2d
72 onap-multicloud framework-1225620501-9567n 1/1 Running 0 21h
73 onap-multicloud multicloud-vio-269945856-rl6w6 1/1 Running 0 21h
75 get cluster-ip and port
77 # kubectl get svc --all-namespaces
78 NAMESPACE NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE
79 default kubernetes 10.43.0.1 <none> 443/TCP 10d
80 kube-system heapster 10.43.96.134 <none> 80/TCP 10d
81 kube-system kube-dns 10.43.0.10 <none> 53/UDP,53/TCP 10d
82 kube-system kubernetes-dashboard 10.43.9.43 <none> 9090/TCP 10d
83 kube-system monitoring-grafana 10.43.210.16 <none> 80/TCP 10d
84 kube-system monitoring-influxdb 10.43.32.60 <none> 8086/TCP 10d
85 kube-system tiller-deploy 10.43.84.208 <none> 44134/TCP 10d
86 onap-aai aai-resources None <none> 8447/TCP,5005/TCP 2d
87 onap-aai aai-service 10.43.88.92 <nodes> 8443:30233/TCP,8080:30232/TCP 2d
88 onap-aai aai-traversal None <none> 8446/TCP,5005/TCP 2d
89 onap-aai elasticsearch None <none> 9200/TCP 2d
90 onap-aai gremlin None <none> 8182/TCP 2d
91 onap-aai hbase None <none> 2181/TCP,8080/TCP,8085/TCP,9090/TCP,16000/TCP,16010/TCP,16201/TCP 2d
92 onap-aai model-loader-service 10.43.172.213 <nodes> 8443:30229/TCP,8080:30210/TCP 2d
93 onap-aai search-data-service None <none> 9509/TCP 2d
94 onap-aai sparky-be None <none> 9517/TCP 2d
95 onap-msb msb-consul 10.43.41.203 <nodes> 8500:30500/TCP 2d
96 onap-msb msb-discovery 10.43.6.205 <nodes> 10081:30081/TCP 2d
97 onap-msb msb-eag 10.43.81.104 <nodes> 80:30082/TCP 2d
98 onap-msb msb-iag 10.43.188.78 <nodes> 80:30080/TCP 2d
99 onap-multicloud framework 10.43.97.54 <nodes> 9001:30291/TCP 21h
100 onap-multicloud multicloud-vio 10.43.230.197 <nodes> 9004:30294/TCP 21h
103 Now msb,aai and multicloud container are online, navigate to http://msb_docker_host_ip:30081/iui/microservices/index.html,
104 you can see multicloud endpoint have been registered.
106 No Service Name Version NameSpace Url Protocol Visualrange Control
107 1 multicloud v0 /api/multicloud/v0 REST InSystem
108 2 multicloud-vio v0 /api/multicloud-vio/v0 REST InSystem
110 Then register vio information into AAI service with region name "vmware" and region id "vio"
112 .. code-block:: console
114 # curl -X PUT -H "Authorization: Basic QUFJOkFBSQ==" -H "Content-Type: application/json" -H "X-TransactionId:get_aai_subcr"
115 https://aai_resource_docker_host_ip:30233/aai/v01/cloud-infrastructure/cloud-regions/cloud-region/vmware/vio
117 "cloud-type": "vmware",
118 "cloud-region-version": "4.0",
119 "esr-system-info-list": {
122 "esr-system-info-id": "123-456",
123 "system-name": "vim-vio",
124 "system-type": "vim",
126 "user-name": "admin",
127 "password": "vmware",
128 "service-url": "<keystone auth url>",
129 "cloud-domain": "default",
130 "default-tenant": "admin",
131 "ssl-insecure": false
140 The env HOST_IP is msb-iag service cluster-ip value is "10.43.188.78"(see it above).
141 The vimid is "vmware_vio" the registered name in aai.
147 # send request to multicloud-framework(broker) service to get token
149 .. code-block:: console
151 curl -X POST -d @test.json -H 'Content-Type:application/json' http://$HOST_IP/api/multicloud/v0/<vimid>/identity/auth/tokens
153 .. code-block:: console
155 test.json content example:
157 "auth": sudo pip install virtualenv{
158 "scope": {"project": {"id": “<project-id>”}},
161 "password": {"user": {"domain": {"name": “<doman-name>”}, "password": “<user-password>”, "name": “<user-name>”}}, "methods": ["password"]
168 There are a large amounts of data including service endpoint, user information, etc.
169 For our testing We take nova and identity service endpoint address and auth token which is in response header named “X-Subject-Token”.
171 # you can find the endpoint url namespace is "api/multicloiud-vio/v0", it represent the multicloud-vio service, So
172 requests sending to mulitcloud-vio will be forwarded to backend VIO openstack.
176 http://$HOST_IP/api/multicloud-vio/v0/<vimid>/identity
179 http://$HOST_IP/api/multicloud-vio/v0/<vimid>/compute/<user-tenantid>
185 Use identity’s endpoint: http://$HOST_IP/api/multicloud-vio/v0/<vimid>/identity/
187 curl -X GET -H 'X-Auth-Token:<token>' http://$HOST_IP/api/multicloud-vio/v0/<vimid>/identity/projects
193 Use nova’s endpoint: http://$HOST_IP/api/multicloud-vio/v0/<vimid>/nova/<user-tenantid>
196 curl -X GET -H 'X-Auth-Token:<token>' http://$HOST_IP/api/multicloud-vio/v0/<vimid>/nova/<tenantid>/os-hypervisors/detail
199 List instance of user’s project
200 --------------------------------
202 curl -X GET -H 'X-Auth-Token:<token>' http://$HOST_IP/api/multicloud-vio/v0/<vimid>/nova/<tenantid>/servers
208 you need to input <server-id> in url path.
210 .. code-block:: console
212 $ curl -X GET -H 'X-Auth-Token:<token>' http://$HOST_IP/api/multicloud-vio/v0/vimid/nova/tenantid/servers/<server-id>
218 you need to input <server-id> in url path
220 .. code-block:: console
222 $ curl -X POST -d '{"os-stop":null}' -H 'X-Auth-Token:<token>' -H 'Content-Type:application/json' http://$HOST_IP/api/multicloud-vio/v0/<vimid>/nova/<tenantid>/servers/<server-id>/action
228 you need to input <server-id> in url path
230 curl -X POST -d '{"os-start":null}' -H 'X-Auth-Token:<token>' -H 'Content-Type:application/json' http://$HOST_IP/api/multicloud-vio/v0/<vimid>/nova/<tenantid>/servers/<server-id>/action
236 you need to input <server-id> in url path
238 curl -X POST -d '{"suspend":null}' -H 'X-Auth-Token:<token>' -H 'Content-Type:application/json' http://$HOST_IP/api/multicloud-vio/v0/<vimid>/nova/<tenantid>/servers/<server-id>/action
244 you need to input <server-id> in url path
246 curl -X POST -d '{"resume":null}' -H 'X-Auth-Token:<token>' -H 'Content-Type:application/json' http://$HOST_IP/api/multicloud-vio/v0/<vimid>/nova/<tenantid>/servers/<server-id>/action
252 you need to input <server-id> in url path
254 curl -X POST -d '{"pause":null}' -H 'X-Auth-Token:<token>' -H 'Content-Type:application/json' http://$HOST_IP/api/multicloud-vio/v0/<vimid>/nova/<tenantid>/servers/<server-id>/action
260 you need to input <server-id> in url path
262 curl -X POST -d '{"unpause":null}' -H 'X-Auth-Token:<token> -H 'Content-Type:application/json' http://$HOST_IP/api/multicloud-vio/v0/<vimid>/nova/<tenantid>/servers/<server-id>/action
268 you need to input <server-id> in url path
270 curl -X POST -d '{"reboot":{"type":"HARD"}}' -H 'X-Auth-Token:<token> -H 'Content-Type:application/json' http://$HOST_IP/api/multicloud-vio/v0/<vimid>/nova/<tenantid>/servers/<server-id>/action