Add more docs for Multi VIM/Cloud project
[multicloud/framework.git] / docs / MultiCloud-Deployment-Guide.rst
diff --git a/docs/MultiCloud-Deployment-Guide.rst b/docs/MultiCloud-Deployment-Guide.rst
new file mode 100644 (file)
index 0000000..77c5a2d
--- /dev/null
@@ -0,0 +1,270 @@
+================================
+ONAP MultiCloud Deployment Guide
+================================
+
+prepare docker environment
+~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Please refer to onap deployment in kubernetes website(https://wiki.onap.org/display/DW/ONAP+on+Kubernetes)
+to setup kubernets cluster.
+
+
+After installing kubectl and helm, execute "kubectl cluster-info" command to verify your kubernets cluster.
+
+Clone oom project:  git clone http://gerrit.onap.org/r/oom
+Source the setenv.bash script in /oom/kubernetes/oneclick/, it will set your helm list of components to start/delete
+Run the one time config pod - which mounts the volume /dockerdata/ contained in the pod config-init.
+
+# cd  oom/kubernetes/config
+# cp onap-parameters-sample.yaml onap-parameters.yaml
+# ./createConfig.sh -n onap
+
+wait for "onap" namespace created, pod "config-init" created
+# kubectl get  namespaces
+NAME              STATUS    AGE
+default           Active    10d
+kube-public       Active    10d
+kube-system       Active    10d
+onap              Active    9d
+
+startup containers
+~~~~~~~~~~~~~~~~~~
+
+first run kube2msb container.
+
+# cd oom/kubernetes/oneclick
+# ./createAll.bash -n onap -a kube2msb
+
+run msb container
+# ./createAll.bash -n onap -a msb
+
+run aai container
+# ./createAll.bash -n onap -a aai
+
+
+Finally run multicloud container
+# ./createAll.bash -n onap -a multicloud
+
+get all pods
+# kubectl get pods --all-namespaces
+NAMESPACE         NAME                                    READY     STATUS    RESTARTS   AGE
+kube-system       heapster-4285517626-2k4l1               1/1       Running   1          9d
+kube-system       kube-dns-2514474280-mxh18               3/3       Running   3          9d
+kube-system       kubernetes-dashboard-716739405-jl6mk    1/1       Running   1          9d
+kube-system       monitoring-grafana-3552275057-hrpn5     1/1       Running   1          9d
+kube-system       monitoring-influxdb-4110454889-t8tpv    1/1       Running   1          9d
+kube-system       tiller-deploy-737598192-8q523           1/1       Running   1          9d
+onap-aai          aai-resources-837807428-2t158           1/1       Running   0          2d
+onap-aai          aai-service-3869033750-1nvg5            1/1       Running   0          2d
+onap-aai          aai-traversal-50329389-gnsnk            1/1       Running   0          2d
+onap-aai          data-router-2254557428-zwxx1            1/1       Running   0          2d
+onap-aai          elasticsearch-622738319-sx6q1           1/1       Running   0          2d
+onap-aai          gremlin-671060974-npsg5                 1/1       Running   0          2d
+onap-aai          hbase-3690059193-2pjc5                  1/1       Running   0          2d
+onap-aai          model-loader-service-849987455-w6vwn    1/1       Running   0          2d
+onap-aai          search-data-service-4105978183-p1nnj    1/1       Running   0          2d
+onap-aai          sparky-be-2696729089-mcjbw              1/1       Running   0          2d
+onap-kube2msb     kube2msb-registrator-1600827891-1s3s4   1/1       Running   3          7d
+onap-msb          msb-consul-3388279333-hbr16             1/1       Running   0          2d
+onap-msb          msb-discovery-1109629174-t14q8          1/1       Running   0          2d
+onap-msb          msb-eag-3969419634-2fdnr                1/1       Running   0          2d
+onap-msb          msb-iag-1114772402-sjlww                1/1       Running   0          2d
+onap-multicloud   framework-1225620501-9567n              1/1       Running   0          21h
+onap-multicloud   multicloud-vio-269945856-rl6w6          1/1       Running   0          21h
+
+get cluster-ip and port
+
+# kubectl get svc --all-namespaces
+NAMESPACE         NAME                   CLUSTER-IP      EXTERNAL-IP   PORT(S)                                                             AGE
+default           kubernetes             10.43.0.1       <none>        443/TCP                                                             10d
+kube-system       heapster               10.43.96.134    <none>        80/TCP                                                              10d
+kube-system       kube-dns               10.43.0.10      <none>        53/UDP,53/TCP                                                       10d
+kube-system       kubernetes-dashboard   10.43.9.43      <none>        9090/TCP                                                            10d
+kube-system       monitoring-grafana     10.43.210.16    <none>        80/TCP                                                              10d
+kube-system       monitoring-influxdb    10.43.32.60     <none>        8086/TCP                                                            10d
+kube-system       tiller-deploy          10.43.84.208    <none>        44134/TCP                                                           10d
+onap-aai          aai-resources          None            <none>        8447/TCP,5005/TCP                                                   2d
+onap-aai          aai-service            10.43.88.92     <nodes>       8443:30233/TCP,8080:30232/TCP                                       2d
+onap-aai          aai-traversal          None            <none>        8446/TCP,5005/TCP                                                   2d
+onap-aai          elasticsearch          None            <none>        9200/TCP                                                            2d
+onap-aai          gremlin                None            <none>        8182/TCP                                                            2d
+onap-aai          hbase                  None            <none>        2181/TCP,8080/TCP,8085/TCP,9090/TCP,16000/TCP,16010/TCP,16201/TCP   2d
+onap-aai          model-loader-service   10.43.172.213   <nodes>       8443:30229/TCP,8080:30210/TCP                                       2d
+onap-aai          search-data-service    None            <none>        9509/TCP                                                            2d
+onap-aai          sparky-be              None            <none>        9517/TCP                                                            2d
+onap-msb          msb-consul             10.43.41.203    <nodes>       8500:30500/TCP                                                      2d
+onap-msb          msb-discovery          10.43.6.205     <nodes>       10081:30081/TCP                                                     2d
+onap-msb          msb-eag                10.43.81.104    <nodes>       80:30082/TCP                                                        2d
+onap-msb          msb-iag                10.43.188.78    <nodes>       80:30080/TCP                                                        2d
+onap-multicloud   framework              10.43.97.54     <nodes>       9001:30291/TCP                                                      21h
+onap-multicloud   multicloud-vio         10.43.230.197   <nodes>       9004:30294/TCP                                                      21h
+
+
+Now msb,aai and multicloud container are online, navigate to http://msb_docker_host_ip:30081/iui/microservices/index.html,
+you can see  multicloud endpoint have been registered.
+
+No     Service Name    Version NameSpace       Url     Protocol        Visualrange     Control
+1      multicloud      v0              /api/multicloud/v0      REST    InSystem
+2      multicloud-vio  v0              /api/multicloud-vio/v0  REST    InSystem
+
+Then register vio information into AAI service with region name "vmware" and region id "vio"
+
+.. code-block:: console
+
+# curl -X PUT -H "Authorization: Basic QUFJOkFBSQ==" -H "Content-Type: application/json" -H "X-TransactionId:get_aai_subcr"
+https://aai_resource_docker_host_ip:30233/aai/v01/cloud-infrastructure/cloud-regions/cloud-region/vmware/vio
+-d "{
+   "cloud-type": "vmware",
+   "cloud-region-version": "4.0",
+   "esr-system-info-list": {
+       "esr-system-info": [
+           {
+                               "esr-system-info-id": "123-456",
+                               "system-name": "vim-vio",
+                               "system-type": "vim",
+                               "type": "vim",
+                               "user-name": "admin",
+                               "password": "vmware",
+                               "service-url": "<keystone auth url>",
+                               "cloud-domain": "default",
+                               "default-tenant": "admin",
+                               "ssl-insecure": false
+           }
+       ]
+   }
+}"
+
+Test Examples
+~~~~~~~~~~~~~
+
+The env HOST_IP is msb-iag service cluster-ip value is "10.43.188.78"(see it above).
+The vimid is "vmware_vio"  the registered name in aai.
+
+
+Get auth token
+--------------
+
+# send request to multicloud-framework(broker) service to get token
+
+.. code-block:: console
+
+curl -X  POST   -d @test.json  -H 'Content-Type:application/json'   http://$HOST_IP/api/multicloud/v0/<vimid>/identity/auth/tokens
+
+.. code-block:: console
+
+test.json content example:
+{
+    "auth": sudo pip install virtualenv{
+               "scope": {"project": {"id": “<project-id>”}},
+               "identity":
+               {
+                       "password": {"user": {"domain": {"name": “<doman-name>”}, "password": “<user-password>”, "name": “<user-name>”}}, "methods": ["password"]
+               }
+       }
+}
+
+
+Response:
+There are a large amounts of data including service endpoint, user information, etc.
+For our testing  We  take nova and identity service endpoint address and auth token which is in response header named “X-Subject-Token”.
+
+# you can find the endpoint url namespace is "api/multicloiud-vio/v0", it represent the multicloud-vio service, So
+requests sending to mulitcloud-vio will be forwarded to backend  VIO openstack.
+
+
+Identity endpoint:
+       http://$HOST_IP/api/multicloud-vio/v0/<vimid>/identity
+
+Nova endpoint:
+       http://$HOST_IP/api/multicloud-vio/v0/<vimid>/compute/<user-tenantid>
+
+
+List projects
+-------------
+
+Use identity’s endpoint:  http://$HOST_IP/api/multicloud-vio/v0/<vimid>/identity/
+
+curl -X GET   -H 'X-Auth-Token:<token>'  http://$HOST_IP/api/multicloud-vio/v0/<vimid>/identity/projects
+
+
+Get os Hypervisor
+-----------------
+
+Use nova’s endpoint:  http://$HOST_IP/api/multicloud-vio/v0/<vimid>/nova/<user-tenantid>
+
+
+curl -X GET -H 'X-Auth-Token:<token>' http://$HOST_IP/api/multicloud-vio/v0/<vimid>/nova/<tenantid>/os-hypervisors/detail
+
+
+List instance of  user’s project
+--------------------------------
+
+curl -X GET -H 'X-Auth-Token:<token>' http://$HOST_IP/api/multicloud-vio/v0/<vimid>/nova/<tenantid>/servers
+
+
+Show instance detail
+--------------------
+
+you need to input <server-id> in url path.
+
+.. code-block:: console
+
+  $ curl -X GET -H 'X-Auth-Token:<token>' http://$HOST_IP/api/multicloud-vio/v0/vimid/nova/tenantid/servers/<server-id>
+
+
+Shutdown instance
+-----------------
+
+you need to input <server-id> in url path
+
+.. code-block:: console
+
+  $ 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
+
+
+Start instance
+--------------
+
+you need to input <server-id> in url path
+
+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
+
+
+Suspend instance
+----------------
+
+you need to input <server-id> in url path
+
+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
+
+
+Resume  instance
+----------------
+
+you need to input <server-id> in url path
+
+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
+
+
+Pause instance
+--------------
+
+you need to input <server-id> in url path
+
+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
+
+
+Unpasue instance
+----------------
+
+you need to input <server-id> in url path
+
+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
+
+
+Reboot instance
+---------------
+
+you need to input <server-id> in url path
+
+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